如果任何其他输入意味着出错了,我应该如何结束if-else块?

时间:2018-05-13 14:26:04

标签: python python-3.x error-handling

在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?

如果有的话,我应该抛出什么样的错误/异常?或者当所有其他输入都不可接受时,什么是好的约定?

2 个答案:

答案 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