gpt4 book ai didi

python - 为什么变量不循环上传?

转载 作者:太空宇宙 更新时间:2023-11-03 15:08:46 25 4
gpt4 key购买 nike

我想制作一个程序来跟踪我有多少个苹果,并在我吃一个苹果时拿走一个苹果。

apples=3

while apples>0:
try:
print("You have {} a left".format(apples))

Action=input('Action:')
if action == "eat":
apples=apples-1
else:
print("invalid")
except:
pass

但是,当我将 eat 作为用户输入写入时,此代码不会更新苹果。

You have 3 apples left
Action:eat
You have 3 apples left
Action:eat
You have 3 apples left
Action:eat
You have 3 apples left
Action:eat
You have 3 apples left

最佳答案

问题是您定义了 Action 但尝试使用 action (大小写很重要!)。如果没有 try except,您可能已经注意到了这一点。这就是您(几乎)永远不要使用裸露的 except 的原因之一。始终捕获特定异常,例如 ValueError 等。

如果我删除这些并使用此代码,则会显示异常:

apples=3

while apples>0:
print("You have {} a left".format(apples))

Action=input('Action:')
if action == "eat":
apples=apples-1
else:
print("invalid")


# ...

---------------------------------------------------------------------------
NameError Traceback (most recent call last)
4 print("You have {} a left".format(apples))
5 Action=input('Action:')
----> 6 if action == "eat":
7 apples=apples-1
8 else:

NameError: name 'action' is not defined

您可能还需要剥离输入,因为它有时包含尾随换行符:

apples=3

while apples > 0:
print("You have {} apples left".format(apples))
action=input('Action:')
if action.strip() == "eat": # here is the strip that removes all leading and trailing whitespaces
apples=apples-1
else:
print("invalid")

关于python - 为什么变量不循环上传?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44422129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com