Python 数据类型


2021年8月23日, Learn eTutorial
2513

本教程的主要目标是阐明 Python 编程语言中数据类型及其分类的概念。

Python 数据类型

Python 中的数据类型可以定义为变量或对象可以保存并根据数据执行操作的一种数据。它有助于确定程序员打算解释的数据的类型和大小。

Python 作为一种可解释的编程语言,会隐式地为变量分配数据类型。无需显式声明。根据数据类型分配内存,这意味着数据的空间及其操作所需的空间会在内存中动态分配。

示例:定义各种类型的数据类型

age = 17  #age is a variable of datatype  number
first_name = ‘Robert’ #first_name is a variable of datatype string
X = 21.5   #X is a variable of datatype float 

数据类型分类

在 Python 编程语言中,数据类型大致分为 7 种内置类型,即数字、文本序列、序列、映射、集合、布尔和二进制序列。每种类型又根据其独有特征进一步细分为基本数据类型。

Command Prompt

Python 中的数字数据类型

在 Python 中,当变量被赋予一个数字值时,它就属于 Python 数字数据类型。数字数据类型包括整数值、浮点数值和复数类型值,具体如下:

Int 数据类型

 Int 是 Python 中的一种数字数据类型,包括正数、负数和零。它不包含小数部分。

Float 数据类型

 Float,也称为浮点数,包含带符号的分数。

Complex 数据类型

复数是由实部和虚部组成的数,形式为 a+ib,其中 a 和 b 是实数,b 与虚数单位 i 相关。

示例:基于数字的数据类型

i = 10  #i is a variable of type int  
print("i = ",i) 
f = 10.55 #f is a variable of type float  
print("f = ",f)
C =-5-6i #C is a variable of type Complex
print("C =",C) 

输出

i = 10
f = 10.55 
C = -5-6i

Python 中的字符串数据类型

在 Python 编程语言中,字符串数据类型是一种基于文本序列的数据类型。字符串通常是 Unicode 字符的有限系列或序列,用双引号或单引号括起来。要表示多行字符串,我们可以使用'''或"""。

示例:Python 中的字符串数据类型

Str1 = ' First String '
Str2 = " Second String "
Str3 =    ' ' ' Multiple line …
 …String example ' ' ' 
print(str1)
print(str2)
print(str3) 

输出

First String
Second String
Mutliple line…
…String example

Python 中的列表数据类型

根据序列,Python 数据类型分为三种:

列表 (List)

列表可以定义为有序的、可变的(mutable)值集合。在 Python 中,列表中的值用逗号分隔,并用方括号[]括起来。

元组

Python 元组也是有序的值集合,但它们是不可变的(immutable)。在 Python 中,元组中的值用逗号分隔,并用圆括号()括起来。

范围 (Range)

 Python 的 range 类型用于表示固定范围的数字系列,并在 for 循环和 while 循环中用于指定固定的迭代次数。

示例:基于序列的数据类型

colorlist =  ['violet', 'yellow', 'blue', 'green', 'indigo']
colourtupe = ('violet', 'yellow', 'blue', 'green', 'indigo')

x=range(10)
y=list(range(10))

print( "List of colours :",colorlist)
print( "Tuple of colours :",colorlist)

print(x)
print('List values in range of 10 :',y) 

输出

List of colours : ['violet', 'yellow', 'blue', 'green', 'indigo']
Tuple of colours : ('violet', 'yellow', 'blue', 'green', 'indigo')
range(0, 10)
List values in range of 10 : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Python 中的集合数据类型

在 Python 编程语言中,集合实体是无序的、唯一的、可哈希(hashable)的实体集合。有两种内置的集合类型:

Set

Python 集合(Set)是一组不重复的项,它们既没有索引也没有顺序,并且是可变的。集合值是不可哈希的。Python 集合通常用花括号{}括起来,用逗号分隔。

Frozenset

Python Frozenset 包含一组独特的对象,这些对象是不可变的(immutable)和可哈希的。

示例:Python 中的集合数据类型

colorset = {'violet','indigo','blue','green','yellow'}
print("Set of colours are :",colorset)

flowerset =frozenset({'jasmine','marigold','sunflower'})
print("Frozen set of flowers are:",flowerset) 

输出

Set of colours are : {'violet', 'yellow', 'blue', 'green', 'indigo'}
Frozen set of flowers are:  frozenset({'jasmine', 'marigold', 'sunflower'})

Python 中的字典数据类型

在 Python 编程语言中,字典是键值对(Key and Values)的集合,它们是索引的、可变的但无序的。键值对Key: Values用花括号{}封装,可以是任何数据类型。值通过键来提取,反之则不然。

示例:Python 中的字典数据类型

D = {
"Flower":"Rose",
"Fruit":"Cherry",
"Age":20
}

A=D['Age']
F=D["Flower"]
 
print(D)
print("Age is ",A)
print("Flower is",F) 

输出

{'Flower': 'Rose', 'Fruit': 'Cherry', 'Age': 20}
Age is  20
Flower is Rose

Python 布尔数据类型

布尔数据类型是一种数据类型,它只能包含两个可能值之一:True (1) 或 False (0)。

在 Python 中,布尔数据类型使用 Python 关键字 True 或 False 来返回表达式的真值。

布尔值通常用于评估表达式。表达式可以是逻辑的、算术的等,这些内容将在后续教程中学习。

示例:Python 中的布尔数据类型

a = 100
b = 200

print(a > b)
print(a < b)
print(a == b)
print(a != b)

if a < b:
    print(a,'is less than', b)
else:
    print(a,' is greater than',b)

输出

False
True
False
True
100 is less than 200

Python 二进制序列数据类型

在 Python 编程语言中,二进制序列数据类型分为三种:

bytes

Bytes 主要是用于管理二进制数据的内置数据类型。bytes 实体是不可更改的单字节序列。

bytearray

bytearray 是另一种主要的内置数据类型,用于控制二进制数据。与 bytes 不同,bytearray 是可变的。

memoryview

memoryview 用于 Python 代码中,以获取特定对象的内部数据。它还通过缓冲区协议支持 bytes 和 bytearray。

a=b"Python"  #bytes datatype
x= bytes(10)  #bytes datatype 
y=bytearray(5)  #bytearray 
z=memoryview(bytes(10)) #memoryview 

print('a = ',a)
print('x = ',x)
print('y = ',y)
print('z = ',z)

输出

a =  b'Python'
x =  b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
y =  bytearray(b'\x00\x00\x00\x00\x00')
z =  memory at 0x034D8268

数据类型比较

下表显示了数据类型在各种因素下的常见因素和比较。

Comparison of Datatypes

从表中我们可以推断出以下几点:

  • 字符串、列表、元组和 range 等序列数据类型是支持索引和切片的有序数据类型。
  • 在序列数据类型中,只有列表是可变的。
  • 字符串、列表和元组允许重复值。
  • 集合是可变的,而 frozenset 是不可变的。
  • Bytes 和 bytearrays 支持顺序、索引和切片。唯一的区别是 bytes 是不可变的,而 bytearray 是可变的。

Python 中的 type() 函数

我们已经知道 Python 是一种高度基于类型的编程语言。每种数据都有自己的类型。为了检索数据类型,我们使用内置函数type( )。将单个参数传递给type(object)函数后,它将返回特定的对象类型。

type 函数的语法:type(object)


i = type(10)
print(i)   #returns  <class ‘int’>

f = type(10.55)
print(f)    #returns  <class ‘float’>

STR = type(‘Welcome’)
print(STR)  #returns  <class ‘str’>

List_ex =type [1,2,3,4,5,6]
print(List_ex)  #returns  <class ‘list’>

Set_ex =type({5,3,1,2})
Print(Set_ex)  #returns <class ‘set’>

D = {
“Flower” : ”Rose“
}
Print(type(D))  #returns <class ‘dict’>

 

输出


<class ‘int’>
<class ‘float’>
<class ‘str’>
<class ‘list’>
<class ‘set’>
<class ‘dict’>