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

Python计算器开发遇无法向字典添加Test键值对问题求助

问题排查与修正

你的代码存在两处直接导致字典赋值失败的问题,另有一处逻辑隐患,具体如下:

  • 语法错误:计算awnser的行多写了一个左方括号[,会直接触发Python语法报错终止程序,无法执行到后续字典赋值的逻辑。正确写法为 awnser = question[0] * question[2]
  • 逻辑判断写法错误:if '*' or 'x' in question: 的判断逻辑不符合预期,Python中该表达式会被解析为if ('*') or ('x' in question),非空字符串'*'的布尔值永远为True,无论输入运算符是什么都会进入该分支。如果要判断列表中是否存在*或x,正确写法为 if '*' in question or 'x' in question:
  • 逻辑隐患:每次循环没有清空question列表,旧的输入内容会一直残留,导致后续判断逻辑永远命中之前输入过的运算符,建议每次循环开始时执行question.clear()清空列表。

修正后完整代码

question = []
awnslog = {
  'None': 0
}

while True:
    # 每次循环清空列表,避免上次输入残留
    question.clear()
    Inp = int(input('>> '))
    Inp2 = str(input('>> '))
    Inp3 = int(input('>> '))
    question.insert(0, Inp3)
    question.insert(0, Inp2)
    question.insert(0, Inp)
    # 修正判断逻辑
    if '*' in question or 'x' in question:
        print('*')
        print(question[0]*question[2])
        # 修正语法错误,删除多余左方括号
        awnser = question[0] * question[2]
        awnslog['Test'] = awnser
        print(awnslog)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 03:45:00