【查漏补缺】Python小知识点21~40
21.切片使用时注意点:指定的索引区间,包括起始索引对应的元素,不包括结束索引对应的元素。即:左开右闭。
如果,要跳跃选取区间中的元素,则再指定步长即可。
22.切片:如果要从起始索引处开始,直接取到最后,则结束索引不指定,就默认到结束。
23.切片:正序索引默认从0开始;逆序时,最后一个元素的索引为-1
24.切片:把步长设置为负数,则表示逆序切。例如:my_str="abcde",则my_str[::-1]得到:"edcba"
25.max()和min()函数对list、字符串作用时,拿到的是最大和最小元素。对字典作用时,拿到的是最大和最小的key
26.列表、元组同样支持乘法*和加法+运算,会对列表或者元组进行合并处理。
[1,2,3] *2--->[1,2,3,1, 2, 3]
[1,2,3] +[4, 5] --->[1,2,3,4,5]
27.列表的list1.append(list2)会把list2当做一个元素放在list1的末尾。列表的list1.extend(list2)会把list2中的每一个元素拿出依次放在list1的末尾。
28.in、not in在判断字符串、list、元组等,会对元素值进行比对;而对字典,只是对key进行比对。
29.for循环完整形式:
for...in...:
else :
...
这里的else代码,只有在上面的循环完全循环后才会执行;一旦上面的循环,因遇到break中止,则else代码是不会被执行的。
30.print()函数打印输出后,默认换行。如果不想换行,则print("xxxx", end="...")
31.shebang:即在xxx.py文件的第一行加上#! Python解释器的完整路径
这样xxx.py就可以直接运行,不再需要python3 xxxx.py
32.获取完整路径:witch xxxx
例如:witch python3
33.修改某个文件的权限:chmod +x aaa.py
给aaa.py文件添加可执行权限
34.Python中,数据和变量是分开存储的。函数的传参和返回值,本质上都是传的数据的引用,而不是数据本身。
35.数字类型、字符串及元组是不可变类型;列表和字典是可变类型。这里的可变及不可变的是在数据所在内存中的地址。
可变:在内存中的地址不变的情况下,可以改变数据的值;
不可变:要改变数据的值,只能通过改变指向内存中的地址。
36.字典的键值对的key只能是数字类型、字符串及元组等不可变类型,如果把key设置为可变类型的,则会报错!unhashale type!
这是因为Python中,会对字典的key进行hash处理,以便后续对字典增删改查的方便。而Python中的hash(o)算法,这里的入参o只能是不可变的,若是可变的会抛出异常。
37.Python中不可hash(o)处理的类型有:list,dict
38..字典的键值对的值可以是任意类型。
39.用global修饰的局部变量不再重新分配地址,而是指向同名的全局变量了。
40.开发时,如果定义了全局变量,应该把全局变量定义在所有函数的上方,以保证所有函数都可以访问到定义的全局变量。