标签:erro pos 两种 地板 使用 meta 内存 encode abc
0.unicode&utf-8
在计算机内存中,统一使用unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为utf-8编码。
用记事本编辑的时候,从文件读取的utf-8字符被转换为unicode字符到内存里,编码完成保存时再把unicode转换为utf-8保存到文件。
浏览网页时,服务器会把动态生成的unicode内容转换为utf-8再传输给浏览器,所以会看到许多网页的源码上会有类似<meta charset="UTF-8" />的信息,表示该网页正是用的utf-8编码。
1. 除法
Python中有两种除法,一种除法是/,/除法计算结果永远是浮点数。
地板除//,计算结果永远是整数。
余数运算%。
无论整数做//
除法还是取余数,结果永远是整数,所以,整数运算结果永远是精确的。
2. 布尔值类型
布尔值类型只有Truce、False两种值(注意Python大小写敏感)。
布尔值可以用and,or,和not运算。
3. 空值
空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。
4. 常量
在Python中,通常用全部大写的变量名表示常量。
5. bytes类型
Python对bytes
类型的数据用带b
前缀的单引号或双引号表示:
x=b‘ABC‘
要注意区分‘ABC‘
和b‘ABC‘
,前者是str
,后者虽然内容显示得和前者一样,但bytes
的每个字符都只占用一个字节。
纯英文的str
可以用ASCII
编码为bytes
,内容是一样的,含有中文的str
可以用UTF-8
编码为bytes
。含有中文的str
无法用ASCII
编码,因为中文编码的范围超过了ASCII
编码的范围,Python会报错。
在bytes
中,无法显示为ASCII字符的字节,用\x##
显示。
6. str和bytes转换
由于Python的字符串类型是str,在内存中以unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes。以unicode表示的str通过encode()方法可以编码为指定的bytes;反过来,从网络或磁盘上读取了字节流,读取到的数据是bytes,用decode()将bytes变为str。
在操作字符串时,我们经常遇到str
和bytes
的互相转换。为了避免乱码问题,应当始终坚持使用UTF-8编码对str
和bytes
进行转换。
>>> ‘中文‘.encode(‘utf-8‘) b‘\xe4\xb8\xad\xe6\x96\x87‘ >>> b‘\xe4\xb8\xad\xe6\x96\x87‘.decode(‘utf-8‘) ‘中文‘ >>> ‘33345‘.encode(‘utf-8‘) b‘33345‘ >>> ‘中8‘.encode(‘utf-8‘) b‘\xe4\xb8\xad8‘ >>> b‘\xe4\xb8\xad8‘.decode(‘ascii‘) Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeDecodeError: ‘ascii‘ codec can‘t decode byte 0xe4 in position 0: ordinal not in range(128) >>> b‘\xe4\xb8\xad8‘.decode(‘utf-8‘) ‘中8‘
7. 输入输出
输入用input(),输出用print()。
input()可以输入提示字符串,input()返回的数据类型是str,str不能直接和整数比较。
>>> name=input(‘please enter your name:‘) please enter your name:wang >>> print(‘hello,‘, name) hello, wang >>> job="IT" >>> print(‘hello‘, name, job) hello wang IT
参考:
标签:erro pos 两种 地板 使用 meta 内存 encode abc
原文地址:https://www.cnblogs.com/embedded-linux/p/9822563.html