代码要求:根据诗名猜作者。系统功能:显示诗名,要求用户输入该诗的作者, 系统判断是否正确。 提示:一个诗人对应多首诗,但是一首诗对应一位诗人,所以考虑将 诗名和诗人的信息以诗名:诗人的格式存储到字典中。系统应该随机 选择某一首诗。将字典的键名取出存储到一个列表中,用 random.choice 方法从该列表中随机选择一首诗。然后让用户输入答 案,判断是否正确。
两个建议,1.把txt的内容复制后,在题目描述中贴出来,这样友友们想写的话也方便很多;2.建议发个悬赏
不知道你这个问题是否已经解决, 如果还没有解决的话:我可以解决该问题。代码如下:
import random
# 定义诗歌字典
poetry_dict = {
'登高': '杜甫',
'山行': '杜牧',
'菩萨蛮': '白居易',
'赋得古原草送别': '白居易',
'夜泊牛渚怀古': '杜甫',
'将进酒': '李白'
}
def guess_author():
# 随机选择一首诗的名字
poetry_name = random.choice(list(poetry_dict.keys()))
# 展示给用户
print(f'诗名是:{poetry_name}')
# 让用户输入猜测的作者
answer = input('请输入您猜测的作者:')
if answer == poetry_dict[poetry_name]:
print('恭喜,回答正确!')
else:
print(f'很遗憾,回答错误。正确答案是:{poetry_dict[poetry_name]}')
if __name__ == '__main__':
guess_author()
以上代码首先定义了一个诗歌字典,包括了六首不同的诗和它们的作者。在 guess_author
函数中,我们首先获取所有诗名构成的列表,用 random.choice
方法从该列表中随机选择一首诗,然后展示该诗名给用户。接下来让用户输入他猜测的作者,判断该猜测的作者是否正确。如果正确则输出“恭喜,回答正确!”,否则输出正确答案。
值得注意的是,此处我们将 list(poetry_dict.keys())
转换为 list
, 是因为在 Python 3 中, poetry_dict.keys()
返回的不是一个 list
, 而是一个 dict_keys
类型, 它不能直接被迭代和修改。 因此转换为 list
后方便我们使用 random.choice
方法选择一个随机的诗名。