制作基础计算器时出现string is not int错误,求排查原因
基础计算器出现"string is not int"错误的原因及修复方案
核心错误原因
你在print语句里直接用+拼接字符串和整数,Python不允许不同数据类型做这种操作。比如"Answer= " + 10会报错——左边是字符串,右边是整数,两者无法直接相加。
其他问题
- 拼写错误:
elif operatipn==4:里的operatipn应为operation,会导致选择除法时直接进入else分支。 - 定义了加减乘除函数但未调用,直接在print里计算,等于白写了函数逻辑。
- 除法结果转
int会丢失小数部分,比如5/2会被强制转成2,不符合计算器的实际需求。
修正后的代码
def Add(number1, number2): return number1 + number2 def Minus(number1, number2): return number1 - number2 def Multiply(number1, number2): return number1 * number2 def Divide(number1, number2): return number1 / number2 print("Operation?") print("1: Add") print("2: Minus") print("3: Multiply") print("4: Divide") operation = int(input("Please select an operation...")) number1 = int(input("Enter Number1: ")) number2 = int(input("Enter Number2: ")) if operation == 1: result = Add(number1, number2) print(f"Answer= {result}") elif operation == 2: result = Minus(number1, number2) print(f"Answer= {result}") elif operation == 3: result = Multiply(number1, number2) print(f"Answer= {result}") elif operation == 4: result = Divide(number1, number2) print(f"Answer= {result}") else: print("You didn't choose a valid operation from the list")
修正说明
- 用f-string(
f"Answer= {result}")拼接字符串和数值,彻底避免类型错误。 - 修正了
operatipn的拼写错误,确保除法分支能正常触发。 - 调用了你定义的加减乘除函数,让代码逻辑更清晰。
- 除法结果保留小数,符合计算器的实际使用需求。
- 给输入提示加了冒号,提升用户操作体验。
内容的提问来源于stack exchange,提问作者user19313533
相关产品推荐
相关产品推荐

