在迈克尔·道森(Michael Dawson)的“绝对初学者的 Python”一书中,在关于列表和字典的章节中,我学到了很多东西,并且正在尝试使用旧的 Magic 8-Ball 作为我的灵感来制作一个新程序作为练习。以下是我到目前为止提出的代码。
它可以工作到一定程度...生成随机生成的数字,但 elif 似乎不起作用。我知道有更好和更简单的方法,但我这样做是为了加强我对字典的理解。
我已经放入了几个打印语句,看看我是否选择了一个数字,而 else 语句是如果一切都变坏了。正如代码所示,我得到的只是打印的数字,否则会产生“不计算。退出工作正常。我还使用注释掉的打印“球”语句确认字典很好。
所以我的问题是为什么 elif 语句似乎没有处理生成的随机数。谁回答了我由衷的感谢和赞赏。
# Import the modules
import sys
import random
# define magic 8-ball dictionary
ball = {"1" : "It is certain.",
"2" : "Outlook is good.",
"3" : "You may rely on it.",
"4" : "Ask again later.",
"5" : "Concentrate and ask again.",
"6" : "Reply is hazy, try again later.",
"7" : "My reply is no.",
"8" : "My sources say no"}
# for items in ball.items():
# print(items)
ans = True
while ans:
question = input("Ask the Magic 8 Ball a question: (press enter to quit) ")
answer = random.randint(1,8)
print(answer)
if question == "":
sys.exit()
elif answer in ball:
response = ball[answer]
print(answer, response)
else:
print("\nSorry", answer, "does not compute.\n")