我正在写一个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