You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

制作基础计算器时出现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")

修正说明

  1. 用f-string(f"Answer= {result}")拼接字符串和数值,彻底避免类型错误。
  2. 修正了operatipn的拼写错误,确保除法分支能正常触发。
  3. 调用了你定义的加减乘除函数,让代码逻辑更清晰。
  4. 除法结果保留小数,符合计算器的实际使用需求。
  5. 给输入提示加了冒号,提升用户操作体验。

内容的提问来源于stack exchange,提问作者user19313533

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 09:55:20