PoEdu培训 Python班 第二课 Python基本数据类型
文章类别: 培训笔记 0 评论

PoEdu培训 Python班 第二课 Python基本数据类型

文章类别: 培训笔记 0 评论

Python 数据类型

本文的Python知识基于 Python3

Python的基础数据结构

可以使用 type() 查看变量的类型

整数(int)

在Python中, 任何一个不带小数点的数值, 我们都将之称之为整数

浮点数(float)

字符串(str)

print(r'123\n123')
print(r"\t\t\nasd asd adssdf\n\n\n")
print('''123123123
   1213123
   12312312''')

布尔值(bool)

布尔值和布尔袋鼠的表示法完全一致

布尔值的操作

None(NoneType)

字符串的常用函数

>>> ord('H')
72
>>> ord('a')
97
>>> ord('d')
100
>>> ord('e')
101
>>> ord('s')
115
>>> chr(72)
'H'
>>> chr(97)
'a'
>>> chr(100)
'd'
>>> chr(101)
'e'
>>> chr(115)
's'
>>> name = chr(72) + chr(97) + chr(100) + chr(101) + chr(115)
>>> print(name)
Hades
>>> chr(0)
'\x00'
>>> chr(33)
'!'
>>> ord('花')
33457
>>> ord('心')
24515
>>> ord('胡')
32993
>>> ord('萝')
33821
>>> ord('卜')
21340
>>> chr(33457)
'花'
>>> chr(24515)
'心'
>>> chr(32993)
'胡'
>>> chr(33821)
'萝'
>>> chr(21340)
'卜'
>>> name = chr(33457) + chr(24515) + chr(32993) + chr(33821) + chr(21340)
>>> print(name)
花心胡萝卜
>>> 

Python3默认使用Unicode, 可以支持中文

>>> name = 'abc'
>>> name.encode()
b'abc'
>>> name.encode('ascii')
b'abc'
>>> name = "花心胡萝卜"
>>> name.encode()
b'\xe8\x8a\xb1\xe5\xbf\x83\xe8\x83\xa1\xe8\x90\x9d\xe5\x8d\x9c'
>>> name.encode('utf-8')
b'\xe8\x8a\xb1\xe5\xbf\x83\xe8\x83\xa1\xe8\x90\x9d\xe5\x8d\x9c'
>>> name.encode().decode()
'花心胡萝卜'
>>> name = 'Hades工作室'
>>> name.encode
<built-in method encode of str object at 0x033D1B48>
>>> name.encode('utf-8')
b'Hades\xe5\xb7\xa5\xe4\xbd\x9c\xe5\xae\xa4'
>>> name = name.encode()
>>> print(name)
b'Hades\xe5\xb7\xa5\xe4\xbd\x9c\xe5\xae\xa4'
>>> name.decode()
'Hades工作室'
>>> name.decode('utf-8')
'Hades工作室'
>>> 

我们在看看如下语句

>>> name = b'abc'
>>> print(name)
b'abc'
>>> type(name)
<class 'bytes'>
>>> name = b"花心胡萝卜"
  File "<stdin>", line 1
SyntaxError: bytes can only contain ASCII literal characters.
>>> name = b'\xe8\x8a\xb1\xe5\xbf\x83\xe8\x83\xa1\xe8\x90\x9d\xe5\x8d\x9c'
>>> print(name)
b'\xe8\x8a\xb1\xe5\xbf\x83\xe8\x83\xa1\xe8\x90\x9d\xe5\x8d\x9c'
>>> type(name)
<class 'bytes'>
>>> name = name.decode()
>>> print(name)
花心胡萝卜
>>> type(name)
<class 'str'>
>>> 

由此可见, 有前缀b的字符串是byte类型的

>>> name = "花心胡萝卜"
>>> print(name)
花心胡萝卜
>>> len(name)
5
>>> name = name.encode()
>>> print(name)
b'\xe8\x8a\xb1\xe5\xbf\x83\xe8\x83\xa1\xe8\x90\x9d\xe5\x8d\x9c'
>>> len(name)
15
>>> name = b'\xe8\x8a\xb1\xe5\xbf\x83\xe8\x83\xa1\xe8\x90\x9d\xe5\x8d\x9c'
>>> print(name.decode())
花心胡萝卜
>>> len(name.decode())
5
>>> name = name.decode()
>>> len(name)
5
>>> 

未完待续...

如有错误,请提出指正!谢谢.

回复