Python 经验
1、 ASCII不能编码中文
2、可哈希的即不可变数据类型
3、变小写用casefold更牛逼。
print('ABC'.casefold())
>>> abc
4、swapcase 大小写转换
print('AbC'.swapcase())
>>>aBc
5、查找字符串时用find(),不用index()。find()方法找不到字符串时不会报错,会返回值为-1,index()方法会报错
print('csdn'.index('c'))
print('csdn'.find('s'))
print('csdn'.find('z'))
print('csdn'.index('q'))
>>> 0
>>> 1
>>> -1
>>> ValueError: substring not found
6、 range(起始,末尾,步长)
for i in range(0,10,2): # 取不到10,左闭右开
print(i)
>>>0,2,4,6,8
7、元组的一级元素不能被修改,二级非元组类型就能被修改
t1 = (1,[2,3],4,5)
t1[1][1] = 6
print(t1)
>>>(1,(2,6),4,5)
8、列表、元组、集合、字典的区别是什么?
列表:元素可变(任何数据类型),有序(可索引),append/insert/pop;
元组:元素不可变,但元素中的可变元素是可变的;有序(可索引);而且元组可以被散列,例如作为字典的键。
集合:无序(不可被索引)、互异
字典:无序,键值对(key:value),key唯一不可重复
9、expandtabs(x) 通过\t断开,然后每一块占据x位,不足补tab
print('avs\tdsx'.expandtabs(6))
>>>avs dsx # 中间3个空格,从头开始数,遇见\t,位数不足6位补空格
10、A.join(B) 把A加入到拆开的B中,当列表里都是字符时,拼接成字符串时用join()方法
print('+'.join('123'))
print('+'.join(['1','2','3']))
>>> 1+2+3
>>> 1+2+3
11、 strip() 先进行整个参数的匹配,然后将字符串拆开在进行匹配的
# 将参数拆成单个字符,然后去进行去除操作
print('csdnfsda'.strip('sac'))
# 自动去除换行
print('\ncsdn\n'.strip())
# 去除左边的字符串
print('akcsdn'.lstrip('ak'))
# 去除右边的字符串
print('csdnak'.rstrip('ak'))
>>>dnfsd
>>>csdn
>>>csdn
>>>csdn
12、 过程:没有返回值,函数有返回值。但是在python里没有过程,只有函数
13、生成式:适合处理小批量的数据,只有列表生成式,没有元组生成式
14、 replace(旧的字符串,新的字符串,替换前多少个)
print('qpzmsqpzgdh'.replace('qpz','csd'))
print('qpzmsqpzgdh'.replace('qpz','csd',2))
>>> csdmscsdgdh
>>> csdmscsdgdh
15、判断是否为数字
# isdecimal() 十进制小数
print('12w'.isdecimal())
# isdigit() 更厉害
print('12'.isdigit())
# isnumberic() 汉字也可以判断
print('13五'.isnumeric())
>>> False
>>> True
>>> True
16、递归的尾调用优化:即在函数的最后一步调用函数
17、函数返回值:返回值数目>1 将返回的数据打包成元组
def test():
a = 1
b = 2
c = 3
return a,b,c
print(test())
>>>(1,2,3)
18、解压缩,python2里面不适用,python3适用
l = [1,2,3,4,6,5]
a,*b,c = l
print(a,*b,c) # '*' 代表全部
>>> a=1,c=5,b=(2,3,4,6)
19、位置参数(不明显指出的参数)一点要在关键字参数(明显指出的参数 y=2)的左边,也就是写在前面,否则会报错
20、nonlocal 是指上一级变量作为本级变量,locals 是指本级变量
def test():
b = '123'
def tests():
nonlocal b
print(b)
print(locals())
print(b)
return tests()
print(test())
>>>'123'
>>>'123'
>>>{'b': '123'}
>>>none
global 是全局变量
def test():
global b
b = '123'
def tests():
print(b)
print(b)
return tests()
print(test())
print(b)
>>>'123'
>>>'123'
>>>none
>>>'123'