我试图创建一个函数,其中包含一个if/elif语句,我希望if中断while循环。。这个功能是一个文本冒险游戏,是一个是/否的问题。这是我到目前为止所想到的。。
def yn(x, f, g):
if (x) == 'y':
print (f)
break
elif (x) == 'n'
print (g)
name = raw_input('What is your name, adventurer? ')
print 'Nice to meet you, '+name+'. Are you ready for your adventure?'
while True:
ready = raw_input('y/n ')
yn(ready, 'Good, let\'s start our adventure!',
'That is a real shame.. Maybe next time')
现在我不确定我是否正确地使用了这个函数,但是当我尝试它时,它说我不能在函数中有中断。所以如果有人能帮我解决这个问题,如果你能帮我解决函数和调用函数本身格式错误的问题,那将是非常感谢的。
您需要将函数内部的中断更改为返回,并且需要有一个
else
语句,以防用户没有为您提供正确的输入。最后,需要将while loop
中的调用转换为if语句。如果玩家输入所需的命令,这将允许您中断while语句,否则它将再次询问。我还更新了
yn
函数,允许用户同时使用小写和大写字符,以及yes和no这背后的想法很简单。函数有三种状态。用户回答是、否或无效。如果用户响应为是或否,则函数将返回1表示是,2表示否。如果用户未提供有效输入(例如空格),则函数将返回0。
在
while True:
循环中,我们用一个if statement
来包装yn(“…..”,“…”)函数,检查yn
函数是否返回大于0的数字。因为yn
如果用户向我们提供有效输入,则返回0,而1或2表示有效输入。一旦我们有来自
yn
的有效响应,我们就调用break,它停止while loop
,我们就完成了。你可以例外地工作:
这会反复循环
while
循环,但在yn()
函数内部会引发异常,从而中断循环。为了不打印回溯,必须捕获并处理异常。相关问题 更多 >
编程相关推荐