Python作为一门易学且功能强大的编程语言,吸引了众多编程爱好者。在学习Python的过程中,了解其数据类型是十分重要的。这里将向大家介绍Python中的五种常见数据类型,分别是:整数、浮点数、字符串、列表和字典,并且将通过生动的例子来展示如何使用这些数据类型。
文章目录
- 整数(int)
- 整数的进制
- float 浮点型
- 特殊的浮点数
- 复数型
- 字符型
- 字符串中的转义序列
- 对字符应用特殊含义
- 原始字符串
- 三引号字符串
- 布尔类型
整数(int)
在 Python 3 中,整数值的长度是动态的,可以根据需要而变化。这意味着你可以在程序中使用非常大的整数值,而不需要担心固定的长度限制。Python 3 中的整数类型是无限精度的,它可以表示任意大的整数。这与其他编程语言不同,其他编程语言通常有固定的整数长度限制(例如32位或64位)。
在 Python 3 中,整数的长度仅受系统内存的限制。只要你的系统有足够的内存来存储整数值就可以使用任意长度的整数。
print(123 + 1)
124
在Python中,如果一个数字没有任何前缀,它将被解释为十进制数。这意味着你可以直接在代码中使用不带前缀的数字,它们将被视为十进制值。
x = 10
print(x) # 输出:10
y = 3.14
print(y) # 输出:3.14
z = 100_000
print(z) # 输出:100000
整数的进制
可以使用以下字符串来标识其他进制的数:
- 二进制:以
0b
或者0B
开头,例如"0b1010"表示十进制的10。 - 八进制:以
0o
或者0O
开头,例如"0o12"表示十进制的10。 - 十六进制:以
0x
或者0X
开头,例如"0xA"表示十进制的10。
这些前缀字符串可以在整数值之前添加,以表示不同的进制。Python中不论整数是几进制表示的,其数据类型都是int。
type(10)
<class 'int'>
type(0o10)
<class 'int'>
type(0x10)
<class 'int'>
type(0b10)
<class 'int'>
float 浮点型
Python中的浮点数可以使用小数点来指定,也可以使用科学记数法表示。科学记数法由基数(通常为10)乘以指数的形式来表示。在Python中,可以使用字符’e’或’E’来表示科学记数法。
num1 = 3.14 # 使用小数点表示浮点数
num2 = 2e3 # 2乘以10的3次方,即2000.0
num3 = -1.5E-2 # -1.5乘以10的-2次方,即-0.015
print(num1) # 输出: 3.14
print(num2) # 输出: 2000.0
print(num3) # 输出: -0.015
特殊的浮点数
根据 IEEE 754 标准,几乎所有平台都将 Python 中的浮点数表示为 64 位双精度值。
浮点数的最大值约为 1.8 × 1 0 308 1.8 \times 10^{308} 1.8×10308。
print(1.79e308)
1.79e+308
# 超出范围指向无穷大
print(1.8e308)
inf
浮点数的最小值约为 5.0 × 1 0 − 324 5.0 \times 10^{-324} 5.0×10−324。
print(5e-324)
5e-324
print(1e-325)
0.0
浮点数在内部以二进制(base-2)分数的形式表示,大多数十进制分数无法完全准确地表示为二进制分数,因此浮点数的内部表示是实际值的近似值。由于实际值与表示值之间的差异非常小,通常不会引起 BUG。
复数型
复数型(complex)表示复数,即有实部和虚部的数字。复数的表示方法是:a + bj
,其中a
是实部,b
是虚部,j
表示虚数单位。复数在科学计算、信号处理等领域有广泛应用。
g = 3 + 4j
h = -2 - 3J
计算两个复数的和。
x = 3 + 4j
y = 1 - 2j
z = x + y
print("复数和:", z)
字符型
Python使用字符串(str)来表示由字符数据组成的序列。字符串可以使用单引号或双引号进行分隔。
print("name 張郃 is a string.")
name 張郃 is a string.
type("name 張郃 is a string.")
<class 'str'>
print('name 曹操 is too.')
name 曹操 is too.
print(type('name 曹操 is too.'))
<class 'str'>
字符串也可以为空。
print('')
在字符串中包含与分隔符相同的引号字符时,最简单的方法是使用另一种类型的引号进行分隔。如果字符串需要包含单引号,则使用双引号进行分隔,反之亦然。
# 错误的方法
print('私は趙雲('ちょううん)です')
SyntaxError: invalid syntax
print('私は趙雲("ちょううん")です')
'私は趙雲("ちょううん")です'
print("私は趙雲('ちょううん')です")
"私は趙雲('ちょううん')です"
字符串中的转义序列
字符串中可以使用转义序列来表示特殊字符或字符序列。抑制某些字符通常在字符串中具有特殊意义的解释。
转义字符 | 解释说明 | 可视化结果 |
---|---|---|
’ | 用单引号开始分隔符终止字符串 | 文字单引号 ( ') 字符 |
" | 用双引号开始分隔符终止字符串 | 文字双引号 ( ") 字符 |
<newline> | 终止输入线 | 换行被忽略 |
\ | 引入转义序列 | 文字反斜杠 ( \ ) 字符 |
# 错误的方法
print('私は趙雲('ちょううん)です')
SyntaxError: invalid syntax
# 正确的方法
print('私は趙雲(\'ちょううん)です')
私は趙雲('ちょううん)です
print('私は趙雲(\"ちょううん)です')
私は趙雲("ちょううん)です
print('私は趙雲(\\ちょううん)です')
私は趙雲(\ちょううん)です
# 换行符终止行输入的错误
print('私は
SyntaxError: EOL while scanning string literal
# 换行符正确的用法
print('私は趙雲(\
ちょううん)です')
私は趙雲(ちょううん)です
对字符应用特殊含义
在Python中,可以使用转义序列\t来表示制表符。
转义字符 | 解释说明 |
---|---|
\a | ASCII 响铃 (BEL) 字符 |
\b | ASCII 退格 (BS) 字符 |
\f | ASCII 换页符 (FF) 字符 |
\n | ASCII 换行 (LF) 字符 |
\N{} | Unicode 数据库中给定的字符 |
\r | ASCII 回车 (CR) 字符 |
\t | ASCII 水平制表符 (TAB) 字符 |
\uxxxx | 具有 16 位十六进制值的 Unicode 字符xxxx |
\Uxxxxxxxx | 具有 32 位十六进制值的 Unicode 字符xxxxxxxx |
\v | ASCII 垂直制表符 (VT) 字符 |
\ooo | 八进制字符ooo |
\xhh | 具有十六进制值的字符hh |
以下是创建包含制表符的字符串的示例代码:
print('私は趙雲\tです')
私は趙雲 です
原始字符串
在处理字符串时,如果想保留转义序列并且反斜杠字符不被解释,请在字符串前加上 r 或 R。这样可以确保原始字符串文字中的转义序列保持不变。
print('趙雲\n字:子龍')
趙雲
字:子龍
print(r'趙雲\n字:子龍')
趙雲\n字:子龍
print('趙雲\\字:子龍')
趙雲\字:子龍
print(R'趙雲\\字:子龍')
趙雲\\字:子龍
三引号字符串
在Python中,还有一种使用三引号(单引号或双引号)来分隔字符串的方法。这种方法可以包含单引号、双引号和换行符,而无需对它们进行转义。
print('''趙雲 "字:'子龍''')
趙雲 "字:'子龍
print("""趙雲
字:
子龍""")
趙雲
字:
子龍
布尔类型
布尔类型表示逻辑值,只有两个取值:True
和 False
。布尔类型通常用于条件判断、循环控制等场景。以下是一些布尔类型的例子:
l = True
m = False
print(type(True))
<class 'bool'>
print(type(False))
<class 'bool'>
判断一个数是否为偶数。
num = 6
is_even = (num % 2 == 0)
print("是否为偶数:", is_even)