我有一个初学者的错误,我无法看到我出错的地方。
如果命令行参数[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
我一直收到这个错误。
mars13:python beebs$ python sys.py
File "sys.py", line 9
break
SyntaxError: 'break' outside loop
第9行是指休息。
答案 0 :(得分:5)
break
只能在while
或for
循环中使用;您试图在if
语句中使用。
要提前退出脚本,请使用sys.exit()
function。
请注意,sys.argv[0]
始终是一个字符串(在某些情况下,它可以是空字符串),因此if script is None
总是会变得虚假。对于您的脚本,它将设置为'sys.py'
。
您不应该为脚本提供与Python标准库模块相同的名称;你将你的名字命名为sys.py
,并且只是因为该模块是一个内置的并且不需要从单独的文件加载,你就可以逃避它,所以在这个特定的情况下你很幸运,并没有导致任何导入问题。但是,在一般情况下,您最终会导入导入错误,因为您的脚本会被导入。