Python 数据类型
Python 数据类型
Python 数据类型用于定义变量的类型。它定义了我们将在变量中存储哪种类型的数据。存储在内存中的数据可以有很多种类型。例如,一个人的年龄被存储为数值,他或她的地址被存储为字母数字字符。
Python 有各种内置数据类型,我们将在本教程中讨论:
- 数字类型 – int、float、complex
- 字符串类型 – str
- 序列类型 – list、tuple、range
- 二进制类型 – bytes、bytearray、memoryview
- 映射类型 – dict
- 布尔类型 – bool
- 集合类型 – set、frozenset
- 空类型 – NoneType
Python 数字数据类型
Python 数字数据类型存储数字值。当你给它们赋值时,创建了数字对象。例如 –
var1 = 1
var2 = 10
var3 = 10.023
Python支持四种不同的数字类型 –
- int(有符号整数)
- long(长整数,也可以用八进制和十六进制表示)
- float(浮点实数)
- complex(复数)
示例
以下是一些数字的例子 –
int | long | float | complex |
---|---|---|---|
10 | 51924361L | 0.0 | 3.14j |
100 | -0x19323L | 15.20 | 45.j |
-786 | 0122L | -21.9 | 9.322e-36j |
080 | 0xDEFABCECBDAECBFBAEl | 32.3+e18 | .876j |
-0490 | 535633629843L | -90. | -.6545+0J |
-0x260 | -052318172735L | -32.54e100 | 3e+26J |
0x69 | -4721885298529L | 70.2-E12 | 4.53e-7j |
- Python允许您在long中使用小写字母l,但建议您只使用大写字母L以避免与数字1混淆。Python使用大写字母L显示长整数。
-
复数由一个有序的实浮点数对表示,用x + yj表示,其中x和y是实数,j是虚数单位。
示例
以下是一个示例,展示了整数、浮点数和复数的用法:
# integer variable.
a=100
print("The type of variable having value", a, " is ", type(a))
# float variable.
b=20.345
print("The type of variable having value", b, " is ", type(b))
# complex variable.
c=10+3j
print("The type of variable having value", c, " is ", type(c))
Python字符串数据类型
Python字符串被识别为一组以引号括起来的连续字符。Python允许使用单引号或双引号。可以使用切片操作符([ ]和[:])来获取字符串的子集,索引从0开始在字符串的开头,从-1开始向结束的方向递增。
加号(+)是Python中的字符串连接运算符,星号(*)是重复运算符。例如:
str = 'Hello World!'
print (str) # Prints complete string
print (str[0]) # Prints first character of the string
print (str[2:5]) # Prints characters starting from 3rd to 5th
print (str[2:]) # Prints string starting from 3rd character
print (str * 2) # Prints string two times
print (str + "TEST") # Prints concatenated string
这将产生以下结果−
Hello World!
H
llo
llo World!
Hello World!Hello World!
Hello World!TEST
Python列表数据类型
Python列表是最多才多艺的复合数据类型。Python列表包含由逗号分隔并在方括号([])中封装的项目。在某种程度上,Python列表类似于C语言中的数组。它们之间的一个区别是Python列表中的所有项目可以是不同的数据类型,而C数组只能存储与特定数据类型相关的元素。
可以使用切片运算符([ ]和[:])访问存储在Python列表中的值,索引从列表开头的0开始,一直到末尾-1。加号(+)是列表连接运算符,星号(*)是重复运算符。例如:
list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
print (list) # Prints complete list
print (list[0]) # Prints first element of the list
print (list[1:3]) # Prints elements starting from 2nd till 3rd
print (list[2:]) # Prints elements starting from 3rd element
print (tinylist * 2) # Prints list two times
print (list + tinylist) # Prints concatenated lists
这会产生以下结果 −
['abcd', 786, 2.23, 'john', 70.2]
abcd
[786, 2.23]
[2.23, 'john', 70.2]
[123, 'john', 123, 'john']
['abcd', 786, 2.23, 'john', 70.2, 123, 'john']
Python元组数据类型
Python元组是另一种类似于列表的序列数据类型。Python元组由多个值以逗号分隔而成。与列表不同,元组使用括号括起来。
列表和元组的主要区别是:列表使用方括号([ ])括起来,其元素和大小可以改变,而元组使用圆括号(())括起来,不可以被更新。元组可以被看作是 只读的 列表。例如 –
tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )
tinytuple = (123, 'john')
print (tuple) # Prints the complete tuple
print (tuple[0]) # Prints first element of the tuple
print (tuple[1:3]) # Prints elements of the tuple starting from 2nd till 3rd
print (tuple[2:]) # Prints elements of the tuple starting from 3rd element
print (tinytuple * 2) # Prints the contents of the tuple twice
print (tuple + tinytuple) # Prints concatenated tuples
这将产生以下结果−
('abcd', 786, 2.23, 'john', 70.2)
abcd
(786, 2.23)
(2.23, 'john', 70.2)
(123, 'john', 123, 'john')
('abcd', 786, 2.23, 'john', 70.2, 123, 'john')
以下代码在元组中是无效的,因为我们试图更新一个元组,而这是不允许的。类似的情况可能在列表中发生。
tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )
list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tuple[2] = 1000 # Invalid syntax with tuple
list[2] = 1000 # Valid syntax with list
Python Ranges
Python range() 是Python中的一个内置函数,它返回一个从0开始递增到指定数字的数列。
我们使用 range() 函数配合for循环和while循环来生成一系列的数字。以下是该函数的语法:
range(start, stop, step)
下面是使用的参数的描述:
- start :指定起始位置的整数(可选,默认值:0)
- stop :指定起始位置的整数(必填)
- step :指定递增的整数(可选,默认值:1)
示例
以下是使用for循环打印从0到4的数字的程序:
for i in range(5):
print(i)
这将产生以下结果 –
0
1
2
3
4
现在让我们修改上面的程序,以打印从1开始的数字,而不是从0开始:
for i in range(1, 5):
print(i)
这将产生以下结果−
1
2
3
4
再次,让我们修改程序,从1开始打印数字,但是增量改为2而不是1:
for i in range(1, 5, 2):
print(i)
这将产生如下的结果 −
1
3
Python字典
Python字典是一种哈希表类型。它们的工作原理类似于Perl中的关联数组或哈希,由键值对组成。字典的键可以是几乎任何Python类型,但通常是数字或字符串。另一方面,值可以是任何任意的Python对象。
字典用花括号({ })括起来,可以使用方括号([])分配和访问值。例如 –
dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
tinydict = {'name': 'john','code':6734, 'dept': 'sales'}
print (dict['one']) # Prints value for 'one' key
print (dict[2]) # Prints value for 2 key
print (tinydict) # Prints complete dictionary
print (tinydict.keys()) # Prints all the keys
print (tinydict.values()) # Prints all the values
这样会产生以下结果−
This is one
This is two
{'dept': 'sales', 'code': 6734, 'name': 'john'}
['dept', 'code', 'name']
['sales', 6734, 'john']
Python字典对元素之间的顺序没有概念。说元素“顺序不对”是不正确的;它们只是无序的。
Python布尔数据类型
Python boolean 类型是内置的数据类型之一,表示两个值之一,即 True 或 False 。Python的 bool() 函数允许您评估任何表达式的值,并根据表达式返回True或False。
示例
以下是一个打印布尔变量a和b值的程序 –
a = True
# display the value of a
print(a)
# display the data type of a
print(type(a))
这将产生以下结果 −
true
<class 'bool'>
以下是另一个评估表达式并打印返回值的程序:
# Returns false as a is not equal to b
a = 2
b = 4
print(bool(a==b))
# Following also prints the same
print(a==b)
# Returns False as a is None
a = None
print(bool(a))
# Returns false as a is an empty sequence
a = ()
print(bool(a))
# Returns false as a is 0
a = 0.0
print(bool(a))
# Returns false as a is 10
a = 10
print(bool(a))
这将产生以下结果−
False
False
False
False
False
True
Python数据类型转换
有时候,你可能需要在内置的数据类型之间进行转换。为了在不同的Python数据类型之间进行转换,你只需使用类型名称作为函数即可。
转换为整数
以下是将数字、浮点数和字符串转换为整数数据类型的示例:
a = int(1) # a will be 1
b = int(2.2) # b will be 2
c = int("3") # c will be 3
print (a)
print (b)
print (c)
这会产生以下结果−
1
2
3
浮点数转换
以下是一个将数字、浮点数和字符串转换为浮点数数据类型的示例:
a = float(1) # a will be 1.0
b = float(2.2) # b will be 2.2
c = float("3.3") # c will be 3.3
print (a)
print (b)
print (c)
这将产生以下结果 −
1.0
2.2
3.3
转换为字符串
以下是将数字、浮点数和字符串转换为字符串数据类型的示例:
a = str(1) # a will be "1"
b = str(2.2) # b will be "2.2"
c = str("3.3") # c will be "3.3"
print (a)
print (b)
print (c)
这会产生以下结果−
1
2.2
3.3
数据类型转换函数
有几个内置函数可以执行从一种数据类型到另一种数据类型的转换。这些函数返回一个表示转换后的值的新对象。
序号 | 函数与描述 |
---|---|
1 | int(x [,base]) 将x转换为整数。如果x是字符串,base指定了进制。 |
2 | long(x [,base] ) 将x转换为长整数。如果x是字符串,base指定了进制。 |
3 | float(x) 将x转换为浮点数。 |
4 | complex(real [,imag]) 创建一个复数。 |
5 | str(x) 将对象x转换为字符串表示。 |
6 | repr(x) 将对象x转换为表达式字符串。 |
7 | eval(str) 计算并返回一个字符串表示的对象。 |
8 | tuple(s) 将s转换为元组。 |
9 | list(s) 将s转换为列表。 |
10 | set(s) 将s转换为集合。 |
11 | dict(d) 创建一个字典。d必须是(key,value)元组的序列。 |
12 | frozenset(s) 将s转换为不可变集合。 |
13 | chr(x) 将整数转换为字符。 |
14 | unichr(x) 将整数转换为Unicode字符。 |
15 | ord(x) 将单个字符转换为其整数值。 |
16 | hex(x) 将整数转换为十六进制字符串。 |
17 | oct(x) 将整数转换为八进制字符串。 |