我正在嘗試製作一個程序,用於在某些用戶輸入上執行某些任務,如遞增或遞減整數,向字符串中添加字符等。
用戶可以給同一行中有多個命令。如何使if-elif條件縮短來解析
當我使用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
我用這解析。
它看起來足夠短,給我。它仍然可讀。 – eumiro 2013-02-13 10:25:44
那麼,如果你能夠擴展你分享的信息,那麼它將會有所幫助,因爲它並不瞭解更多信息,我沒有看到任何真正的方法來減少這種情況。一個建議是根據「i」的值將字典映射到應該完成的操作。 – 2013-02-13 10:26:14
什麼是應用程序?你正在編寫一個解析器或支撐匹配器嗎? – 2013-02-13 10:26:29