Python小知识点总结
给新学Python的朋友分享点小知识,共勉。
1.注释
- (1)在函数定义名下一行的注释用’’’ ’’’或””” ”””(后期遗忘可以按ctrl + q查看),其他地方尽量用#注释,以免出现不必要的麻烦.
- (2)中文注释推荐开头使用# -*- coding:utf-8 -*-
2.命名
- 命名尽量用英语且不能用数字开头;
- 不要与系统关键字重名,且自己定义的变量尽量不重名,以免混淆;
- 多词用”_”(下划线)连接或使用小驼峰命名,再定义类时用大驼峰命名;
- Python中是区分大小写的
3.输出
-
(1)默认print()的结尾会换行,内容有多个时用” ”(空格)隔开.用sep=””或者end=””可修改.
-
(2)输出中有多个””或者’’时,2个可以用’””’交叉使用或者用\”\”转义
-
(3)格式化输出:
-
第一种print(“我的姓名是%s,年龄是%d” % (name,age)) %连接指代变量,需要多个格式化输出时,指代变量用元组形式表示.若想表示”%”则需要输入2个”%%”.
%.xf: 表示x位小数
%xd: 表示x位整数,d位数不够前面用空格填充;若x为1-9,在x前增加0,如%09d,d的位数不够则前面用0填充.
-
第二种表达形式.print(f”我的姓名是{name},年龄是{age}”) 指代变量用大括号,若用{name, age}输出的是元组.
-
4.输入
- input()输入内容格式为字符串
5.变量
- 布尔变量在计算时,True对应的数字是1,False对应的数字是0.
6.if语句
- (1)主要注意逻辑与缩进格式,以免混淆.
- (2)if后可以直接跟一个变量判断,非零为真.
- (3)当if判断在一个区间内时,如if a >=1 and a <= 5:可写为if 1 <= a <= 5:
- (4)简单语句用三目运算法:a if a > b else b
- (5)“==”判断左右两边数据值是否相等,“is”判断左右两边的内存地址是否相同,None/True/False尽量用“is”,性能高
7.逻辑运算符
- (1)(a and b), (a or b)问题,带入数字后容易混淆,明确非零为真.
- (2)or的不等问题,如a != 1 or a != 2恒为真,容易犯的逻辑问题
8.循环
- (1)while不加条件容易死循环,通常用while True死循环来重复某件事
- (2)for循环遍历数据,用for基本可以代替while,死循环代替不了.
- (3)while和for循环后都能接else,循环正常结束后会执行else.
- (4)break只能跳出该层循环;continue跳过该层的本次循环,进入下一次循环,需要自增以免死循环;break与continue只能在循环中使用.
9.容器
-
(1)列表独有添加元素的方法: 列表.append(数据) 在末尾追加数据.
-
(2)列表可排序用(sort,reverse).
-
(3)列表推导式[x for x in range(5) if x == 2];set集合同理;字典{key: value for循环 if判断}.
-
(4)若元组中嵌套列表或字典,可以修改嵌套列表或字典的值间接达到修改元组的目的.
-
(5)默认遍历一个字典,取到的是字典的键.若想取值,则需要加.values().若用items(),用一个变量接收则为元组,用2个变量接收会自动拆包为键和值.
-
(6)set集合可以去重且把0-9整数排序.
-
(7)带小数的字符串(如”1.0”)转换为整型会报错,注意转浮点型.
-
(8)字符串独有查询方法:字符串.find(内容) 有则返回对应索引值,没有则返回-1,不会报错.
-
(9)字符串转换元组方法:字符串.partition(内容) 返回(内容前,内容,内容后)
-
(10)字符串转换列表方法:字符串.split(分隔符) 返回[分隔符间的内容].分隔符不填,默认以’\r’, ‘\t’, ‘\n’ 和空格分隔.
-
(11)集合转换字符串方法:连接符.join(集合) 返回连接符连接的各集合字符串(注意集合中的元素都是字符串型式,元组默认的是键).
-
(12)字符串/列表/元组可切片,可用+合并,可用*重复,可进行比较.
10.函数
- (1)return之后的代码都不会被执行;返回多个值,得到的是元组.
- (2)局部变量不会覆盖全局变量,全局变量会覆盖局部变量;要想修改全局变量,则需要global声明一下.
- (3)可变参数args使用时前面加*,本质把多个参数放到元组中传递;kwargs使用时前面加**,将多余的关键字参数包装成字典传递.
- (4)缺省参数在*args后,在**kwargs前.格式:def function(a, *args, b = 1, **kwargs):
- (5)多个值赋予一个变量会自动组包成元组; = 左边的变量个数与右边容器中元素个数一致时会拆包,字典拆包的是键且无序的.
- (6)默认数字在-5~256之间的内存地址是一致的(可经过运算);字符串在20位以内是一致的(可经过+, *操作).
- (7)可变类型:修改存储空间的数据,内存地址不变,如列表,字典,集合;不可变类型:存储空间的数据不能修改,如字符串,数字,元组.函数的默认参数尽量不要使用可变类型.
- (8)lambda函数:function = lambda a, b: a + b, function为函数名;value = (lambda a, b: a + b)(1, 2), value为值.lambda在sort()中给key定义条件.