📜  Python数据类型

📅  最后修改于: 2020-10-24 08:51:32             🧑  作者: Mango

Python数据类型

变量可以保存值,并且每个值都有一个数据类型。 Python是一种动态类型化的语言;因此,我们在声明变量时不必定义变量的类型。解释器隐式地将值与其类型绑定。

a = 5

变量a的整数值为5,我们没有定义其类型。 Python解释器将自动将变量a解释为整数类型。

Python使我们能够检查程序中使用的变量的类型。 Python为我们提供了type()函数,该函数返回传递的变量的类型。

考虑以下示例,以定义不同数据类型的值并检查其类型。

a=10
b="Hi Python"
c = 10.5
print(type(a))
print(type(b))
print(type(c))

输出:




标准数据类型

变量可以容纳不同类型的值。例如,一个人的姓名必须存储为字符串,而其ID必须存储为整数。

Python提供了各种标准数据类型,这些数据类型定义了每种数据类型的存储方法。 Python中定义的数据类型如下。

在本教程的这一部分中,我们将简要介绍上述数据类型。在本教程的后面,我们将详细讨论其中的每一个。

Number

数字存储数值。整数,浮点型和复数值属于Python Numbers数据类型。 Python提供了type()函数来知道变量的数据类型。同样,isinstance()函数用于检查属于特定类的对象。

将数字分配给变量后, Python会创建Number对象。例如;

a = 5
print("The type of a", type(a))

b = 40.5
print("The type of b", type(b))

c = 1+3j
print("The type of c", type(c))
print(" c is a complex number", isinstance(1+3j,complex))

输出:

The type of a 
The type of b 
The type of c 
c is complex number: True

Python支持三种类型的数字数据。

  • Int-整数值可以是任何长度,例如整数10、2、29,-20,-150等Python对整数的长度没有限制。它的值属于int
  • 浮点数-浮点数用于存储1.9、9.902、15.2等浮点数。它最多可精确到15个小数点。
  • 复数-复数包含有序对,即x + iy,其中x和y分别表示实部和虚部。复数,例如2.14j,2.0 + 2.3j等。

序列类型

str

可以将字符串定义为引号中表示的字符序列。在Python,我们可以使用单引号,双引号或三引号来定义字符串。

Python中的字符串处理是一项简单的任务,因为Python提供了内置函数和运算符以对字符串执行操作。

在字符串处理的情况下,运算符+用于连接两个字符串,因为操作“ hello” +“ Python”返回“ hello Python”。

运算符*被称为重复运算符,因为操作“Python” * 2返回’ Python Python’。

以下示例说明了Python的字符串。

示例-1

str = "string using double quotes"
print(str)
s = '''A multiline
string'''
print(s)

输出:

string using double quotes
A multiline
string

考虑下面的字符串处理示例。

示例-2

str1 = 'hello javatpoint' #string str1  
str2 = ' how are you' #string str2  
print (str1[0:2]) #printing first two character using slice operator  
print (str1[4]) #printing 4th character of the string  
print (str1*2) #printing the string twice  
print (str1 + str2) #printing the concatenation of str1 and str2  

输出:

he
o
hello javatpointhello javatpoint
hello javatpoint how are you

List

Python列表类似于C中的数组。但是,列表可以包含不同类型的数据。列表中存储的项目用逗号(,)分隔,并括在方括号[]中。

我们可以使用slice [:]运算符来访问列表中的数据。串联运算符(+)和重复运算符(*)与列表一起使用,与它们与字符串。

考虑以下示例。

list1  = [1, "hi", "Python", 2]  
#Checking type of given list
print(type(list1))

#Printing the list1
print (list1)

# List slicing
print (list1[3:])

# List slicing
print (list1[0:2]) 

# List Concatenation using + operator
print (list1 + list1)

# List repetation using * operator
print (list1 * 3)

输出:

[1, 'hi', 'Python', 2]
[2]
[1, 'hi']
[1, 'hi', 'Python', 2, 1, 'hi', 'Python', 2]
[1, 'hi', 'Python', 2, 1, 'hi', 'Python', 2, 1, 'hi', 'Python', 2]

tuple

元组在很多方面都类似于列表。像列表一样,元组也包含不同数据类型的项的集合。元组的项目用逗号(,)分隔并括在括号()中。

元组是只读的数据结构,因为我们无法修改元组项目的大小和值。

让我们看一个简单的元组示例。

tup  = ("hi", "Python", 2)  
# Checking type of tup
print (type(tup))  

#Printing the tuple
print (tup)

# Tuple slicing
print (tup[1:])  
print (tup[0:1])  

# Tuple concatenation using + operator
print (tup + tup)  

# Tuple repatation using * operator
print (tup * 3)   

# Adding value to tup. It will throw an error.
t[2] = "hi"

输出:


('hi', 'Python', 2)
('Python', 2)
('hi',)
('hi', 'Python', 2, 'hi', 'Python', 2)
('hi', 'Python', 2, 'hi', 'Python', 2, 'hi', 'Python', 2)

Traceback (most recent call last):
  File "main.py", line 14, in 
    t[2] = "hi";
TypeError: 'tuple' object does not support item assignment

Dict

字典是一组键值对的无序集合。它就像一个关联数组或哈希表,其中每个键都存储一个特定值。键可以保存任何原始数据类型,而值是一个任意的Python对象。

字典中的项目用逗号(,)分隔,并括在大括号{}中。

考虑以下示例。

d = {1:'Jimmy', 2:'Alex', 3:'john', 4:'mike'}   

# Printing dictionary
print (d)

# Accesing value using keys
print("1st name is "+d[1]) 
print("2nd name is "+ d[4])  

print (d.keys())  
print (d.values())  

输出:

1st name is Jimmy
2nd name is mike
{1: 'Jimmy', 2: 'Alex', 3: 'john', 4: 'mike'}
dict_keys([1, 2, 3, 4])
dict_values(['Jimmy', 'Alex', 'john', 'mike'])

boolean

布尔类型提供两个内置值True和False。这些值用于确定给定语句为true或false。它由bool类表示。 True可以由任何非零值或’T’表示,而false可以由0或’F’表示。考虑以下示例。

# Python program to check the boolean type
print(type(True))
print(type(False))
print(false)

输出:



NameError: name 'false' is not defined

Set

Python Set是数据类型的无序集合。它是可迭代的,可变的(创建后可以修改),并且具有独特的元素。在设置中,元素的顺序未定义;它可能会返回元素的更改顺序。该集合是通过使用内置函数set()创建的,或者一系列元素在花括号中传递并用逗号分隔。它可以包含各种类型的值。考虑以下示例。

# Creating Empty set
set1 = set()

set2 = {'James', 2, 3,'Python'}

#Printing Set value
print(set2)

# Adding element to the set

set2.add(10)
print(set2)

#Removing element from the set
set2.remove(2)
print(set2)

输出:

{3, 'Python', 'James', 2}
{'Python', 'James', 3, 2, 10}
{'Python', 'James', 3, 10}