Python循环不工作

时间:2012-06-27 19:02:26

标签: python

def main():
    again = "y"
    while again == "y" or again == "Y":
        module()
        again = raw_input("Do it again Y/y? ")
        return

进入Y / y后,程序就坐了。它没有关闭,但也没有重启。输入Y / y以外的任何内容,程序将关闭。

我确定我错过了一些简单的事情。

3 个答案:

答案 0 :(得分:5)

def main():
    again = "y"
    while again == "y" or again == "Y":
        module()
        again = raw_input("Do it again Y/y? ")
    return

使用Python缩进是关键

答案 1 :(得分:2)

在获得输入后,循环内部有return,因此无论输入如何,您都将退出该函数。

替代方法:

def main():
    while True:
       module()
       again = raw_input("Do it again Y/y? ")
       if again.lower() != 'y:'
          return

这以几种方式简化了循环结构:

  1. 在需要循环之前,不要对变量again进行初始分配。
  2. 输入转换为lower case,所以我们只是 与'y'进行比较,而不是大写和小写版本。
  3. 简化循环控制,无限循环 仅当用户输入'Y''y'以外的任何内容时才会退出。

答案 2 :(得分:0)

return会导致您退出函数main。将它移出while块或者beter完全摆脱它。