我试图让我的程序在用户输入y / n时重复,但是我对如何使用这种类型的输入使用了一段时间感到困惑,下面是一些代码。
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..")
????
另外,如果用户输入不同的字符,我想做一个else语句,但我不确定如何处理这个问题,因为我有2个不同的if语句。
答案 0 :(得分:5)
当您编写独立的Python程序时,使用main函数是一个好习惯。它允许您轻松添加一些单元测试,使用您的功能或来自其他模块的类(如果您导入它们)等。
如果在不满足某些其他条件的情况下必须检查是否满足某些条件,并根据哪个条件为真执行某些操作,则可以使用if ... elif ... else语句。
此外,请注意,在这种情况下,您不能对程序使用input()函数。你真正想要使用的是raw_input。这两个函数之间的区别在于raw_input()将始终返回一个字符串,而input()将评估用户的输入,就好像它是在代码而不是input()中编写的一样。因此,如果用户输入“y”(带引号),则将字符串对象存储为变量的值。但是如果用户输入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()
答案 1 :(得分:1)
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..."
答案 2 :(得分:0)
你可以这样做:
将bool值分配给名为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,导致循环终止。
答案 3 :(得分:0)
我让我的代码工作,每次进入else语句时都会循环,基本上循环回if语句。
刚开始学习python,我真的很喜欢它。 这是我的简单代码。
print 'Welcome to "Guess my number"'
def main():
while True:
number = raw_input('Please Enter a number between 1 and 10: ')
if number == '5':
print 'You Got It!! It\'s number ' + number
return
else:
print 'Please try again!'
main()
raw_input("\nPress enter")