1)常量:常量就是不能变的变量。在Python中,通常用全部大写的变量名表示常量(PI=3.14),但事实上PI仍然是一个变量,Python根本没有任何机制保证PI不会被改变。
2)input():返回的数据类型是str,str不能直接和整数比较,必须先把str转换成整数
3)不可变对象:调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的。
4)dict:key必须是不可变对象。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key。
5)set:原理和dict一样,唯一区别仅在于没有存储对应的value,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。
6)函数名其实就是指向一个函数对象的引用,完全可以把函数名赋给一个变量,相当于给这个函数起了一个“别名”。
7)函数返回多个值时,其返回值是一个tuple!但是,在语法上,返回一个tuple可以省略括号,而多个变量可以同时接收一个tuple,按位置赋给对应的值。
8)定义默认参数要牢记一点:默认参数必须指向不变对象
9)要注意定义可变参数和关键字参数的语法:*args是可变参数,args接收的是一个tuple;**kw是关键字参数,kw接收的是一个dict。
10)调用函数时如何传入可变参数和关键字参数的语法:
可变参数既可以直接传入:func(1, 2, 3),又可以先组装list或tuple,再通过*args传入:func(*(1, 2, 3));
关键字参数既可以直接传入:func(a=1, b=2),又可以先组装dict,再通过**kw传入:func(**{'a': 1, 'b': 2})。
11)python向数据库中写入中文时,在数据库中的中文显示是乱码,解决方法:数据库的字段类型设置成‘utf8’,在获得数据库连接时加上charset="utf8"就可以了
12)generator的创建方法:
第一种方法,只要把一个列表生成式的[]改成(),就创建了一个generator。
第二种方法,如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator。
可以通过next(generator)函数获得generator的下一个返回值;也可以通过for循环。