Python之“诗词大会”游戏

2023-11-02

        需求分析:要先设计题库,然后在规定时间内循环随机出题,判断输入的答案是否正确,并统计答对问题的次数,如果答题时间到,则退出循环,结束答题。

        具体实现步骤:

1、创建字典bank保存题库,问题为键,正确答案为值。问题使用元组保存,题干和选项为元组的元素。

2、使用keys()方法获取bank的所有键(问题),然后使用list()方法转换为列表ba。

3、创建变量time1、number和count。time1表示开始时间,使用time模块的time()函数获取。number保存问题在ba列表中的索引,初始赋值为空列表。count统计答对问题的次数,初始赋值为0.

4、使用while循环,判断条件为True,在循环中进行以下操作:

4.1、使用randint()函数生成一个0-len(ba)-1的随机整数index,作为列表的索引。判断index是否在number中(即该索引对应的问题是否已经出现过了)如果是则使用continue结束本次循环,否则将Index添加到number中

4.2、使用for循环输出ba[index]中的元素

4.3、使用input()函数输入答案,并赋给answer。然后判断answer与该问题的答案是否相等,并且输出是否答对提示,答对则将count加1.

4.4、使用time模块的time()函数获取当前时间,并赋给time2.然后计算time2和time1的差值,判断差值是否大于规定时间,如果是则输出count,并退出循环。

import random
import time

#创建字典bank,问题为“键”,答案为“值”
bank = {
    ('点字成诗(九宫格),从下面九个字中识别一句诗词。', '花 多 又', '知 逢 时', '雨 少 落'): '花落知多少',
    ('点字成诗(十二宫格),从下面十二个字中识别一句诗词。', '柳  生  一  白', '云  亮  有  家', '花  处  人  暗'): '白云生处有人家',
    ('“会当凌绝顶,一览众山小。”描写的是哪座山?', 'A.庐山', 'B.黄山', 'C.泰山'): 'C',
    ('请问:《望庐山瀑布》的作者是下面哪位诗人?', 'A.王维', 'B.李白', 'C.杜甫'): 'B',
    ('填空:窗含( )岭千秋雪。', 'A.东', 'B.南', 'C.西'): 'C',
    ('请问:名句“海上生明月,天涯共此时”出自下面哪首诗?', 'A.杜甫《月夜忆舍弟》', 'B.张九龄《望月怀远》', 'C.李白《闻王昌龄左迁龙标遥有此寄》'): 'B',
    ('请问:成语“寸草春晖”出自下面哪首诗?', 'A.白居易《赋得古原草送别》', 'B.苏轼《春夜》', 'C.孟郊《游子吟》'): 'C',
    ('请问:下面成语中哪个不是出自杜牧的诗?', 'A.豆蔻年华', 'B.折戟沉沙', 'C.壮志未酬'): 'C',
    ('填空:( )十三余,豆蔻枝头二月初。',): '娉娉袅袅',
    ('填空:花径不曾( )客扫,蓬门今始为君开。',): '缘',
    ('请问:中国古代有四大美女,请问宋代王安石《明妃曲》写的是其中哪一位?', 'A.西施', 'B.王昭君', 'C.貂蝉'): 'B',
    ('请根据下面线索说出一位诗人?', 'A.宋代一位著名的状元', 'B.中国历史上的一位民族英雄', 'C.创作有名句“人生自古谁无死,留取丹心照汗青。”'): '文天祥',
}
#获取bank的所有键,并转换为列表
ba=list(bank.keys())
number=[] #创建空列表,保存题目的索引
count=0 #答对的问题数
time1=time.time() #开始时间
while True:
     # 生成0-len(ba)-1的随机整数index,即通过随机索引下标来选取题目
     index=random.randint(0,len(ba)-1)
     if index in number: #如果index在number中
         continue #结束本次循环
     number.append(index) #将index添加到number中
     for it in ba[index]: #遍历问题元组中的元素
         print(it) #输出问题
     answer=input('请输入正确答案:')
     if answer==bank[ba[index]]: #如果答案正确
         print('恭喜你,答对了!')
         count+=1 #答对的问题数加1
     else:
         print('很遗憾,答错了!')
     time2=time.time() #获取当前时间
     de_time=int(time2-time1) #计算答题总时间
     if de_time>30:
         print('时间到,答题结束!您本次答对',count,'道题')
         break
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python之“诗词大会”游戏 的相关文章

随机推荐

  • 【计算机组成原理】16-定点数与浮点数

    一 定点数的表示方法 1 纯小数 乘以比例因子以满足定点数保存格式 2 纯整数 小数点在后面 二 浮点数的表示方法 计算机处理的很大程度上不是纯小数或纯整数 数据范围很大 定点数难以表达 1 浮点数的表示格式 科学计数法 j S 尾数 r
  • 华为人才在线--华为认证进阶路径

    华为人才在线 华为认证进阶路径网址 网址 https e huawei com cn talent cert roadmap 在这个网址可以学习华为的各类技术方向 能下载到培训教程和实验手册 以及在线学习 如学习路由交换的HCIA点击红色的
  • Numpy数组

    NumPy 最重要的一个特点是其 N 维数组对象 ndarray 它是一系列同类型数据的集合 以 0 下标为开始进行集合中元素的索引 ndarray 对象是用于存放同类型元素的多维数组 ndarray 中的每个元素在内存中都有相同存储大小的
  • 预装载功能探究一:比较/捕获寄存器预装载使能的意义

    以沁恒CH32V307VCT6芯片测试为基准 测试开发板 CH32V307V R1 1V0 以下内容均为解析调用此句代码的意义 TIM OC1PreloadConfig TIM1 TIM OCPreload Enable 第一层 解析底层代
  • 使用 Git Extensions 简单入门 Git

    使用 Git Extensions 简单入门 Git 独立观察员 2015 11 25 前言 关于这个主题 之前我录了段视频教程 在本地看清晰度还可以 但传到优酷上就很不清晰了 即使是后来重制后还是一样不清晰 所以现在想整理成文字版 当然
  • 计算机网络基础学习 --- 第四章--网络层(ipv4概述)

    1 网络层 1 1 网络层概述 1 2 网络层提供的2种服务 1 3 IPV4 1 3 1 IPV4概述 1 3 2 分类编址的IPV4地址 1 3 3 划分子网的IPV4地址 1 3 4 无分类编制的IPV4地址 1 3 5 IPV4地址
  • jvm分析工具简介

    根据开源谷粒商城学习总结的笔记 觉得是个很好用的工具 推荐 因为jdk自带不用单独安装且很好用不像jprofiler还得安装和破解 1 jconsole 安装jdk配置好环境变量 win R输入cmd进入dos命令行 启动应用 想要分析的项
  • Go语言面试题--基础语法(26)

    文章目录 1 下面这段代码能否正常结束 2 下面这段代码输出什么 为什么 3 下面代码是否能编译通过 如果通过 输出什么 1 下面这段代码能否正常结束 func main v int 1 2 3 for i range v v append
  • 安装nvm管理node版本详细步骤

    安装nvm管理node版本详细步骤 首先需要把已经安装的node进行卸载 注 卸载node之前 最好把node的版本记录一下 方便安装nvm之后可以下载你需要的node版本 具体卸载步骤如下 打开电脑的控制面板 gt 点击程序 gt 点击程
  • win7+nfs文件服务器,win7如何挂载nfs服务器

    在linux下面 除了samba 一种在局域网内的不同计算机之间提供文件及打印机等资源的共享服务 服务之外 我们还可以通过nfs服务共享文件 以达到跨本台访问的需求 下面是学习啦小编收集整理的win7如何挂载nfs服务器 希望对大家有帮助
  • 学 Rust 最好的图书之一,原版豆瓣 9.7分“封神之作”

    1 瓜王 争霸赛总冠军 开发者版图同步飞涨 Rust 大概是世界上 瓜 最多的编程语言了 最近的一个 瓜 来自微软 用 Rust 重写 Windows 内核 一边是不断有大厂使用 Rust 重构某个版块的老旧代码 一边是 Rust 内部传出
  • 企业场景篇

    企业场景篇 设计模式 简单工厂模式 工厂 factory 处理创建对象的细节 一旦有了SimpleCoffeeFactory CoffeeStore类中的orderCoffee 就变成此对象的客户 后期如果需要Coffee对象直接从工厂中获
  • 一句sql搞定Mysql删除数据后自增列从1开始

    在数据库应用 我们经常要用到唯一编号 以标识记录 在MySQL中可通过数据列的AUTO INCREMENT属性来自动生成 MySQL支持多种数据表 每种数据表的自增属性都有差异 这里将介绍各种数据表里的数据列自增属性 数据库中设置了自增列
  • RuntimeError: CUDA error: an illegal memory access was encountered 解决思路

    问题描述 在跑编译正常通过 CPU上也正常运行的某项目时 在运行到某个epoch时 程序突然出现以下错误 RuntimeError CUDA error an illegal memory access was encountered CU
  • 行业基础概念

    1 SoC称为系统级芯片 2 AHB Advanced High Performance Bus 译作高级高性能总线 3 DMA 全称Direct Memory Access 即直接存储器访问 DMA用来提供在外设和存储器之间或者存储器和存
  • SoloPi APP性能测试用

    这款名为 SoloPi 的小工具 作用在于监测安卓机的运行状态 包括 CPU 内存 乃至大家感受最直观的帧率等等 SoloPi 本身是非常良心的 首先它开源 保证了干净安全 其次它也没有广告和多余的后台进程 非常令人放心 SoloPi ht
  • 【MLOps】第 7 章 : 监控和反馈循环

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • 加速中产 “返贫” 的4个迹象

    没有消息 就是好消息 这话放在现在的朋友圈子里 似乎很合适 最近接到两个朋友的电话 一个是朋友的诉苦电话 这位朋友曾是某大厂的高管 被裁后失业近1年 虽然当初赔了N 1 但架不住这位朋友 房贷近千万 配偶不工作 孩子送出国 即传说中的 中产
  • Win11系统默认用户名怎么进行修改教学

    Win11系统默认用户名怎么进行修改教学 安装了Win11系统之后 我们电脑的默认用户名是administrator 而有的用户想要将这个用户名进行个性化的修改 把它修改成为自己喜欢的名称 那么如何去修改默认用户名 接下来我们一起来看看具体
  • Python之“诗词大会”游戏

    需求分析 要先设计题库 然后在规定时间内循环随机出题 判断输入的答案是否正确 并统计答对问题的次数 如果答题时间到 则退出循环 结束答题 具体实现步骤 1 创建字典bank保存题库 问题为键 正确答案为值 问题使用元组保存 题干和选项为元组