gpt4 book ai didi

python - 无法跳出 while 循环

转载 作者:太空宇宙 更新时间:2023-11-04 10:44:30 25 4
gpt4 key购买 nike

我正在写一个糟糕的基于文本的冒险,我想不出如何打破这个循环。我会尝试在这里发布相关内容。如果我的评论没有充分解释我正在尝试做的事情,请告诉我。

chained = 1
finished = 0

# home() and club() act as rooms in the game
def home():
while chained == 1:
# there's a way to unchain yourself that works
chained = 0
while chained == 0:
print 'your are in the room'
input = raw_input('> ')
if 'exit' in input or 'leave' in input or 'club' in input:
current_room = 'club'
break

def club():
print "this works"

# These sort of move you around the rooms.
# current_room keeps track of what room you're in
current_room = 'home'
while finished == 0:
if current_room == 'home':
home()
if current_room == 'club':
club()

预期的行为是我将在输入中输入“exit”或“leave”或“club”,home() 函数将结束,而 club() 函数将启动。实际发生的是终端一直打印“你在房间里”并不断给我输入。

如果必须的话,我会发布我完全未删节的代码,但我宁愿不发布,因为实际的冒险并不完全......专业。

最佳答案

break 所做的是跳出 home() 函数中的循环。所以当它中断时,它会回到

的开头
while finished == 0:

并将继续重复该输入。

您还必须在 home()(和 club())之后提供一个 break:

while finished == 0:
if current_room == 'home':
home()
break
if current_room == 'club':
club()
break

顺便说一句,你的代码非常困惑。 While 循环不应该用于这样的事情(除非您尝试获取 exitleave 的输入)

你也可以去掉最后的 while 循环。

关于python - 无法跳出 while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18371608/

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