python笔记

2018-11-07 22:03:00       xhs

内容来源: 廖雪峰 Python教程

#查看python包版本
pip freeze

如果'本身也是一个字符,那就可以用""括起来,比如"I'm OK"包含的字符是I,',m,空格,O,K这6个字符。
'I\'m \"OK\"!'
== 'I\'m "ok"!'
Python还允许用r''表示''内部的字符串默认不转义
>>> print('\\\t\\')
\	\
>>> print(r'\\\t\\')
\\\t\\
>>> 

Python允许用'''...'''的格式表示多行内容

空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

还有一种除法是//,称为地板除,两个整数的除法仍然是整数
>>> 10 / 3
3
>>> 9 // 3
3
Python的浮点数也没有大小限制,但是超出一定范围就直接表示为inf(无限大)

ASCII编码是1个字节,而Unicode编码通常是2个字节
所以,本着节约的精神,又出现了把Unicode编码转化为“可变长编码”的UTF-8编码。UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间:

在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。

>>> ord('是')
Traceback (most recent call last):
  File "", line 1, in 
TypeError: ord() expected a character, but string of length 3 found
//转换不了

>>> chr(20013)
Traceback (most recent call last):
  File "", line 1, in 
ValueError: chr() arg not in range(256)

>>> '\u4e2d\u6587'
'\\u4e2d\\u6587'
//并没出现“中文”

>>> '中文'.encode('utf-8')
Traceback (most recent call last):
  File "", line 1, in 
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)


>>> b'ABC'.decode('ascii')
u'ABC'
//不是预期的 'ABC'


>>> b'\xe4\xb8\xad\xff'.decode('utf-8')
Traceback (most recent call last):
  File "", line 1, in 
  File "/usr/lib64/python2.6/encodings/utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xff in position 3: invalid start byte
>>> b'\xe4\xb8\xad\xff'.decode('utf-8', errors='ignore')
Traceback (most recent call last):
  File "", line 1, in 
TypeError: decode() takes no keyword arguments
>>> 

>>> len('中文')
6

如果要取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元素

所以,只有1个元素的tuple定义时必须加一个逗号,,来消除歧义
tuple所谓的“不变”是说,tuple的每个元素,指向永远不变

发表评论