首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python repeat program while true

python repeat program while true
EN

Stack Overflow用户
提问于 2012-09-24 08:09:37
回答 4查看 61K关注 0票数 1

我试图让我的程序在用户输入y/n时重复,但是我对如何在这种类型的输入中使用while true感到困惑,下面是一些代码。

代码语言:javascript
复制
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语句。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-09-24 08:13:34

在编写独立的Python程序时,使用main函数是一种很好的做法。它允许您轻松地添加一些单元测试,使用其他模块中的函数或类(如果您导入了它们),等等。

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

另外,请注意,在这种情况下,不能对程序使用input()函数。在这里,您真正想要使用的是raw_input。这两个函数之间的区别在于,raw_input()总是返回一个字符串,而input()将计算用户的输入,就好像它是用您的代码而不是input()编写的一样。因此,如果用户输入"y“(带引号),则会将一个string对象存储为变量的值。但是,如果用户输入y(不带引号),input()将尝试对其求值,如果没有定义y,则会抛出错误。

你可以阅读更多关于这个主题的here

代码语言:javascript
复制
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()
票数 5
EN

Stack Overflow用户

发布于 2012-09-24 08:20:24

代码语言:javascript
复制
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..."
票数 1
EN

Stack Overflow用户

发布于 2012-09-24 08:13:39

你可以这样做:

将布尔值分配给一个名为playing的变量,然后将其用作循环条件。

所以你会这么做的;

代码语言:javascript
复制
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会导致循环终止。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12557376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档