【Effective Python】书本知识点总结
书本介绍
使用Pythonic方式思考问题【Pythonic是一种编程风格】致力于编写高质量Python代码的59个有效方法。
遵守PEP8
PEP8是针对Python代码格式而编订的风格指南。使代码变得更加易懂、易读。方便多人协作。无论是修改、阅读都容易一些。
这边就不自己总结了。毕竟网上资料比较全。
https://www.jianshu.com/p/ffcc66bab3ce
了解bytes、str与unicode
Python3有两种表示字符序列的类型:Bytes和Str。
Bytes实例包含原始的8位数值;【原始的字节,一个字节8个二进制位】
Str实例包含Unicode字符;
程序的核心部分应该使用Unicode字符类型(也就是Python3的str和Python2的unicode)。
例子
接受Str和Bytes,并且总是返回Str或者Bytes的方法
# 字符串在Python内部的表示是unicode编码 def Turn(bytes_or_str): if isinstance(bytes_or_str, bytes): # decode的作用是将其他编码的字符串转换成unicode编码 # encode的作用是将unicode编码转换成其他编码的字符串 value = bytes_or_str.decode('utf-8') else: value = bytes_or_str return value a = Turn(b'123') # a = 123
# 系统默认编码
# print(sys.getdefaultencoding())
‘utf-8’
# 注: 不要把系统以为是操作系统,这里可以理解成python3的编译器本身
Python3 给open函数添加了encoding的新参数,默认值为‘utf-8’
总结
1、在python3中,bytes是一种包含8位数值的序列,str是一种包含Unicode字符的序列。一定不能把bytes和Str弄混,将两个实例进行‘+’等操作 2、在Python2中,str是一种包含8位数值的序列 3、在进行数据操作之前,或者数据保存之前一定要保证字符序列和开发者期望相符。很容易混肴
4、从文件中读取二进制数据,或者向其中写入二进制数据的时候,总应该以'wb' 'rb'等二进制模式来开启文件。