我想对我的程序使用true / false选项(-w)。 如果设置了该选项,我将对输出进行排序。
我添加了以下选项:
parser.add_option("-w", "--without-replacement",
action="store_true", dest="replacement", default=False,
help="outpt lines without replacement")
replacement = options.replacement
if replacement
if self.lines:
self.lines.sort()
last = self.lines[-1]
for i in range(len(self.lines)-2, -1, -1):
if last == self.lines[i]: del self.lines[i]
else: last=self.lines[i]
当我运行程序时,出现以下错误:
File "randline.py", line 65
if replacement
^
SyntaxError: invalid syntax
你能帮我弄清楚正确的语法吗? parser.add_option是否正确编程?
答案 0 :(得分:4)
语法错误是因为您在'if replacement'之后忘记了冒号。
在选项可用之前,您必须实际调用解析器:
options = parser.parse_args()
如果您尝试在最后删除for循环中的重复项,请尝试以下操作:
if replacement and self.lines:
self.lines = list(set(self.lines))
self.lines.sort()
答案 1 :(得分:2)
if replacement
需要:
if replacement:
请注意冒号(:
)