2012-06-27 128 views
1
def main(): 
    again = "y" 
    while again == "y" or again == "Y": 
     module() 
     again = raw_input("Do it again Y/y? ") 
     return 

进入Y/Y时,程序刚刚坐。它不关闭,但它也不会重新启动。输入除Y/Y以外的任何内容,程序将关闭。Python虽然循环不工作

我确定我缺少一些简单的东西。

回答

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'以外的其他任何内容时才会退出。
+1

我怎么样是的是是唯一的选择,就像沙漠中的选择:-) –

+0

为什么downvote?没有解释,这对OP,SO或我没有用。如果出现错误,我会很乐意纠正它,但我只能用建设性的反馈来做到这一点:) – Levon

+0

我没有downvote。 –

0

return导致您退出函数main。将其移出时间块或小怪,但完全摆脱它。

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

使用Python缩进是关键

+0

啊谢谢你。这是程序员的困境。句法!! –

+0

如果您认为我的答案是帮助您解决问题的答案,您会介意将其标记为其中一个添加接受的答案吗?干杯 –