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'

猜你喜欢

转载自blog.csdn.net/weixin_41678001/article/details/82148650