我试图让我的程序在用户输入y/n时重复,但是我对如何在这种类型的输入中使用while true感到困惑,下面是一些代码。
again = input("Would you like to play again? enter y/n: ")
if again == "n":
print ("Thanks for Playing!")
quit
if again == "y":
print ("Lets play again..")
????此外,如果用户输入了不同的字符,但考虑到我有2个不同的if语句,我不确定如何去做,我想做一个else语句。
发布于 2012-09-24 08:13:34
在编写独立的Python程序时,使用main函数是一种很好的做法。它允许您轻松地添加一些单元测试,使用其他模块中的函数或类(如果您导入了它们),等等。
如果您必须检查某个条件是否满足(如果不满足其他条件),并根据哪个条件为真执行某些操作,则可以使用if…elif…else语句。
另外,请注意,在这种情况下,不能对程序使用input()函数。在这里,您真正想要使用的是raw_input。这两个函数之间的区别在于,raw_input()总是返回一个字符串,而input()将计算用户的输入,就好像它是用您的代码而不是input()编写的一样。因此,如果用户输入"y“(带引号),则会将一个string对象存储为变量的值。但是,如果用户输入y(不带引号),input()将尝试对其求值,如果没有定义y,则会抛出错误。
你可以阅读更多关于这个主题的here。
def main():
while True:
again = raw_input("Would you like to play again? Enter y/n: ")
if again == "n":
print ("Thanks for Playing!")
return
elif again == "y":
print ("Lets play again..")
else:
print ("You should enter either \"y\" or \"n\".")
if __name__ == "__main__":
main()发布于 2012-09-24 08:20:24
def play_game():
if int(raw_input("Guess a number:"))!= 5:
print "You Lose!"
else:
print "You Win!"
def play_again():
return raw_input("Play Again?").lower() == "y"
while True:
play_game()
if not play_again(): break
print "OK Goodbye..."发布于 2012-09-24 08:13:39
你可以这样做:
将布尔值分配给一个名为playing的变量,然后将其用作循环条件。
所以你会这么做的;
playing = True
while playing:
choice = input("would you like to play again? y/n: ")
if choice == "n":
print "Thanks for playing"
playing = False
else:
print "play again.. etc..."将playing变量设置为false会导致循环终止。
https://stackoverflow.com/questions/12557376
复制相似问题