Python中输入数字相加变成字符串拼接,如何正确求和?
问题分析与修复方案
错误原因
Python的input()函数返回的是字符串类型,所以你代码里的a + b执行的是字符串拼接操作,而非数值加法,这就是输入5和10后得到510的原因。
修复方法
需要将用户输入的字符串转换为数值类型(整数int或浮点数float),再执行加法操作,以下是几种实现方式:
方式1:直接转换输入类型
适合只需要整数或固定数值类型的场景:
a = int(input("Enter first number: ")) b = int(input("Enter second number: ")) print("The sum is:", a + b)
如果需要支持小数运算,把int换成float即可:
a = float(input("Enter first number: ")) b = float(input("Enter second number: ")) print("The sum is:", a + b)
方式2:先获取输入再转换(更灵活)
先保存原始输入字符串,再转换为数值类型,方便后续扩展处理:
a_str = input("Enter first number: ") b_str = input("Enter second number: ") a = float(a_str) b = float(b_str) print("The sum is:", a + b)
补充:添加异常处理(可选)
如果需要避免用户输入非数字导致程序崩溃,可以加入异常捕获:
try: a = float(input("Enter first number: ")) b = float(input("Enter second number: ")) print("The sum is:", a + b) except ValueError: print("请输入有效的数字!")
内容的提问来源于stack exchange,提问作者Apurva Bhoyar
相关产品推荐
相关产品推荐

