菜鸟教程《Python 3 教程》笔记(1):基本数据类型
- 1 基本数据类型
- 1.1 Number(数字)
- 1.2 String(字符串)
- 1.3 bool(布尔类型)
- 1.4 List(列表)
- 1.5 Tuple(元组)
- 1.6 Set(集合)
- 1.7 Dictionary(字典)
- 1.8 bytes 类型
1 基本数据类型
出处: 菜鸟教程 - Python3 基本数据类型
Python 3 的六个标准数据类型中:
- 不可变数据(3 个): Number(数字)、String(字符串)、Tuple(元组);
- 可变数据(3 个): List(列表)、Dictionary(字典)、Set(集合)。
此外还有一些高级的数据类型,如: 字节数组类型(bytes)。
1.1 Number(数字)
注意:Python3 中,bool 是 int 的子类,True 和 False 可以和数字相加,
True==1
、False==0
会返回 True,但可以通过 is 来判断类型。
>>> issubclass(bool, int)
True
>>> True==1
True
>>> False==0
True
>>> True+1
2
>>> False+1
1
>>> 1 is True
False
>>> 0 is False
False
1.2 String(字符串)
Python 使用反斜杠 \
转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个 r
,表示原始字符串:
>>> print('Ru\noob')
Ru
oob
>>> print(r'Ru\noob')
Ru\noob
1.3 bool(布尔类型)
- 布尔类型可以和其他数据类型进行比较,比如数字、字符串等。在比较时,Python 会将 True 视为 1,False 视为 0。
- 布尔类型也可以被转换成其他数据类型,比如整数、浮点数和字符串。在转换时,True 会被转换成 1,False 会被转换成 0。
a = True
b = False# 比较运算符
print(2 < 3) # True
print(2 == 3) # False# 逻辑运算符
print(a and b) # False
print(a or b) # True
print(not a) # False# 类型转换
print(int(a)) # 1
print(float(b)) # 0.0
print(str(a)) # "True"
1.4 List(列表)
list1 = [x for x in range(9)]print(list1[-1::-2]) # [9]
print(list1[-1:-4]) # []
1.5 Tuple(元组)
虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。
构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:
tup1 = () # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号
1.6 Set(集合)
注意: 创建一个空集合必须用
set()
而不是{}
,因为{}
是用来创建一个空字典。
# set可以进行集合运算
a = set('abracadabra')
b = set('alacazam')print(a)
print(a - b) # a 和 b 的差集
print(b - a)
print(a | b) # a 和 b 的并集
print(a & b) # a 和 b 的交集
print(a ^ b) # a 和 b 中不同时存在的元素{'d', 'c', 'r', 'a', 'b'}
{'r', 'd', 'b'}
{'m', 'z', 'l'}
{'m', 'd', 'c', 'r', 'a', 'z', 'b', 'l'}
{'a', 'c'}
{'m', 'r', 'd', 'z', 'b', 'l'}
1.7 Dictionary(字典)
键(key)必须使用不可变类型。在同一个字典中,键(key)必须是唯一的。
构造函数 dict()
可以直接从键值对序列中构建字典如下:
>>> dict([('Runoob', 1), ('Google', 2), ('Taobao', 3)])
{'Runoob': 1, 'Google': 2, 'Taobao': 3}
>>> {x: x**2 for x in (2, 4, 6)}
{2: 4, 4: 16, 6: 36}
>>> dict(Runoob=1, Google=2, Taobao=3)
{'Runoob': 1, 'Google': 2, 'Taobao': 3}
1.8 bytes 类型
什么是 bytes 类型:
- 在 Python3 中,bytes 类型表示的是不可变的二进制序列(byte sequence)。
- 与字符串类型不同的是,bytes 类型中的元素是整数值(0 到 255 之间的整数),而不是 Unicode 字符。
怎么创建 bytes 类型:
- 使用 b 前缀;
- 可以使用
bytes()
函数将其他类型的对象转换为 bytes 类型。
x = bytes("hello", encoding="utf-8")
注意: bytes 类型中的元素是整数值,因此在进行比较操作时需要使用相应的整数值。
x = b"hello"
if x[0] == ord("h"):print("The first element is 'h'")