1

我在 Idle 中做了一个程序,上面写着:

for trial in range(3):
if input('Password:') == 'password':
    break
else:
    # didn't find password after 3 attempts
    **I need a stop program here**
print ("Welcome in")

请记住,这是空闲的,所以我需要空闲的程序,而不是 CMD。如果有帮助,我也在使用 Python 3.2。

4

5 回答 5

4

恕我直言,一个更好的方法是将您的程序放入一个函数中,并return在您希望它停止时。然后只需调用该函数即可运行您的程序。

def main():
    for trial in range(3):
        if input('Password:') == 'password':
            break
    else:
        return
    print ("Welcome in")

main()
于 2012-07-03T19:48:27.213 回答
2

使用sys.exit()raise SystemExit

import sys
for trial in range(3):
    if input('Password:') == 'password':
        break
else:
    sys.exit()
print ("Welcome in"))

编辑: 要以静默方式结束它,请将其包装在一个try-except块中:

try:
    import sys
    for trial in range(1):
        if raw_input('Password:') == 'password':
            break
    else:
        raise SystemExit #or just sys.exit()
    print ("Welcome in")
except SystemExit:
    pass  #when the program throws SysExit do nothing here,i.e end silently
于 2012-07-03T19:43:47.993 回答
1

我不确定您所说的“in IDLE”与“in CMD”是什么意思。IDLE 启动的 Python shell 应该能够以与从命令行启动的 Python shell 相同的方式终止。

此外,您的示例中的选项卡似乎是错误的:下面for...和上面的所有内容都print...应该缩进。

关于您的问题:您是否要求在此时终止您的脚本的命令?如果是这样,添加两行from sys import exit然后调用exit()应该可以解决问题,尽管它会引发SystemExit异常。如果您不喜欢这样,您可以在程序的外层pass为异常类型添加一个处理程序。SystemExit

于 2012-07-03T19:45:58.057 回答
1

sys.exit可以随时退出程序。

于 2012-07-03T19:46:52.017 回答
0

我试过sys.exit()了,它突出显示'sys'INVALID SYNTAX.

这可能与我的工作方式有关,但如果是这样的话,那就是 IDK。

于 2019-06-07T17:00:15.507 回答