什么是 str 和 int?
在 Python 中,str(字符串)用于表示文本数据,而 int(整数)用于表示整数值。
它们是两种完全不同的数据类型,具有不同的属性和用途。
基本示例
# 字符串 str
name = "123"
print(type(name)) # <class 'str'>
# 整数 int
number = 123
print(type(number)) # <class 'int'>
主要区别对比
| 特性 | str(字符串) | int(整数) |
|---|---|---|
| 用途 | 存储文本,如名字、句子等 | 存储数学整数,用于计算 |
| 定义方式 | 用引号包围:'abc' 或 "123" | 直接写数字:123、-45 等 |
| 支持的操作 | 拼接(+)、重复(*)、索引、切片等 | 加减乘除、取模、幂运算等数学操作 |
| 能否参与数学运算 | 不能(除非先转换为数字) | 可以 |
| 内存占用 | 通常更大(每个字符占字节) | 相对较小(固定大小或按需扩展) |
类型转换
在实际开发中,经常需要在 str 和 int 之间转换:
# str → int
num_str = "42"
num_int = int(num_str)
print(num_int + 8) # 输出 50
# int → str
age = 25
age_str = str(age)
print("我今年" + age_str + "岁") # 输出:我今年25岁
注意:如果字符串不是有效数字(如 "abc"),调用 int() 会抛出 ValueError。
常见错误示例
# 错误:试图将字符串与整数相加
result = "10" + 5 # TypeError!
# 正确做法:
result = int("10") + 5 # 15
# 或
result = "10" + str(5) # "105"
小结
str是文本,int是数字。- 两者不能直接混合运算,需显式转换。
- 使用
type()可检查变量类型。 - 理解类型差异是编写健壮 Python 代码的基础。