在Python3中,我正在评估表示为字符的二十一点卡。
for card in hand:
if card.isdigit():
result += int(str)
elif card == "X":
result += 10
elif card == "A":
result += 11
num_aces += 1
else:
#Something went wrong.
#What should I put here?
如果有的话,我应该抛出什么样的错误/异常?或者当所有其他输入都不可接受时,什么是好的约定?
答案 0 :(得分:0)
您可以抛出ValueError
,因为该值无效。在这种情况下,您可能需要先检查类型,如果它不是字符串,则抛出TypeError
。
答案 1 :(得分:0)
您可以先验证输入是否有效,然后继续执行语句。 您甚至可以在函数中提取它以使其更清晰。
另外,我认为这个if else语句可以更好地转换为switch语句。
#meta code
for card in hand:
if(!card.isDigit() && card !== "X" && card !== "Y") {
// Throw your exception
}
#proceed to switch statement