1.if __name__='__main__'
__name__是模块,当模块被直接运行时模块名为__main__,这句话的意思就是,当模块被直接运行时,以下代码将被运行,当模块是被导入时,代码不被运行
在py中一个.py文件就是一个模块,模块的名字就是文件名,全局变量__name__存放的就是模块的名字
2.*args和**kwargs 主要用于函数定义,可以将不定数量的参数传递给一个函数
*args是用来发送一个非键值对的可变数量的参数列表给一个函数
**kwargs允许将不定长度的键值对,作为参数传递给一个函数,如果要在一个函数里处理带名字的参数
只有变量前面的* 是必须的
3.编码
1).字节:计算机存储数据的基本单位,一个字节等于一个8位的比特,计算机中的所有数据都是由字节组成
2).字符:字符是一个信息单位
3).字符集:某个范围内字符的集合
4).字符码:字符集中每个字符的数字编号
5).字符编码:将字符集中的字符码映射为字节流的一种具体的实现方案
编码:编码的过程是将字符转换成字节流
解码:解码的过程是将字节流解析为字符。
在Python里和字符串相关的数据类型有str和Unicode,str和Unicode之间靠encode和decode转换
Python2 默认是使用 ascii 编码进行 decode 和 encode 操作
所有出现乱码的原因都可以归结为字符经过不同编码解码在编码的过程中使用的编码格式不一致