在编程中,数据类型是一个重要的概念。它代表一种值,告诉我们可以对特定数据执行哪些操作。由于Python编程中一切都是对象,因此数据类型实际上是类,变量是这些类的实例(对象)。以下是 Python 中的标准或内置数据类型:
- 数值类型:int, float, complex
- 序列类型:list, tuple, range, string
- 布尔类型:bool
- 映射类型:set, frozenset
- 字典类型:dict
- 二进制类型:bytes, bytearray, memoryview
Python type() 函数获取数据类型
为了定义各种数据类型的值并检查它们的数据类型,我们使用type() 函数。实例如下:
# DataType Output: str
x = "Hello World"
# DataType Output: int
x = 50
# DataType Output: float
x = 60.5
# DataType Output: complex
x = 3j
# DataType Output: list
x = ["geeks", "for", "geeks"]
# DataType Output: tuple
x = ("geeks", "for", "geeks")
# DataType Output: range
x = range(10)
# DataType Output: dict
x = {"name": "Suraj", "age": 24}
# DataType Output: set
x = {"geeks", "for", "geeks"}
# DataType Output: frozenset
x = frozenset({"geeks", "for", "geeks"})
# DataType Output: bool
x = True
# DataType Output: bytes
x = b"Geeks"
# DataType Output: bytearray
x = bytearray(4)
# DataType Output: memoryview
x = memoryview(bytes(6))
# DataType Output: NoneType
x = None
Python 中的数值类型
Python 中的数值可以是整数、浮点数,甚至是复数。这些值在Python中定义为Python int、Python float和Python complex类。
- 整数– 该值由 int 类表示。它包含正整数或负整数(没有分数或小数)。在 Python 中,整数值的长度没有限制。
- 浮点数 – 该值由 float 类表示。它是一个具有浮点表示形式的实数。它由小数点指定,或者可以附加字符 e 或 E 后跟正整数或负整数来指定科学记数法。
- 复数– 复数由一对有序的实浮点数组成,用 x + yj 表示,其中 x 和 y 是实数,j 是虚数单位。例如 – 2+3j
# Python程序演示
# 数值类型的示例
a = 5
print("a 的类型: ", type(a))
b = 5.0
print("\nb 的类型: ", type(b))
c = 2 + 4j
print("\nc 的类型: ", type(c))
输出:
a 的类型: <class 'int'>
b 的类型: <class 'float'>
c 的类型: <class 'complex'>
Python 中的序列数据类型
Python中的序列数据类型是相似或不同数据类型的有序集合。序列允许以有组织且高效的方式存储多个值。Python 中有多种序列类型 –
- Python 字符串
- Python列表
- Python 元组
字符串数据类型
Python 中的字符串是表示 Unicode 字符的字节数组。字符串是放在单引号、双引号或三引号中的一个或多个字符的集合。python中没有字符数据类型,字符是长度为1的字符串。它由 str 类表示。
创建字符串
Python 中的字符串可以使用单引号、双引号甚至三引号创建。
# Python程序演示
# 创建字符串
# 创建一个使用单引号的字符串
String1 = '欢迎来到Geeks的世界'
print("使用单引号创建的字符串: ")
print(String1)
# 创建一个使用双引号的字符串
String1 = "我是一个Geek"
print("\n使用双引号创建的字符串: ")
print(String1)
print(type(String1))
# 创建一个使用三引号的字符串
String1 = '''我是一个Geek,我生活在"Geeks"的世界里'''
print("\n使用三引号创建的字符串: ")
print(String1)
print(type(String1))
# 使用三引号创建的字符串可以包含多行
String1 = '''Geeks
For
Life'''
print("\n创建多行字符串: ")
print(String1)
输出:
使用单引号创建的字符串:
欢迎来到Geeks的世界
使用双引号创建的字符串:
我是一个Geek
<class 'str'>
使用三引号创建的字符串:
我是一个Geek,我生活在"Geeks"的世界里
<class 'str'>
创建多行字符串:
Geeks
For
Life
访问字符串的元素
在Python中,可以使用索引的方法来访问字符串的各个字符。负索引允许负地址引用访问字符串后面的字符,例如-1 指最后一个字符,-2 指倒数第二个字符,依此类推。
# Python程序演示
# 访问字符串的字符
String1 = "我是Geeks"
print("初始字符串: ")
print(String1)
# 打印第一个字符
print("\n字符串的第一个字符是: ")
print(String1[0])
# 打印最后一个字符
print("\n字符串的最后一个字符是: ")
print(String1[-1])
输出:
初始字符串:
我是Geeks
字符串的第一个字符是:
我
字符串的最后一个字符是:
s
列表数据类型
列表就像数组一样,在其他语言中声明为有序的数据集合。它非常灵活,因为列表中的项目不需要是同一类型。
创建列表
Python 中的列表只需将序列放在方括号 [] 内即可创建。
# 创建一个空列表
List = []
print("初始空列表: ")
print(List)
# 创建一个包含一个字符串的列表
List = ['HelloWorldHello']
print("\n使用字符串创建的列表: ")
print(List)
# 创建一个包含多个值的列表
List = ["Geeks", "For", "Geeks"]
print("\n包含多个值的列表: ")
print(List[0])
print(List[2])
# 创建一个多维列表
# (通过在一个列表中嵌套另一个列表)
List = [['Hello', 'World'], ['Hello']]
print("\n多维列表: ")
print(List)
输出:
初始空列表:
[]
使用字符串创建的列表:
['HelloWorldHello']
包含多个值的列表:
Hello
Hello
多维列表:
[['Hello', 'World'], ['Hello']]
元组数据类型
元组是另一种类似于列表的序列数据类型。元组由多个用逗号分隔的值组成。然而,与列表不同的是,元组包含在括号内。
列表和元组之间的主要区别是:列表包含在方括号([])中,它们的元素和大小可以更改,而元组包含在括号(())中并且不能更新。元组可以被认为是只读列表。例如 –
#!/usr/bin/python3
元组 = ( 'abcd', 786 , 2.23, 'John', 70.2 )
小元组 = (123, 'John')
print (tuple) # 打印完整的元组
print (tuple[0]) # 打印元组的第一个元素
print (tuple[1:3]) # 打印从第二个到第三个的元素
print (tuple[2:]) # 打印从第三个元素开始的元素
print (tinytuple * 2) # 打印元组两次
print (tuple + tinytuple) # 打印连接的元组
输出:
('abcd', 786, 2.23, 'john', 70.200000000000003)
abcd
(786, 2.23)
(2.23, 'john', 70.200000000000003)
(123, 'john', 123, 'john')
('abcd', 786, 2.23, 'john', 70.200000000000003, 123, 'john')
以下代码对于元组无效,因为我们尝试更新元组,这是不允许的。列表也可能出现类似的情况 –
#!/usr/bin/python3
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 中的布尔数据类型
具有两个内置值 True 或 False 之一的数据类型。等于 True 的布尔对象为 true(真),等于 False 的布尔对象为 falsy(假)。但非布尔对象也可以在布尔上下文中进行计算,并确定其真假。它由布尔类表示。
注意– 大写“T”和“F”的 True 和 False 是有效的布尔值,否则 python 将抛出错误。
# Python program to
# demonstrate boolean type
print(type(True))
print(type(False))
print(type(true))
输出:
<class 'bool'>
<class 'bool'>
Python 中的集合数据类型
在Python中,Set是数据类型的无序集合,它是可迭代的、可变的并且没有重复元素。尽管集合可能由各种元素组成,但集合中元素的顺序是未定义的。
在 Python 中创建集合
可以通过将内置 set() 函数与可迭代对象或序列一起使用来创建集合,方法是将序列放在大括号内,并用“逗号”分隔。集合中元素的类型不必相同,也可以将各种混合数据类型值传递给集合。
# Python程序演示
# 在Python中创建集合
# 创建一个空集合
set1 = set()
print("初始空集合: ")
print(set1)
# 使用字符串创建一个集合
set1 = set("GeeksForGeeks")
print("\n使用字符串创建的集合: ")
print(set1)
# 使用列表创建一个集合
set1 = set(["Geeks", "For", "Geeks"])
print("\n使用列表创建的集合: ")
print(set1)
# 创建一个包含混合类型值的集合
# (包含数字和字符串)
set1 = set([1, 2, 'Geeks', 4, 'For', 6, 'Geeks'])
print("\n使用混合值创建的集合")
print(set1)
输出:
初始空集合:
set()
使用字符串创建的集合:
{'F', 'o', 'G', 's', 'r', 'k', 'e'}
使用列表创建的集合:
{'Geeks', 'For'}
使用混合值创建的集合
{1, 2, 4, 6, 'Geeks', 'For'}
访问集合项
集合项无法通过引用索引来访问,因为集合是无序的,因此项没有索引。但是您可以使用 for 循环遍历集合项,或者使用 in 关键字询问集合中是否存在指定值。
# Python program to demonstrate
# Accessing of elements in a set
# Creating a set
set1 = set(["Geeks", "For", "Geeks"])
print("\nInitial set")
print(set1)
# Accessing element using
# for loop
print("\nElements of set: ")
for i in set1:
print(i, end=" ")
# Checking the element
# using in keyword
print("Geeks" in set1)
输出:
Initial set:
{'Geeks', 'For'}
Elements of set:
Geeks For
True
Python 中的字典数据类型
Python 中的字典是数据值的无序集合,用于像映射一样存储数据值,与仅保存单个值作为元素的其他数据类型不同,字典保存一个键:键值。字典中提供了Key-value,使其更加优化。字典中的每个键值对由冒号 : 分隔,而每个键由“逗号”分隔。
创建字典
在 Python 中,可以通过将一系列元素放在大括号内并用“逗号”分隔来创建字典。字典中的值可以是任何数据类型并且可以重复,而键不能重复并且必须是不可变的。字典也可以通过内置函数 dict() 创建。只需将其放在大括号{} 中即可创建空字典。注意– 字典键区分大小写,名称相同但大小写不同的键将被区别对待。
#!/usr/bin/python3
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
{'name': 'john', 'dept': 'sales', 'code': 6734}
dict_keys(['name', 'dept', 'code'])
dict_values(['john', 'sales', 6734])
访问字典中的键值
为了访问字典的项目,请参考其键名称。键可以在方括号内使用。还有一个名为 get() 的方法也有助于从字典中访问元素。
# Python program to demonstrate
# accessing a element from a Dictionary
# Creating a Dictionary
Dict = {1: 'Geeks', 'name': 'For', 3: 'Geeks'}
# accessing a element using key
print("使用key访问元素:")
print(Dict['name'])
# accessing a element using get()
# method
print("使用get方法访问元素:")
print(Dict.get(3))
输出:
使用key访问元素:
For
使用get方法访问元素:
Geeks
数据类型转换
有时,您可能需要在内置类型之间执行转换。要在类型之间进行转换,只需将类型名称用作函数即可。
有几个内置函数可以执行从一种数据类型到另一种数据类型的转换。这些函数返回一个表示转换值的新对象。
- int() – 用整数字面量、浮点字面量构造整数(通过对数进行下舍入),或者用表示完整数字的字符串字面量
- float() – 用整数字面量、浮点字面量,或字符串字面量构造浮点数(提供表示浮点数或整数的字符串)
- str() – 用各种数据类型构造字符串,包括字符串,整数字面量和浮点字面量
x = int(1) # x 将是 1
y = int(2.8) # y 将是 2
z = int("3") # z 将是 3
x = float(1) # x 将是 1.0
y = float(2.8) # y 将是 2.8
z = float("3") # z 将是 3.0
w = float("4.2") # w 将是 4.2
x = str("s1") # x 将是 's1'
y = str(2) # y 将是 '2'
z = str(3.0) # z 将是 '3.0'