在Python if语句中使用break

Sna*_*ail 0 python if-statement break

我有一个初学者的错误,我不知道我哪里出错了.

如果命令行参数[0]为空,我试图打破程序.

我在macports上运行python.

import sys

script = sys.argv[0]
ip = sys.argv[1]
port = sys.argv[2]

if script is None:
    print 'script argv is: ' + script
    break

print "[+] The script name is: " + script
print "[+] The IP is: " +IP+" and the port is: " +port
Run Code Online (Sandbox Code Playgroud)

我一直收到这个错误.

mars13:python beebs$ python sys.py
  File "sys.py", line 9
    break
SyntaxError: 'break' outside loop
Run Code Online (Sandbox Code Playgroud)

第9行是指休息.

Mar*_*ers 5

break只能在一个whilefor循环中使用; 你试图在一个if声明中使用.

要尽早退出脚本,请使用该sys.exit()功能.

请注意,sys.argv[0]总是将是一个字符串(在某些情况下,它可以是一个字符串),所以if script is None永远会是假的.对于您的脚本,它将被设置为'sys.py'.

您不应该为脚本提供与Python标准库模块相同的名称; 你命名你的sys.py,并且只是因为模块是一个内置的并且不需要从单独的文件加载你会逃脱它,所以在这个特定的情况下你很幸运,并没有导致任何导入问题.但是,在一般情况下,您最终会导致导入错误,因为您的脚本将被导入.