【发布时间】:2013-02-13 10:24:00
【问题描述】:
我正在尝试制作一个程序来执行某些用户输入的某些任务,例如递增或递减整数,将字符添加到字符串等。
用户可以在同一行中给出多个命令。
当我使用raw_input 时,我不能(也不想)接受多线输入。
是否可以使if-elif-else 条件句更短,但仍保持可读形式?
for i in test_str:
if i == '[':
a += 1
elif i == '(':
b += 1
elif i == ']' and c > 0:
c -= 1
elif i == ')'and d > 0:
d -= 1
elif c == 0 and d == 0:
ret += i
... # more elifs
elif 也有可能:
elif i == 'o':
if test_str[test_str.index(i)+1] == i: # next char is same
# handle
else:
# handle
我正在使用它进行解析。
【问题讨论】:
-
对我来说它看起来足够短。而且它仍然可读。
-
嗯,如果您可以扩展您正在共享的信息,这将有所帮助,就目前而言,在不了解更多信息的情况下,我看不出有任何真正的方法可以减少这种情况。一个建议是根据
i的值将字典映射到应该做什么。 -
应用是什么?你是在写解析器还是大括号匹配器?
-
我会说你可以简化你的算法,但是如果没有更多的上下文,这是不可能确定的。
-
@eumiro 对不起,忘了提,但还有更多
elif声明
标签: python string parsing if-statement