【发布时间】:2023-03-14 11:59:02
【问题描述】:
我正在学习 python 并练习我制作一个简单的基于文本的冒险游戏的技能。
在游戏中,我想问玩家是否准备好开始。我通过创建一个 begin() 函数来做到这一点:
def begin():
print(raw_input("Are you ready to begin? > "))
while raw_input() != "yes":
if raw_input() == "yes":
break
print(start_adventure())
else:
print("Are you ready to begin? > ")
print(begin())
在我的代码下面是函数 start_adventure()
def start_adventure():
print("Test, Test, Test")
当我运行程序时,它会启动,然后我会询问我是否准备好开始。然后它只是无限循环,如果我完全关闭 Powershell 并重新启动 Powershell,我只能退出程序。我究竟做错了什么?一旦玩家输入“是”,我怎样才能让循环停止?
【问题讨论】:
-
如果您使用 raw_input() 两次,它将寻找两个不同的输入。您需要调用一次 raw_input() 然后将其分配给一个变量。
-
你为什么要连续打三个电话
raw_input?那么所有额外的print电话是怎么回事? -
我补充说:x = raw_input() while x != 'yes': if x == 'yes': break print(start_adventure()) else: print(raw_input("你准备好了吗? begin? > ")) 它仍然只是无限循环。我不确定为什么当 x == 'yes' 时它没有中断
-
@melpomene 我正在尝试以字符串的形式从用户那里获取输入。是还是不是。所以我需要循环来获取该信息并使用它来停止循环或继续循环。一旦循环中断,我希望它继续执行下一个函数。
-
你不需要break语句,把它拿出来。条件更改已经使代码“中断”出 while 循环。 while 循环的全部意义在于不需要 break 语句。这应该由 while 循环条件控制,而不是显式的中断调用。
标签: python string input while-loop user-input