提问人:Baziga 提问时间:10/15/2023 最后编辑:John KugelmanBaziga 更新时间:10/15/2023 访问量:47
为什么我的 eval 命令不显示任何输出?[复制]
Why is my eval command not showing any output? [duplicate]
问:
我定义了一个函数eval_loop在该函数中,我用命令提示用户,要求他计算表达式。我要评估的表达式是“2+2”。如果用户按 done 或 Done,while 循环将退出。为什么输入“2+2”时无法接收任何输出?为什么 eval 命令不显示任何输出?
def eval_loop ():
while True:
line=input("enter the expression you want to evaluate:")
if line == "done" or "Done":
break
else:
y=eval(line)
print(y)
print (done)
eval_loop()
答:
0赞
tdelaney
10/15/2023
#1
您有一个无法运行的错误。 和 因为 总是一样,你在做任何事情之前都跳出循环。eval
if line == "done" or "Done":
if (line == "done") or "Done"
"Done"
True
你可以把它改成,但我建议你规范化输入(把它改成一个通用形式)并捕捉更多“done”的拼写。if line == "done" or line == "Done"
(最后一次打印也是一个错误,因为该变量不存在。done
def eval_loop ():
while True:
line=input("enter the expression you want to evaluate:")
if line.lower() == "done":
break
else:
y=eval(line)
print(y)
print ("done")
eval_loop()
评论
0赞
Baziga
10/15/2023
完善。非常感谢你,但你能告诉我为什么我的最后一行,打印“完成”,是一个错误吗?我在那里用小写字母 d 写了“done”?
0赞
tdelaney
10/15/2023
您编写了不存在的变量名称。我以为你想要这个字符串,所以在我的代码中进行了更改。done
"done"
评论
eval
ast
ast.literal_eval