Python文本计算器开发问题:字符串转整数失败该如何解决?
问题解决:文本式计算器的字符串转数值运算问题
你的代码核心问题是**input()返回的是字符串类型**:直接用字符串做减法、除法、乘法会触发类型错误,加法则会变成字符串拼接(比如输入"2"+"3"会输出"23"而非5)。必须把输入的字符串转换为数值类型(整数或浮点数)后再执行算术运算。
修正后的代码
import math # frstn 代表第一个数字 # scndn 代表第二个数字 op = input("请输入运算符: + - / *: ") if op == "+": frstn = float(input("请输入第一个数字: ")) scndn = float(input("请输入第二个数字: ")) print(frstn + scndn) elif op == "-": frstn = float(input("请输入第一个数字: ")) scndn = float(input("请输入第二个数字: ")) print(frstn - scndn) elif op == "/": frstn = float(input("请输入第一个数字: ")) scndn = float(input("请输入第二个数字: ")) # 新增除数为0的错误处理 if scndn == 0: print("错误:除数不能为0") else: print(frstn / scndn) elif op == "*": frstn = float(input("请输入第一个数字: ")) scndn = float(input("请输入第二个数字: ")) print(frstn * scndn) else: print("无效运算符,请重启计算器。")
关键说明
- 用
float()而非int()是为了支持小数运算,如果只需要整数计算,替换成int()即可。 - 除法模块增加了除数为0的判断,避免程序运行时崩溃。
- 所有输入的数字必须转换为数值类型,才能正确执行加减乘除的算术逻辑。
内容的提问来源于stack exchange,提问作者Dogo777
相关产品推荐
相关产品推荐

