python笔记1 编码

1、csdn的编辑器真霸气,逼格满满,要好好学一下;

2、python3中已经把”raw_input“ 和”input“统一了,学learnpythonthehardway的时候敲了那么多raw_input 啊;

3、print后面得加() 

4、learnpythonthehardwa敲到43章实在没勇气接着敲,好多基础还得补充一下再接着往下敲吧,另外那文字破游戏实在烦恶,大段大段英文游戏内容,和编程又没关系,弄那么多英文字干嘛,作者怎么想的?

5、如何在python下输入运算表达式,'输出运算结果。不能用eval()函数

6、在文本编辑器中,需要设置把Tab自动转换为4个空格,确保不混用Tab和空格。这条很重要。

7、变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型

8、python两种除法:“/”结果是浮点数,整除后也是浮点数;“//”地板除,只取整数部分;“%”是取余数运算

9、对于单个字符,python用函数ord()来获取字符的整数表示,用chr()来把编码转为对应字符

10、Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes。Python对bytes类型的数据用带b前缀的单引号或双引号表示:

x = b'ABC'

要注意区分'ABC'b'ABC',前者是str,后者虽然内容显示得和前者一样,但bytes的每个字符都只占用一个字节。以Unicode表示的str通过encode()方法可以编码为指定的bytes,例如:

>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
>>> '中文'.encode('ascii')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

纯英文的str可以用ASCII编码为bytes,内容是一样的,含有中文的str可以用UTF-8编码为bytes。含有中文的str无法用ASCII编码,因为中文编码的范围超过了ASCII编码的范围,Python会报错。在bytes中,无法显示为ASCII字符的字节,用\x##显示。反过来,如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要用decode()方法:

>>> b'ABC'.decode('ascii')
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'

11、要计算str中包含多少字符,可以用len()函数,

>>>len ('abc')
3
>>>len ('牛逼')
2

如果换作byte,则计算字节数

>>>len (b'abc')
3
>>>len (b'\xe4\xb8\xad\xe6\x96\x87')
6
>>>len ('牛逼'.encode('utf-8'))
6




你可能感兴趣的:(牛逼python)