Python数据类型
Python 中的每个值都有一个数据类型。由于在 Python 编程中一切都是对象,因此数据类型实际上是类,而变量是这些类的实例(对象)。
Python中有多种数据类型。下面列出了一些重要的类型。
1. Python数值数据类型
整数、浮点数和复数属于 Python数值数据类型。它们在 Python 中被定义为 int、float 和 complex 类。
数值类型实例
int | float | complex |
---|---|---|
10 | 0.0 | 3.14j |
100 | 15.20 | 45.j |
-786 | -21.9 | 9.322e-36j |
080 | 32.3e+18 | .876j |
-0490 | -90. | -.6545+0J |
-0x260 | -32.54e100 | 3e+26J |
0x69 | 70.2E-12 | 4.53e-7j |
Python还支持复数,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型.
内置的 type() 函数可以用来查询变量所指的对象的数据类型。
同样,isinstance() 函数用于检查对象是否属于特定数据类型。
isinstance 和 type 的区别在于:
- type()不会认为子类是一种父类类型。
- isinstance()会认为子类是一种父类类型。
例1.1 type函数,isinstance函数的应用
a = 5
print(a, "is of type", type(a))
a = 2.0
print(a, "is of type", type(a))
a = 1+2j
print(a, "is complex number?", isinstance(1+2j,complex))
结果
整数可以是任意长度,它仅受可用内存的限制。
浮点数精确到小数点后 15 位。整数和浮点数用小数点分隔。 1 是整数,1.0 是浮点数。
复数写成 x + yj 的形式,其中 x 是实部,y 是虚部。下列输出是浮点数,整数和复数的输入和输出结果:
>>> a = 1234567890123456789
>>> a
1234567890123456789
>>> b = 0.1234567890123456789
>>> b
0.12345678901234568
>>> c = 1+2j
>>> c
(1+2j)
请注意,浮点变量 b 被截断。
1.2 数值运算
>>>5 + 4 # 加法 9 >>> 4.3 - 2 # 减法 2.3 >>> 3 * 7 # 乘法 21 >>> 2 / 4 # 除法,得到一个浮点数 0.5 >>> 2 // 4 # 除法,得到一个整数 0 >>> 17 % 3 # 取余 2 >>> 2 ** 5 # 乘方 32
注意:
- 1、Python可以同时为多个变量赋值,如a, b = 1, 2。
- 2、一个变量可以通过赋值指向不同类型的对象。
- 3、数值的除法包含两个运算符:/ 返回一个浮点数,// 返回一个整数。
- 4、在混合计算时,Python会把整型转换成为浮点数。
2. Python列表
List(列表) 是 Python 中使用最频繁的数据类型。 List 是有序的项目序列。它是 Python 中最常用的数据类型之一,并且非常灵活。
列表中的所有项目不需要属于同一类型。
声明一个列表非常简单。用逗号把每个项目分隔,所有项目用括号 [ ] 括起来。列表是写在方括号 [] 之间、用逗号分隔开的元素列表。
a = [1, 2.2, 'python']
我们可以使用切片运算符 [ ] 从列表中提取一个元素或一系列元素。在 Python 中列表索引从 0 开始。
例1.2 使用切片运算符提取列表中的元素值
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]
3.Python 元组
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。元组中的元素类型也可以不相同:
元组用于对数据进行写保护,并且通常比列表更快,因为它们不能动态更改。
它在括号 () 中定义,其中项目用逗号分隔。
t = (5,'program', 1+3j)
print (t)
结果
(5, 'program', (1+3j))
我们可以使用切片运算符 [] 来提取元素,但我们不能更改它的值。
例3.1 元组内元素的提取和不可修改
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])
# Generates error
# Tuples are immutable
t[0] = 10
结果
4.Python 字符串
字符串是 Unicode 字符序列。我们可以使用单引号或双引号来表示字符串。多行字符串可以使用三引号、”’ 或 “”” 来表示。
例4.1 字符串的应用
s = "This is a string"
print(s)
s = '''A multiline
string'''
print(s)
就像列表和元组一样,切片运算符 [ ] 可以与字符串一起使用。然而,字符串内元素是不可变的。
例4.2 字符串内元素不可更改
s = 'Hello world!'
# s[4] = 'o'
print("s[4] = ", s[4])
# s[6:11] = 'world'
print("s[6:11] = ", s[6:11])
# Generates error
# Strings are immutable in Python
s[5] ='d'
结果
结果显示,第11行给字符串第6个元素改变值是会产生语法错误。
5.Python集合
集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。基本功能是进行成员关系测试和删除重复元素。可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
换言之,Set 是唯一项的无序集合。 Set 由大括号 { } 内用逗号分隔的元素集合,元素是独特的。
例5.1 python集合的定义
a = {5,2,3,1,4}
# printing set variable
print("a = ", a)
# data type of variable a
print(type(a))
a = {1, 2, 3, 4, 5}
<class 'set'>
我们可以对两个集合执行集合操作,如合集、交集。集合内元素不可能一样。
例5.2集合内元素是唯一的
a = {1,2,2,3,3,3}
print(a)
结果
{1, 2, 3}
由于 set 是无序集合,索引没有任何意义。因此,切片运算符 [] 不起作用。
例5.3 切片运算符 [] 不起作用
a = {1,2,3}
print(a)
print(a[1])
6. Python 字典
字典(dictionary)是Python中另一个非常有用的内置数据类型。字典是一个无序的 键(key) : 值(value) 的集合。
它通常在我们有大量数据时使用。字典针对检索数据进行了优化。我们必须知道检索值的键。键(key)必须使用不可变类型。在同一个字典中,键(key)必须是唯一的
在 Python 中,字典是在大括号 {} 中定义的,每个项目都是 key:value 形式的一对。键(key)和值(value) 可以是任何类型。
例6.1
d = {1:'value','key':2}
print(type(d))
结果
<class 'dict'>
我们使用键( key) 来检索相应的值(value) 。但能通过值来发现键(key)。
d = {1:'value','key':2}
print(type(d))
print("d[1] = ", d[1])
print("d['key'] = ", d['key'])
# Generates error
print("d[2] = ", d[2])
结果
Traceback (most recent call last):
File "C:\0python\venv\HelloWorld.py", line 9, in <module>
print("d[2] = ", d[2])
KeyError: 2
<class 'dict'>
d[1] = value
d['key'] = 2
Process finished with exit code 1
注意:
- 1、字典是一种映射类型,它的元素是键值对。
- 2、字典的键必须为不可变类型,且不能重复。
- 3、创建空字典使用 { }。