3分钟快速学会Python变量与数据类型

247 阅读7分钟

人生苦短,Python当歌。
人生苦短,python是岸。

欢迎阅读本篇文章,本文将介绍Python的变量与数据类型。

一、变量

1.1 变量

在Python中,变量可以看作是一个标签,它指向一个存储在内存中的值。具体来说,我们可以使用等号(=)将一个值赋给一个变量,如下所示:

变量关系图.png

在上图中,我们将数字20赋值给了变量age。现在age就是一个整数型的变量,并且它的值为20。
age = 20
print(age) # 20

如果想将数字改成25并输出,则可以使用以下语句:

age = 25
print(age) # 25

二、数据类型

在计算机中,操作的对象是数据,那么,如何选择合适的容器来存放数据才不至于浪费空间?为了更充分地利用内存空间,可以为不同的数据指定不同的数据类型,那么,Python中内置了多种数据类型,每种数据类型都有不同的特点和用途。下面是Python支持的几种常见的数据类型:

数据类型.png

从上图中,我们知道,Python的数据类型分为数字类型(int 、float、complex、bool)、字符串类型、列表类型、元组类型、字典类型和集合类型。

2.1 整型

整型表示存储的数据是整数,比如1、2、-1、-2等等。在计算机语言中,整型数据可以用二进制、八进制、十进制或者十六进制形式并在前面加上“+”或“-”表示。如果用二进制表示,那么,数字前必须加上0b或者0B;如果用八进制表示,那么数字前必须加上0o或者0O;如果用十六进制表示,那么,数字前必须加上0x或者0X。具体示例如下:

a = 0b1010 #二进制数,等价于十进制数10
b = -0b1010 #二进制数,等价于十进制数-10
c = 10 #十进制数
d = -10 #十进制数-10
e = -0o12 #八进制数,等价于十进制数-10
f = -0XA #十六进制数,等价于十进制数-10

关于各进制的解析:

①二进制数是由0~1的序列组成的,每逢2进1位

②八进制数是由0~7的数字序列组成的,每逢8进1位

③十进制数是由0~9的数字序列组成的,每逢10进1位

④十六进制数是由09的数字和AF的字母组成序列,每逢16进1位

注意:整型数值有最大取值范围,其范围与具体平台的位数有关

2.2 浮点型

浮点型表示存储的数据是实数,比如π在Python中,浮点型数据默认有2种书写格式,具体示例如下:

Pai_1 = 0.314  #标准格式
Pai_2 = 31.4e-2 #科学记数法格式,等价于0.314
Pai_3 = 31.4E2 #科学记数法格式,等价于3140.0

在科学记数法格式中,E或e代表基础是10,其后面的数字表示指数,31.4e⁻²表示31.4×10⁻²,31.4E2表示31.4×10²

2.3 复数型

复数型表示数学中的复数。在 Python 中,复数(complex)是由实数和虚数构成的数,其中实数和虚数分别用浮点数表示。复数通常写成 a + bj 的形式,其中 a 为实部,b 为虚部,j 为虚数单位。我们可以直接使用内置类型 complex函数来创建一个复数。假设我们要创建一个实部为 1,虚部为 2 的复数:

z = complex(1, 2)
print(z)   # 输出:(1+2j)

也可以使用 j 后缀来表示一个纯虚数(实部为 0)。例如:

z = 3j
print(z)   # 输出:3j

对于一个复数 z,可以通过 z.real 和 z.imag 分别获取它的实部和虚部。例如:

z = complex(1, 2)
print(z.real)   # 输出:1.0
print(z.imag)   # 输出:2.0

还可以使用 Python 的内置函数 abs() 来获取一个复数的模或距离。例如:

z = complex(3, 4)
print(abs(z))   # 输出:5.0

Python 支持复数的基本运算,如加法、减法、乘法、除法和幂运算等。例如:

z1 = complex(1, 2)
z2 = complex(3, 4)

# 加法
print(z1 + z2)   # 输出:(4+6j)

# 减法
print(z1 - z2)   # 输出:(-2-2j)

# 乘法
print(z1 * z2)   # 输出:(-5+10j)

# 除法
print(z1 / z2)   # 输出:(0.44+0.08j)

# 幂运算
print(z1 ** 2)   # 输出:(-3+4j)

以上就是 Python 中复数的基本使用方法。需要注意的是,Python 中的 math 模块不支持复数,如果需要进行复数的科学计算,应当使用 Python 的内置模块 cmath。

2.4 布尔型

Python 中的布尔型(bool)用来表示真(True)或假(False)的值,主要用来比较和判断。在 Python 中,布尔型可以像其他数据类型一样进行运算和处理。如果需要将一个值转换为布尔型,可以使用 bool() 函数。常见的转换规则如下:
① 数字 0 转换为 False,非 0 数字转换为 True
② 空字符串 ('')、空列表 ([])、空元组 (())、空字典 ({})、空集合 (set()) 等转换为 False
③ 非空字符串、列表、元组、字典、集合等转换为 True
这里简单列一些Python 布尔型的操作:

a = True
b = False

# 输出变量 a 和 b 的值及类型
print(a)       # 输出:True
print(b)       # 输出:False
print(type(a)) # 输出:<class 'bool'>
print(type(b)) # 输出:<class 'bool'>

# 布尔型可以进行与、或、非三种逻辑运算
print(a and b) # 输出:False
print(a or b)  # 输出:True
print(not a)   # 输出:False

# 可以将其他类型的值转换为布尔型
print(bool(0))     # 输出:False
print(bool(1))     # 输出:True
print(bool(''))    # 输出:False
print(bool('abc')) # 输出:True

三、数据类型检测

在Python中,数据类型是由存储的数据决定的,为了检测变量所引用的数据是否符合期望的数据类型,可以使用 type() 函数来检测一个变量的数据类型。具体示例如下:

x = 5
y = 'hello'
z = [1, 2, 3]

print(type(x)) # 输出:<class 'int'>
print(type(y)) # 输出:<class 'str'>
print(type(z)) # 输出:<class 'list'>

除了 type() 函数外,还可以使用 isinstance() 函数来判断一个对象是否属于某个特定的类(或子类)。具体示例如下:

x = 5

if isinstance(x, int):
    print('x is an integer')
else:
    print('x is not an integer')

四、数据类型转换

在 Python 中,可以使用一些内置函数来进行不同数据类型之间的转换。以下是一些常用的数据类型转换函数:
① int(x):将 x 转换为整数型。如果 x 是浮点数,则会将小数部分舍去。
② float(x):将 x 转换为浮点数型。
③ str(x):将 x 转换为字符串型。
④ bool(x):将 x 转换为布尔型。如果 x 为 0、空字符串、空列表、空元组、空字典、空集合等,则返回 False;否则返回 True。
⑥list(x):将 x 转换为列表型。
⑦ tuple(x):将 x 转换为元组型。
⑧ set(x):将 x 转换为集合型。

我们来看一下具体示例:

x = 5.7
y = '10'

print(int(x))    # 输出:5
print(float(y))  # 输出:10.0
print(str(x))    # 输出:5.7
print(bool(0))   # 输出:False
print(list(y))   # 输出:['1', '0']
print(tuple(y))  # 输出:('1', '0')
print(set(y))    # 输出:{'1', '0'}

需要注意的是,在进行数据类型转换时,要考虑到可能会出现的错误。例如,将一个非数字型的字符串转换为整数型时,就会报错。可以使用 try-except 语句对可能出现的错误进行捕获处理。
此外,不同的数据类型之间也可以进行运算和拼接,但需要考虑到数据类型的兼容性。例如,在字符串和数字之间进行加法运算时,需要先将数字转换为字符串,才能进行拼接。

★~☆·☆。~*∴*~★*∴ *·∴~*★*∴*★~☆·☆。~*∴*~★

各路掘友大家好,小女名曰:王斯言,一名存在于四海八荒之内,有些不着四六的女子。昨日夜观星象,见紫微星闪烁,便耗精元推算命格,得之:有贵客光临,寻即于此,收藏、点赞、评论、转发一气呵成。此乃大吉之兆!容小女先行谢礼,待补齐精元,再奋笔疾书以文报之~