
python
论程序员的自我修养
A real carpenter
展开
-
pandas按行写入csv文件
代码如下:import pandas as pddef write_csv_line_by_line(): d = [[str(i) for i in range(10)] for j in range(10)] df = pd.DataFrame(d) # df.to_csv('res.csv', header=False) # 不加表头 df.columns = ['line'+str(i) for i in range(10)] df.to_csv原创 2021-07-07 13:54:49 · 5156 阅读 · 0 评论 -
微信网页开发拉取用户信息时乱码问题
在开发微信网页时,需要从微信官方获取用户的基本信息,如昵称,性别,省份等等。采用的授权方式为:snsapi_userinfo.但是后端在拿到openID和access_token之后在最后一步拉取用户信息的时候,遇到了乱码问题,特别是中文。解决方案如下(python):user_info_response = requests.get(getuserinfourl)#getuserinfourl为拉取用户信息的微信apiuser_info = json.loads(user_info_res原创 2020-10-19 16:20:04 · 695 阅读 · 1 评论 -
错误信息IndentationError: unindent does not match any outer indentation leve
这种情况,如果不是你代码没对齐的话,检查一下你是用的tab键还是四个空格来对齐代码,如果使用tab键,就都使用tab来对齐,如果是用空格,就都使用空格来对齐,不然可能会导致以上错误。ps:四个空格和一个tab键在长度上是一样的,很难发现,把光标移动过去挨个删除试试看。...原创 2020-09-24 17:05:18 · 336 阅读 · 0 评论 -
Python中的sys模块argv的使用
sys模块提供了Python脚本当前运行环境的变量和函数。sys.argv用于获取当前正在执行的命令行参数的参数列表(list)。变量解释sys.argv[0]当前程序名sys.argv[1]外部输入的第一个参数sys.argv[2]外部输入的]第二个参数看到这里是不是还是一头雾水???我也是。。。。废话少说,敲一遍你就明白了,实例代码如下:import sysprint(sys.argv)print("==========")print(sys.argv[0])执行原创 2020-09-12 22:43:19 · 1353 阅读 · 0 评论 -
Mac环境下Pillow打开图片找不到文件的解决方法
代码如下:from PIL import Imageimage = Image.open("001.jpg")image.show()代码源文件和图片文件位于同一文件夹下,运行报错:Traceback (most recent call last): File "/Users/vito/Desktop/Code/pillow/pillow_01.py", line 3, in <module> image = Image.open("001.jpg") F原创 2020-09-10 20:17:33 · 1510 阅读 · 0 评论 -
针对Django错误unsupported operand type(s) for +: ‘PosixPath‘ and ‘str‘的解决办法
错误信息如下:Traceback (most recent call last): File "manage.py", line 22, in <module> main() File "manage.py", line 18, in main execute_from_command_line(sys.argv) File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site原创 2020-08-22 23:40:31 · 6220 阅读 · 0 评论 -
LeetCode刷题(python)——884. 两句话中的不常见单词
题目描述:给定两个句子A和B。(句子是一串由空格分隔的单词。每个单词仅由小写字母组成。)如果一个单词在其中一个句子中只出现一次,在另一个句子中却没有出现,那么这个单词就是不常见的。返回所有不常用单词的列表。您可以按任何顺序返回列表。示例 1:输入:A = "this apple is sweet", B = "this apple is sour"输出:...原创 2019-04-04 00:29:20 · 709 阅读 · 0 评论 -
LeetCode刷题(python)—— 867. 转置矩阵
题目描述:给定一个矩阵A,返回A的转置矩阵。矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。示例 1:输入:[[1,2,3],[4,5,6],[7,8,9]]输出:[[1,4,7],[2,5,8],[3,6,9]]示例 2:输入:[[1,2,3],[4,5,6]]输出:[[1,4],[2,5],[3,6]]解题思路:zip()压...原创 2019-04-04 00:15:46 · 878 阅读 · 0 评论 -
LeetCode刷题(python)——561. 数组拆分 I
题目描述:给定长度为2n的数组, 你的任务是将这些数分成n对, 例如 (a1, b1), (a2, b2), ..., (an, bn) ,使得从1 到n 的 min(ai, bi) 总和最大。示例 1:输入: [1,4,3,2]输出: 4解释: n 等于 2, 最大总和为 4 = min(1, 2) + min(3, 4).提示:n是正整数,范围在 ...原创 2019-03-22 23:24:59 · 7105 阅读 · 0 评论 -
LeetCode刷题(python)——575. 分糖果
题目描述:给定一个偶数长度的数组,其中不同的数字代表着不同种类的糖果,每一个数字代表一个糖果。你需要把这些糖果平均分给一个弟弟和一个妹妹。返回妹妹可以获得的最大糖果的种类数。示例 1:输入: candies = [1,1,2,2,3,3]输出: 3解析: 一共有三种种类的糖果,每一种都有两个。 最优分配方案:妹妹获得[1,2,3],弟弟也获得[1,2,3]。这样使妹妹获...原创 2019-03-22 22:57:10 · 7242 阅读 · 0 评论 -
LeetCode刷题(python)——066.加一
题目描述:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示...原创 2019-03-18 21:34:35 · 6829 阅读 · 0 评论 -
LeetCode刷题(python)——190. 颠倒二进制位
题目描述:颠倒给定的 32 位无符号整数的二进制位。示例 1:输入: 00000010100101000001111010011100输出: 00111001011110000010100101000000解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596, 因此返回 964176192,其二进制...原创 2019-03-18 21:09:22 · 6853 阅读 · 0 评论 -
LeetCode刷题(python)——476. 数字的补数
题目描述:给定一个正整数,输出它的补数。补数是对该数的二进制表示取反。注意:给定的整数保证在32位带符号整数的范围内。 你可以假定二进制数不包含前导零位。示例 1:输入: 5输出: 2解释: 5的二进制表示为101(没有前导零位),其补数为010。所以你需要输出2。示例 2:输入: 1输出: 0解释: 1的二进制表示为1(没有前导零位),其补数为0。所以你...原创 2019-03-13 13:05:46 · 6881 阅读 · 0 评论 -
LeetCode刷题(python)——461. 汉明距离
题目描述:两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数x和y,计算它们之间的汉明距离。注意:0 ≤x,y< 231.示例:输入: x = 1, y = 4输出: 2解释:1 (0 0 0 1)4 (0 1 0 0) ↑ ↑上面的箭头指出了对应二进制位不同的位置。解题思路:...原创 2019-03-13 09:16:50 · 7073 阅读 · 0 评论 -
LeetCode刷题(python)——020. 有效的括号
题目描述:给定一个只包括'(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例2:输入: "()[]{}"输出: true示例3:输入: "(]"输出:...原创 2019-03-17 09:28:39 · 6947 阅读 · 0 评论 -
LeetCode刷题(python)——027. 移除元素
题目描述:给定一个数组nums和一个值val,你需要原地移除所有数值等于val的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 n...原创 2019-03-16 22:31:30 · 6884 阅读 · 0 评论 -
LeetCode刷题(python)——007.整数反转
题目描述:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为[−231, 231− 1]。请根据这个假设,如果反转后整数溢出那么就...原创 2019-03-16 20:51:27 · 6965 阅读 · 0 评论 -
python学习之urlencode与urldecode
当url中出现中文字符,有时需要做编码处理。python3的urllib库给出了以下的编码和解码方式:1.编码#编码import urllib.parsedict = {'wd':'百度一下'}wd = urllib.parse.urlencode(dict)print(wd)将要编码的参数以字典形式传给urlencode函数,得到的结果如下:wd=%E7%99...原创 2019-04-04 03:55:00 · 605 阅读 · 0 评论 -
LeetCode刷题(python)——860. 柠檬水找零
题目描述:在柠檬水摊上,每一杯柠檬水的售价为5美元。顾客排队购买你的产品,(按账单bills支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付5美元、10美元或20美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付5美元。注意,一开始你手头没有任何零钱。如果你能给每位顾客正确找零,返回true,否则返回false。示例 ...原创 2019-04-04 05:05:58 · 949 阅读 · 0 评论 -
Python学习之pdb调试
使用PDB的方式有两种:1. 单步执行代码,通过命令 python -m pdb xxx.py 启动脚本,进入单步执行模式pdb命令行:1)进入命令行Debug模式,python-mpdb xxx.py2)h:(help)帮助3)w:(where)打印当前执行堆栈4)d:(down)执行跳转到在当前堆栈的深一层(个人没觉得有什么用处)...原创 2019-03-26 19:35:19 · 4540 阅读 · 0 评论 -
numpy中clip()函数的用法
numpy中的clip()函数用于将数组中的元素控制在一个给定的范围内,给定需要控制的范围的上下边界,clip函数将所有小于下边界的数值全部改为下边界, 将大于上边界的数值全部改为上边界。numpy中clip()函数的原型为:clip(self, min=None, max=None, out=None)其中,self为需要控制的数组,min为下边界,max为上边界,out为存储输出结果的...原创 2019-08-19 03:02:03 · 2132 阅读 · 0 评论 -
TensorFlow报错FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated......
使用TensorFlow时报错FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy.......报错原因:numpy1-17-0版本过高,使用numpy-1.16-0版本即可解决方法:重新安装numpy-1.16-0pip...原创 2019-08-18 17:00:41 · 68360 阅读 · 20 评论 -
Django配置MySQL数据库
0.在MySQL数据库创建要使用的数据库CREATE DATABASE databasename;1.在settings.py文件中更改数据库配置DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 数据库引擎 'NAME': 'mydb01', ...原创 2019-07-17 18:39:48 · 1116 阅读 · 0 评论 -
简单选择排序(python)
简介: 简单选择排序是指一种排序算法,在简单选择排序过程中,所需移动记录的次数比较少。最好情况下,即待排序记录初始状态就已经是正序排列了,则不需要移动记录。 方法是设所排序序列的记录个数为n。i取1,2,…,n-1,从所有n-i+1个记录(Ri,Ri+1,…,Rn)中找出排序码最小的记录,与第i个记录交换。执行n-1趟 后就完成了记录序列的排序。代码实现:def se...原创 2019-05-28 22:07:04 · 1255 阅读 · 0 评论 -
python文件打开时的访问模式
python打开文件时的几种访问模式:访问模式 说明 r 以只读方式打开文件,文件指针会默认放在文件开头。 w 打开一个文件只用于写入,如果文件已经存在则将其覆盖,如果不存在则创建文件并写入。 a 打开一个文件用于追加,如果文件已经存在,则文件指针会被放在文件末尾,即新的内容会被写到已有内容之后,如果文件不存在,则创建文件并写入。 rb 以二进制只...原创 2019-05-28 04:52:37 · 3840 阅读 · 0 评论 -
数据结构与算法(python)——用列表实现栈
class stack(object): """栈""" def __init__(self): self.__list = [] def push(self, item): """添加一个新的元素到栈顶""" self.__list.append(item) def pop(self): ...原创 2019-04-02 22:57:04 · 1498 阅读 · 0 评论 -
Python 3.6 Socket TypeError: a bytes-like object is required, not 'str' 错误提示
在使用socket做网络编程测试的时候,遇到a bytes-like object is required,not str 错误from socket import *# 创建套接字udp_socket = socket(AF_INET, SOCK_DGRAM)# 准备接收方的地址sendAddr = ('192.168.123.1', 8080)# 从键盘获取数据se...原创 2019-04-01 19:21:52 · 4239 阅读 · 0 评论 -
LeetCode刷题(python)——905. 按奇偶排序数组
题目描述:给定一个非负整数数组A,返回一个由A的所有偶数元素组成的数组,后面跟A的所有奇数元素。你可以返回满足此条件的任何数组作为答案。示例:输入:[3,1,2,4]输出:[2,4,3,1]输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。解题思路:方法一:这个方法比较不好理解,如果不明白可以看方法二。 ...原创 2019-03-27 19:48:28 · 4787 阅读 · 0 评论 -
LeetCode刷题(python)——896. 单调数列
题目描述:如果数组是单调递增或单调递减的,那么它是单调的。如果对于所有i <= j,A[i] <= A[j],那么数组A是单调递增的。 如果对于所有i <= j,A[i]> = A[j],那么数组A是单调递减的。当给定的数组A是单调数组时返回true,否则返回false。示例 1:输入:[1,2,2,3]输出:true...原创 2019-04-04 19:47:52 · 461 阅读 · 0 评论 -
LeetCode刷题(python)——796. 旋转字符串
题目描述:给定两个字符串,A和B。A的旋转操作就是将A最左边的字符移动到最右边。例如, 若A = 'abcde',在移动一次之后结果就是'bcdea'。如果在若干次旋转操作之后,A能变成B,那么返回True。示例 1:输入: A = 'abcde', B = 'cdeab'输出: true示例 2:输入: A = 'abcde', B = 'abced'...原创 2019-03-23 21:35:21 · 7098 阅读 · 0 评论 -
LeetCode刷题(python)——806. 写字符串需要的行数
题目描述:我们要把给定的字符串S从左到右写到每一行上,每一行的最大宽度为100个单位,如果我们在写某个字母的时候会使这行超过了100 个单位,那么我们应该把这个字母写到下一行。我们给定了一个数组widths,这个数组widths[0] 代表 'a' 需要的单位,widths[1] 代表 'b' 需要的单位,...,widths[25] 代表 'z' 需要的单位。现在回答两个问...原创 2019-03-23 21:20:56 · 6890 阅读 · 0 评论 -
LeetCode刷题(python)—— 844. 比较含退格的字符串
题目描述:给定S和T两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。#代表退格字符。示例 1:输入:S = "ab#c", T = "ad#c"输出:true解释:S 和 T 都会变成 “ac”。示例 2:输入:S = "ab##", T = "c#d#"输出:true解释:S 和 T 都会变成 “”。示例 ...原创 2019-04-04 15:08:59 · 354 阅读 · 0 评论 -
LeetCode刷题(python)——067. 二进制求和
题目描述:给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字1和0。示例1:输入: a = "11", b = "1"输出: "100"示例2:输入: a = "1010", b = "1011"输出: "10101"解题思路:#方法一:先将二进制字符串化为等长度,对应两位相加,用一个新的字符串统计结果即可,注意使用进.原创 2019-03-15 17:50:13 · 6909 阅读 · 0 评论 -
LeetCode刷题(python)——35. 搜索插入位置
题目描述:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3...原创 2019-03-15 13:33:37 · 6864 阅读 · 0 评论 -
LeetCode刷题(python)——三角形的最大周长
题目描述:给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的、面积不为零的三角形的最大周长。如果不能形成任何面积不为零的三角形,返回 0。示例 1:输入:[2,1,2]输出:5示例 2:输入:[1,2,1]输出:0示例 3:输入:[3,2,3,4]输出:10示例 4:输入:[3,6,2,3]输出:8解题思路: ...原创 2019-03-02 15:10:54 · 7847 阅读 · 0 评论 -
LeetCode刷题——最接近原点的 K 个点
题目描述:我们有一个由平面上的点组成的列表 points。需要从中找出 K 个距离原点 (0, 0) 最近的点。(这里,平面上两点之间的距离是欧几里德距离。)你可以按任何顺序返回答案。除了点坐标的顺序之外,答案确保是唯一的。示例 1:输入:points = [[1,3],[-2,2]], K = 1输出:[[-2,2]]解释:(1, 3) 和原点之间的距离为 sqrt(10),(...原创 2019-03-01 20:38:20 · 7558 阅读 · 0 评论 -
Python学习之 File readlines() 方法
功能描述: readlines() 方法用于读取所有行(直到结束符 EOF)并返回列表,该列表可以由 Python 的 for... in ... 结构进行处理。如果碰到结束符 EOF 则返回空字符串。示例: 语法: fileObject.readlines( ) 文件示例:1:www.helloworld.com2:www.hell...原创 2019-02-20 12:55:47 · 11671 阅读 · 0 评论 -
检查你的python代码是否符合PEP8规范
对于程序员来说代码的可读性非常重要,多数时候读代码比写代码重要得多,如果你的代码符合一种标准的编码风格,就说明你的代码更易读,python编程社区创建了一个测试框架pytest,主要用来更容易地完成python程序的测试,不论你编写什么类型的测试,pytest都能提供帮助,pep8是pytest的一个插件,它使用pytest测试框架检查你的代码是否违反pep8的原则。下面让我们来安装p...原创 2019-03-04 21:44:07 · 8508 阅读 · 2 评论 -
Python学习之 zip() 方法
功能描述: zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。 可以使用 list() 转换来输出列表。示例: 语法: zip([iterable, ...]) ...原创 2019-02-19 23:26:29 · 6792 阅读 · 0 评论 -
Python学习之字典update() 方法
功能描述: Python 字典 update() 函数把字典参数 dict2 的 key/value(键/值) 对更新到字典 dict 里。示例: 语法: dict.update(dict2) dict2 -- 添加到指定字典dict里的字典。 >>>...原创 2019-02-19 23:02:28 · 8816 阅读 · 0 评论