参考:
Python3 基本数据类型 | 菜鸟教程
number:
类型
- int:包括正整数、负整数和零;
- float :浮点数;
- complex :complex(a,b) ----->
a + bj
的形式表示; - bool: True or False;
一些运算:
- 判断类型: type(a)
- 判断类型相等:
type(A())==A
print True or False - 赋值:
a,b,c=1,2,3 - a/b 为浮点数;
- a//b为向下取整;
- a%b为取余;
- a**b为a的b次方;
- a.real ---->输出实数部分;a.imag----->输出虚数部分(imaginary);
String(字符串)
- 定义: a='hello' 或者 a="hello",单双引号都可以;
- a[1]--->取第二个字符;
- a[2:5]--->取第3到6个字符;
- a[2:]--->取从3到末尾的字符;
- a[3:-1]—>从第四到倒数第二个字符;
- a[-1] -->最后一个字符;
- 字符串里元素不可修改:my_string[0]='d'是非法操作;
- 切片:[start:stop:step],如a[1:-1:2],步长为2;
- \为转义特殊字符,加r后表示原始字符串,如下:
- 字符串分割:
按照空格来分割字符串:
key=a.split(" "), 当字符串为"I like runoob"时,key为一个列表["I", "like", "runoob"];
bool(布尔类型)
- 布尔类型即 True 或 False。
- 强制类型转换:
print(bool(0)) 为False:
print(bool('')) 为False:
print(bool([])) 为False:
对于整数、浮点数和复数这些数值类型,除了 0 值(如整数 0、浮点数 0.0、复数 0 + 0j)会被转换为False
外,其他非零值都会被转换为True
。
对于字符串类型,空字符串''
或""
没有包含任何字符,所以被转换为False
。对于容器类型(列表[]
、元组()
、字典{}
、集合set()
),当它们不包含任何元素时,就相当于 “空容器”,也被转换为False
- 比较:print(5 > 3);print(2 == 2);
List(列表)
- 定义: list=[123,456,'abc']
- print (list) # 打印整个列表
print (list[0]) # 打印列表的第一个元素
print (list[1:3]) # 打印列表第二到第四个元素(不包含第四个元素)
print (list[2:]) # 打印列表从第三个元素开始到末尾
print (tinylist * 2) # 打印tinylist列表两次
print (list + tinylist) # 打印两个列表拼接在一起的结果 - 设值:a[2:5] = [13, 14, 15]
- 切片:list[-1::-1]也是按照[start:stop:step]来切,-1从List末尾开始,步长-1即从后向前,没有stop则一直到List的最开头;
- 特点:表是有序的,这意味着元素的顺序是有意义的,并且可以通过索引来访问元素;列表是可变的(mutable),可以对其进行添加、删除、修改元素等操作。
- 应用场景:
- 当需要存储一组有序的数据,并且可能需要频繁地修改这些数据时,列表是一个很好的选择。例如,存储一个班级学生的成绩列表,可能需要对成绩进行排序、添加新成绩或者修改某个学生的成绩等操作
Tuple(元组)
- 元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。
- 定义:tuple = ( 'abcd', 786 , 2.23, 'runoob', 70.2 )
- tup[0] = 11 ,修改tuple的元素是非法的操作;
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment - tuple和List一样有切片和读取等操作;
- 定义只有一个元素的元组时,
tup2 = (20,) # 一个元素,需要在元素后添加逗号;
- 特点:元组是有序的,和列表一样可以通过索引访问元素。元组是不可变的(immutable),一旦创建,就不能修改其元素。
- 应用场景:
- 当需要存储一组固定的数据,不希望被意外修改时,元组很有用。例如,在函数返回多个值时,返回一个元组可以保证这些值不会被调用者随意修改。另外,在表示一些固定的配置信息或者数据记录时,元组也很合适。
Set(集合)
- Python 中的集合(Set)是一种无序、可变的数据类型,用于存储唯一的元素。
-
在 Python 中,集合使用大括号 {} 表示,元素之间用逗号 , 分隔。另外,也可以使用 set() 函数创建集合。注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
-
定义: a={123,'abc'}或者a=set(),a.add('app'); a.add('lulalula');
-
从列表等集合中循环增加元素:
a=set()
for x in list:
a.add(x) -
特色操作:
a = set('abracadabra')
b = set('alacazam')
print(a - b) # a 和 b 的差集 {'r', 'b', 'd'}
print(a | b) # a 和 b 的并集 {'b', 'c', 'a', 'z', 'm', 'r', 'l', 'd'}
print(a & b) # a 和 b 的交集 {'c', 'a'}
print(a ^ b) # a 和 b 中不同时存在的元素{'z', 'b', 'm', 'r', 'l', 'd'} -
特点:
-
集合是无序的,所以不能通过索引来访问元素。例如,对于集合
my_set = {1, 2, 3}
,不能使用my_set[0]
来获取元素。 - 集合中的元素是唯一的,不允许有重复元素。如果创建集合时出现重复元素,会自动去重。例如,
my_set = {1, 2, 2}
实际上等同于my_set = {1, 2}
。 - 集合支持高效的数学集合操作,如交集(
&
)、并集(|
)、差集(-
)等。例如,set1 = {1, 2, 3}
,set2 = {3, 4, 5}
,set1 & set2
得到{3}
(交集),set1 | set2
得到{1, 2, 3, 4, 5}
(并集)。
-
- 应用场景:
- 当需要对一组数据进行去重操作时,集合是很方便的工具。例如,从一个包含重复元素的列表中获取唯一元素的集合。另外,在处理数学集合相关的问题,如判断两个集合的包含关系、进行集合的合并或筛选等操作时,集合是首选的数据结构。
Dictionary(字典)
-
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。在同一个字典中,键(key)必须是唯一的。
-
定义:dict['one'] = “1”或者dict[1] = “1”;
*tinydict = {'name': 'runoob'};{1: 90, 2: 85, 3: 92};都是合法定义:
*可以用dict()来构建,如dict([('yi':'re'),('yti':'rve')])或者dict({1:2,3:4})或者dict([(1,2),(3,4)]),但是不能用dict(1:2,3:4);
*循环构建:{x:x**2, for x in (1,2,4)};
*dict(Runoob=1, Google=2, Taobao=3);
*my_dict['key']就可以访问; -
特点:
* 字典的关键字必须为不可变类型,且不能重复。
* 键必须是唯一的且不可变的数据类型(如字符串、数字、元组),而值可以是任何数据类型,包括列表、字典等可变类型。
* 字典是可变的数据结构,可以随时添加、删除或修改键 - 值对。例如,my_dict['city'] = 'New York'
就可以为字典添加一个新的键 - 值对,或者使用my_dict['age'] = 31
来修改已有的键对应的的值。
bytes 类型
- bytes 类型表示的是不可变的二进制序列(byte sequence)。bytes 类型中的元素是整数值(0 到 255 之间的整数),因为字节(byte)在计算机存储中是 8 位二进制数据,能够表示的十进制范围就是 0 - 255。
- 默认使用 UTF-8 编码;
x = bytes("hello", encoding="utf-8")
- b = bytes([65, 66, 67]),这里
b
对应的字节序列可以理解为 ASCII 码值为 65、66、67 的字符序列