数据类型是每种编程语言必备属性,只有给数据赋予明确的数据类型,计算机才能对数据进行处理运算,因此,正确使用数据类型是十分必要的,不同的语言,数据类型类似,但具体表示方法有所不同。
以下是Python编程常用的数据类型:
数字类型
Python数字类型主要包括int(整型)、long(长整型)和float(浮点型),但是在Python3中就不再有long类型了。
int(整型)
在32位机器上,整数的位数是32位,取值范围是-231~231-1,即-2147483648~214748364;在64位系统上,整数的位数为64位,取值范围为-263~263-1,即9223372036854775808~9223372036854775807。
long(长整型)
Python长整型没有指定位宽,但是由于机器内存有限,使用长的长整数数值也不可能无限大。
float(浮点型)
浮点型也就是带有小数点的数,其精度和机器有关。
complex(复数)
Python还支持复数,复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型。
字符串
在Python中,加了引号的字符都被认为是字符串,其声明有三种方式,分别是:单引号、双引号和三引号;Python中的字符串有两种数据类型,分别是str类型和unicode类型,str类型采用的ASCII编码,无法表示中文,unicode类型采用unicode编码,能够表示任意字符,包括中文和其他语言。
布尔型
和其他编程语言一样,Python布尔类型也是用于逻辑运算,有两个值:True(真)和False(假)。
列表
列表是Python中使用最频繁的数据类型,集合中可以放任何数据类型,可对集合进行创建、查找、切片、增加、修改、删除、循环和排序操作。
元组
元组和列表一样,也是一种序列,与列表不同的是,元组是不可修改的,元组用”()”标识,内部元素用逗号隔开。
字典
字典是一种键值对的集合,是除列表以外Python之中最灵活的内置数据结构类型,列表是有序的对象集合,字典是无序的对象集合。
集合
集合是一个无序的、不重复的数据组合,它的主要作用有两个,分别是去重和关系测试。
Python中的数据类型
Python中的每个值都有一个数据类型。由于在Python编程中一切都是对象,因此数据类型实际上是类,而变量是这些类的示例(对象)。
Python中有多种数据类型。下面列出了一些重要的类型。
Python 数字(Number)
整数、浮点数和复数都属于Python数字的范畴。在Python中,它们被定义为 int、float 和 complex类。
我们可以使用type()函数来判断一个变量或值属于哪个类。同样地,isinstance() 函数用于检查对象是否属于特定的类。
a = 5 print(a, "的类型是 ", type(a)) a = 2.0 print(a, "的类型是 ", type(a)) a = 1+2j print(a, "是复数吗?", isinstance(1+2j,complex))
输出量
5 的类型是 <class 'int'>
2.0 的类型是 <class 'float'>
(1+2j) 是复数吗? True
整数可以是任意长度,但受可用内存的限制。
浮点数最多可精确到 15 个小数位。整数 和 浮点由小数点分隔。1 是整数,1.0 是浮点数。
复数以 x + yj 形式书写,其中x是实部,y是虚部。这里有些示例。
>>> a = 1234567890123456789
>>> a
1234567890123456789
>>> b = 0.1234567890123456789
>>> b
0.12345678901234568
>>> c = 1+2j
>>> c
(1+2j)
注意,float变量b被截断了。
Python 列表(List)
列表是项目的有序序列。它是Python中最常用的数据类型之一,非常灵活。列表中的项目允许不是同一类型。
声明列表非常简单。用逗号分隔的项目放在方括号内[ ]。
a = [1, 2.2, 'python']
我们可以使用切片运算符 [ ] 从列表中提取一个项目 或 一系列项目。注意,在Python中,索引从 0 开始。
a = [5,10,15,20,25,30,35,40] # a[2] = 15 print("a[2] = ", a[2]) # a[0:3] = [5, 10, 15] print("a[0:3] = ", a[0:3]) # a[5:] = [30, 35, 40] print("a[5:] = ", a[5:])
输出量
a[2] = 15
a[0:3] = [5, 10, 15]
a[5:] = [30, 35, 40]
列表是可变的,也就是说,列表元素的值可以更改。
a = [1, 2, 3] a[2] = 4 print(a)
输出量
[1, 2, 4]
Python 元组(Tuple)
元组(Tuple)是项目的有序序列,与列表(List)相同。唯一的区别是元组是不可变的。元组一旦创建就不能修改。
元组用于写保护数据,通常比列表快,因为它们不能动态更改。
它在括号内 () 定义,其中各项之间用逗号分隔。
t = (5,'program', 1+3j)
我们可以使用切片运算符 [] 提取项目,但不能更改其值。
t = (5,'program', 1+3j) # t[1] = 'program' print("t[1] = ", t[1]) # t[0:3] = (5, 'program', (1+3j)) print("t[0:3] = ", t[0:3]) #产生错误 #元组是不可变的 t[0] = 10
输出量
t[1] = program
t[0:3] = (5, 'program', (1+3j))
Traceback (most recent call last):
File "test.py", line 11, in <module>
t[0] = 10
TypeError: 'tuple' object does not support item assignment
Python 字符串
字符串是Unicode字符的序列。我们可以使用单引号或双引号来表示字符串。可以使用三引号 ''' 或 """ 来表示多行字符串。
s = "This is a string" print(s) s = '''A multiline string''' print(s)
输出量
This is a string
A multiline
string
就像列表和元组一样,切片运算符 [ ] 可以与字符串一起使用。但是,字符串是不可变的。
s = 'Hello world!' # s[4] = 'o' print("s[4] = ", s[4]) # s[6:11] = 'world' print("s[6:11] = ", s[6:11]) #发生错误 #字符串在Python中是不可变的 s[5] ='d'
输出量
s[4] = o
s[6:11] = world
Traceback (most recent call last):
File "<string>", line 11, in <module>
TypeError: 'str' object does not support item assignment
Python 集合(Set)
Set 是唯一项的无序集合。Set 由用大括号 { } 括起来,并由逗号分隔的值的集合。集合中的项目是无序的。
a = {5,2,3,1,4} # 输出set集变量 print("a = ", a) # 输出a的数据类型 print(type(a))
输出量
a = {1, 2, 3, 4, 5}
<class 'set'>
我们可以在两个集合上执行集合操作,例如 并集,交集。集具有唯一值。他们消除重复。
a = {1,2,2,3,3,3} print(a)
输出量
{1, 2, 3}
由于 set 是无序集合,因此索引没有意义。因此,切片运算符 [] 不起作用。
>>> a = {1,2,3}
>>> a[1]
Traceback (most recent call last):
File "<string>", line 301, in runcode
File "<interactive input>", line 1, in <module>
TypeError: 'set' object does not support indexing
Python字典
字典是 键值对 的无序集合。
当我们拥有大量数据时,通常使用它。字典针对检索数据进行了优化。我们必须知道检索值的密钥。
在Python中,大括号 {} 内定义了字典,每一项都是形式为 key:value 。键 和 值 可以是任何类型。
>>> d = {1:'value','key':2}
>>> type(d)
<class 'dict'>
我们可以使用键来检索相应的值。
d = {1:'value','key':2} print(type(d)) print("d[1] = ", d[1]); print("d['key'] = ", d['key']); #产生错误 print("d[2] = ", d[2]);
输出量
<class 'dict'>
d[1] = value
d['key'] = 2
Traceback (most recent call last):
File "<string>", line 9, in <module>
KeyError: 2
数据类型转换
我们可以通过使用不同类型的转换功能,例如不同的数据类型之间进行转换 int(),float(),str() 等。
>>> float(5)
5.0
从float 到 int的转换将截断该值(使其接近零)。
>>> int(10.6)
10
>>> int(-10.6)
-10
字符串之间的转换必须包含兼容的值。
>>> float('2.5')
2.5
>>> str(25)
'25'
>>> int('1p')
Traceback (most recent call last):
File "<string>", line 301, in runcode
File "<interactive input>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '1p'
我们甚至可以将一个序列转换为另一序列。
>>> set([1,2,3])
{1, 2, 3}
>>> tuple({5,6,7})
(5, 6, 7)
>>> list('hello')
['h', 'e', 'l', 'l', 'o']
要转换为字典,每个元素必须成对:
>>> dict([[1,2],[3,4]])
{1: 2, 3: 4}
>>> dict([(3,26),(4,44)])
{3: 26, 4: 44}