数据类型

学习Python中基本的数据类型,包括整数、浮点数、字符串、布尔值和None

数据类型概述

在Python中,每个值都有一个数据类型。数据类型定义了值可以执行的操作以及如何存储在内存中。

Python基本数据类型

  • 整数 (int) - 表示整数,如1, 2, -5
  • 浮点数 (float) - 表示带小数点的数字,如3.14, -0.5
  • 字符串 (str) - 表示文本,用单引号或双引号括起来
  • 布尔值 (bool) - 表示真或假,值为True或False
  • None - 表示空值或缺失值

整数 (int)

整数用于表示整数数值,可以是正数、负数或零,没有小数点。

示例

10 # 正数
-5 # 负数
0 # 零
1000000 # 大整数
1_000_000 # 用下划线分隔的大整数(Python 3.6+)

整数运算

整数支持常见的数学运算,如加法、减法、乘法、除法等。

5 + 3 # 加法,结果:8
5 - 3 # 减法,结果:2
5 * 3 # 乘法,结果:15
5 / 3 # 除法,结果:1.6666666666666667(浮点数)
5 // 3 # 整除,结果:1(整数)
5 % 3 # 取余,结果:2
5 ** 3 # 幂运算,结果:125

浮点数 (float)

浮点数用于表示带有小数点的数字,也可以用科学计数法表示。

示例

3.14 # 标准浮点数
-0.5 # 负浮点数
2.0 # 整数形式的浮点数
1.23e6 # 科学计数法,表示1.23 × 10^6 = 1230000.0
5e-3 # 科学计数法,表示5 × 10^-3 = 0.005

浮点数运算

浮点数支持与整数相同的数学运算,但需要注意浮点数精度问题。

0.1 + 0.2 # 结果:0.30000000000000004(浮点数精度问题)
1.5 * 2.5 # 结果:3.75
5.0 / 2.0 # 结果:2.5

浮点数精度注意事项

由于计算机内部表示浮点数的方式,某些十进制小数无法精确表示为二进制浮点数,导致精度问题。 在需要高精度计算的场景中(如金融计算),建议使用decimal模块。

字符串 (str)

字符串用于表示文本数据,可以使用单引号、双引号或三引号括起来。

创建字符串

'Hello, World!' # 单引号
"你好,世界!" # 双引号
'''多行字符串
可以跨越多行
''' # 三引号(单引号)
"""另一个多行字符串
同样可以跨越多行
""" # 三引号(双引号)

字符串操作

字符串支持多种操作,如拼接、重复、索引等。

# 字符串拼接
"Hello" + " " + "World" # 结果:"Hello World"
# 字符串重复
"Python" * 3 # 结果:"PythonPythonPython"
# 字符串索引(从0开始)
s = "Hello"
s[0] # 结果:'H'
s[1] # 结果:'e'
s[-1] # 结果:'o'(负数索引从末尾开始)
# 字符串切片
s[1:3] # 结果:'el'(从索引1到3-1)
s[:3] # 结果:'Hel'(从开始到索引3-1)
s[2:] # 结果:'llo'(从索引2到结束)

字符串方法

字符串有许多内置方法,可以用于处理和操作字符串。

s = "Hello, World!"
s.upper() # 转换为大写:"HELLO, WORLD!"
s.lower() # 转换为小写:"hello, world!"
s.replace("World", "Python") # 替换子字符串:"Hello, Python!"
s.split(",") # 分割字符串:['Hello', ' World!']
s.strip() # 去除首尾空格:"Hello, World!"
"123".isdigit() # 判断是否全是数字:True

布尔值 (bool)

布尔值表示真或假,只有两个可能的值:True和False。布尔值常用于条件判断和逻辑运算。

示例

True # 真
False # 假
5 > 3 # 比较运算,结果:True
5 < 3 # 比较运算,结果:False
"apple" == "apple" # 相等比较,结果:True
"apple" != "banana" # 不等比较,结果:True

布尔运算

布尔值支持三种基本逻辑运算:与(and)、或(or)和非(not)。

True and True # 结果:True
True and False # 结果:False
False and False # 结果:False
True or True # 结果:True
True or False # 结果:True
False or False # 结果:False
not True # 结果:False
not False # 结果:True

None

None是Python中的一个特殊值,表示空值或缺失值。它是NoneType类型的唯一实例。

示例

None # None值
x = None # 将变量赋值为None
type(x) # 结果:NoneType
x == None # 结果:True

常见用途

  • 作为函数的默认返回值
  • 初始化变量,稍后再赋值
  • 表示缺少某个值
# 示例:函数没有返回值时默认返回None
def print_hello():
    print("Hello")
result = print_hello()
print(result) # 结果:None

type()函数

type()是Python的内置函数,用于返回一个对象的类型。这在调试和类型检查时非常有用。

示例

type(10) # 结果:
type(3.14) # 结果:
type("Hello") # 结果:
type(True) # 结果:
type(None) # 结果:

使用type()进行类型检查

x = 42
if type(x) == int:
print("x是整数")
else:
print("x不是整数")

类型转换

在Python中,可以使用内置函数将一种数据类型转换为另一种数据类型。这称为类型转换或类型转换。

常用的类型转换函数

  • int(x) - 将x转换为整数
  • float(x) - 将x转换为浮点数
  • str(x) - 将x转换为字符串
  • bool(x) - 将x转换为布尔值

示例

# 转换为整数
int(3.14) # 结果:3(直接截断小数部分)
int("123") # 结果:123
# 转换为浮点数
float(5) # 结果:5.0
float("3.14") # 结果:3.14
# 转换为字符串
str(100) # 结果:"100"
str(3.14) # 结果:"3.14"
str(True) # 结果:"True"
# 转换为布尔值
bool(0) # 结果:False
bool(1) # 结果:True
bool("") # 结果:False(空字符串)
bool("hello") # 结果:True
bool(None) # 结果:False

注意事项

某些类型转换可能会导致数据丢失或错误。例如,将字符串"hello"转换为整数会引发ValueError。 在进行类型转换时,应确保转换是合理的。

作业

完成以下作业,巩固所学的数据类型知识:

作业1:数据类型识别

对于以下值,确定它们的数据类型,并使用type()函数验证:

42
3.1415
"Hello, Python!"
False
0
""
None
"3.14"

作业2:类型转换

编写代码完成以下类型转换,并打印结果:

  1. 将字符串"12345"转换为整数
  2. 将整数5678转换为字符串
  3. 将字符串"3.14"转换为浮点数
  4. 将浮点数9.876转换为整数
  5. 将整数0转换为布尔值
  6. 将空字符串转换为布尔值
  7. 将布尔值True转换为整数

作业3:结合热点

最近,生成式AI如ChatGPT、Midjourney等非常流行。请编写一个程序, 使用不同的数据类型来表示关于生成式AI的一些信息。例如:

  • 模型名称(字符串)
  • 发布年份(整数)
  • 参数量(整数或浮点数)
  • 是否开源(布尔值)
  • 备注信息(字符串)

然后将这些信息组合成一个完整的描述并打印出来。