我正在寫一個Python 3腳本,並製表林業木材計數可變長度命令的元組。處理與嘗試......除了
工人將電臺種類,平均直徑,並且在每棵樹的日誌高度它們標記爲電腦操作員。然後,計算機操作員將進入一個命令,例如這樣的:
OAK 14 2
這意味着該方案應增加直徑14英寸和兩個日誌高度橡樹計數。
但是,工作人員有時也會同時呼叫同一類型的樹中的一個以上。所以程序也必須能夠處理這個命令:
OAK 16 1 2
這將意味着我們正在增加兩個計數。
我有解析器設置方式是這樣的:
key=cmdtup[0]+"_"+cmdtup[1]+"_"+cmdtup[2]
try:
trees[key]=int(trees[key])+int(cmdtup[3])
except KeyError:
trees[key]=int(cmdtup[3])
except IndexError:
trees[key]=int(trees[key])+1
如果程序命令來存儲它之前沒有存儲一棵樹,一個KeyError異常會熄滅,處理程序將設置字典輸入,而不是增加它。如果省略第三個參數,一個IndexError將提高,而處理器將它視爲如果第三個參數是發生1
問題,但是,如果我們在一次這兩種情況下,該計劃還沒有聽說過橡樹,並且運營商沒有指定計數。 KeyError會關閉,但會自動生成一個IndexError,並且在異常處理程序中發生異常時,Python不會喜歡它。
我想最簡單的方法是簡單地刪除一個或另一個不同之處,並有其功能可以用另一種方式來完成。不過,我想知道是否有更優雅的Pythonic方法來完成此任務。在那兒?
不要欺負你的程序用戶強迫他們在cmd.exe中輸入參數,例如。這是殘酷的。創建一些前端。 – Artur
它不能通過argv工作。在我發佈的位之上有一個輸入循環。另外,我是最終用戶。 – Schilcote
有什麼答案可以接受? – uselpa