【Effective Python】书本知识点总结

书本介绍

使用Pythonic方式思考问题【Pythonic是一种编程风格】致力于编写高质量Python代码的59个有效方法。

遵守PEP8

PEP8是针对Python代码格式而编订的风格指南。使代码变得更加易懂、易读。方便多人协作。无论是修改、阅读都容易一些。

这边就不自己总结了。毕竟网上资料比较全。
https://www.jianshu.com/p/ffcc66bab3ce

了解bytes、str与unicode

Python3有两种表示字符序列的类型:BytesStr。

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'等二进制模式来开启文件。

 

原文地址:https://www.cnblogs.com/jackson669/p/13060918.html