【发布时间】:2018-07-04 12:46:22
【问题描述】:
我为此挣扎了几个小时,终于弄明白了。当然,现在对我来说似乎很痛苦,但也许有一天其他人会被困在同一个地方,所以我想我会问和回答。当然,欢迎任何更正或解释。
缩略代码:
bearNames = {
'grizzly' : 'GZ',
'brown' : 'BR',
}
bearAttributes = {
'GZ' : 'huge and light brown',
'BR' : 'medium and dark brown',
}
print("Type the name of a bear:")
userBear = input("Bear: ")
beartruth = True
while beartruth == True:
try:
print("Abbreviation is ", bearNames[userBear])
print("Attributes are ", bearAttributes[bearNames[userBear]])
print("beartruth: ", beartruth)
beartruth = False
print("beartruth: ", beartruth)
except:
print("Something went wrong - did you not type a bear name?")
print("beartruth: ", beartruth)
问题 - 输入不是熊的东西会永远循环“例外”部分。我想要发生的事情应该是相当明显的 - 如果用户输入了不在 BearNames 中的内容,它应该触发异常,打印错误并返回尝试。
【问题讨论】:
-
找出你的错误是什么,除了 [error that you have] 以便它真正捕捉到一些东西
-
提示:您不会更改您的 except 中的任何内容,也不会到达
beartruth = False行。 -
input()需要在循环内部 -
@fishkake 只有一个
Error是您希望这段代码抛出的,那就是KeyError。因此,如果提出了不同的问题,请让自己感到惊讶。很高兴知道。
标签: python python-3.x while-loop try-except