1

当用户输入 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..")
    ????

此外,如果用户输入不同的字符,我想做一个 else 语句,但考虑到我有 2 个不同的 if 语句,我不确定如何去做。

4

4 回答 4

5

当你编写一个独立的 Python 程序时,使用 main 函数是一个好习惯。它允许您轻松添加一些单元测试,使用来自其他模块的函数或类(如果您导入它们)等。

如果您必须检查某个条件是否满足以防某些其他条件不满足,并根据哪个条件为真执行一些操作,您可以使用 if...elif...else 语句。

另外,请注意,在这种情况下,您不能在程序中使用 input() 函数。你真正想在这里使用的是 raw_input。这两个函数之间的区别在于 raw_input() 将始终返回一个字符串,而 input() 将评估用户的输入,就好像它是用您的代码而不是 input() 编写的一样。因此,如果用户输入“y”(带引号),则将字符串对象存储为变量的值。但是如果用户输入 y(不带引号), input() 将尝试对此进行评估,如果 y 未定义,则会引发错误。

您可以在此处阅读有关此主题的更多信息。

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-24T00:13:34.280 回答
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..."
于 2012-09-24T00:20:23.630 回答
0

你可以这样做:

将 bool 值分配给名为 play 的变量,然后将其用作循环条件。

所以你会有;

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 会导致循环终止。

于 2012-09-24T00:13:39.337 回答
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")
于 2014-10-04T02:35:12.560 回答