Python编程小练习:解决input输入相加的“1020”问题

需求描述:
编写程序,从键盘录入两个整数,计算并输出它们的和。

初始代码与问题:

a = input("请输入一个加数:")
b = input("请输入另一个加数:")
print(a + b)  # 预期是计算和,如输入10和20,期望输出30

运行后输入1020,输出结果为1020,而非预期的30

问题原因:

  1. input() 函数获取的用户输入默认是字符串类型 (str)
  2. 因此,ab 存储的是字符串 '10''20'
  3. 字符串使用 + 运算符时,执行的是连接(拼接)操作,而非数学加法。

验证类型:

print(type(a))  # 输出:<class 'str'>
print(type(b))  # 输出:<class 'str'>

输出确认 ab 都是 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()) 将字符串转换为数值类型。
  • 转换时机灵活:可在输入后单独转换,也可在输入语句中直接转换。后者代码更简洁。
原文链接:,转发请注明来源!