需求描述:
编写程序,从键盘录入两个整数,计算并输出它们的和。
初始代码与问题:
a = input("请输入一个加数:")
b = input("请输入另一个加数:")
print(a + b) # 预期是计算和,如输入10和20,期望输出30运行后输入10和20,输出结果为1020,而非预期的30。
问题原因:
- input() 函数获取的用户输入默认是字符串类型 (str)。
- 因此,a 和 b 存储的是字符串 '10' 和 '20'。
- 字符串使用 + 运算符时,执行的是连接(拼接)操作,而非数学加法。
验证类型:
print(type(a)) # 输出:<class 'str'>
print(type(b)) # 输出:<class 'str'>输出确认 a 和 b 都是 str 类型,解释了 + 为何是连接。
解决方案:类型转换
需要将输入的字符串转换为整数 (int) 类型才能进行数学运算。
方法一:输入后转换
a = input("请输入一个加数:")
a = int(a) # 将a转换为整数类型
b = input("请输入另一个加数:")
b = int(b) # 将b转换为整数类型
print(a + b) # 输出:30 (输入10和20)方法二:输入时立即转换 (更简洁)
a = int(input("请输入一个加数:")) # 将input结果直接转为int
b = int(input("请输入另一个加数:")) # 将input结果直接转为int
print(a + b) # 输出:30 (输入10和20)核心要点总结:
- input() 返回的是字符串 (str)。
- 字符串 + 是拼接操作。
- 进行数值计算前,必须使用 int() (或 float()) 将字符串转换为数值类型。
- 转换时机灵活:可在输入后单独转换,也可在输入语句中直接转换。后者代码更简洁。
