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

如何用Python构建计算器?求排查代码语法错误

解决Python四则计算器的语法错误并优化实现

先说说你遇到的语法错误根源

你代码里的if c == +:这一行出错,核心原因是没有把运算符用引号包裹。+在Python里是运算符,而用户输入的c是字符串类型,所以比较的时候必须把运算符写成字符串形式(比如c == "+"),不然Python会把+当成一元运算符,直接触发语法错误。

另外还有个隐藏问题:你写的print("a"+"+"+"="+d )会报错,因为d是浮点数,不能直接和字符串用+拼接(类型不匹配),得把d转成字符串,或者用更方便的格式化写法。

修正后的基础可用代码

a = float(input('lotfan adade khod ra vared konid:'))
b = float(input('lotfan adade badi khod ra vared konid:'))
c = input('lotfan amale morde nazar khod ra vared konid (+, -, *, /):')

if c == "+":
    d = a + b
    print(f"{a} + {b} = {d}")
elif c == "-":
    d = a - b
    print(f"{a} - {b} = {d}")
elif c == "*":
    d = a * b
    print(f"{a} * {b} = {d}")
elif c == "/":
    if b == 0:
        print("Error: Adad ra ba sefr taghsim nemishavad!")
    else:
        d = a / b
        print(f"{a} / {b} = {d}")
else:
    print("Amal vared shode eshtebah ast! Lotfan az +, -, *, / estefade konid.")

我给你加了这些实用优化

  1. 用f-string格式化输出:比字符串拼接简洁太多,还自动处理数值转字符串的问题,再也不会出现类型不匹配的错误。
  2. 防除以0崩溃:判断除数是否为0,给用户明确的错误提示,避免程序直接报错退出。
  3. 无效运算符提示:当用户输入的不是四则运算符时,告诉用户正确的输入选项。
  4. 优化输入提示:在运算符输入时列出可选的符号,引导用户正确输入。

进阶优化建议(可选)

如果想让计算器更健壮,可以加输入验证,防止用户输入非数字内容导致崩溃,比如写个小函数来获取合法的数字:

def get_valid_number(prompt):
    while True:
        try:
            num = float(input(prompt))
            return num
        except ValueError:
            print("Lotfan adade sahih vared konid!")

# 然后用这个函数获取输入
a = get_valid_number('lotfan adade khod ra vared konid:')
b = get_valid_number('lotfan adade badi khod ra vared konid:')

还可以加连续运算的功能,让用户可以选择是否继续计算,不用每次重新运行程序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 14:37:33