使用python实现背单词功能,单词本存放在txt文件中,最后统计出回答的正确题数和错误题数。

news2024/10/7 10:25:33

一、编程题目

        编程题目:使用python实现背单词功能,单词本存放在txt文件中,最后统计出回答的正确题数和错误题数。

    单词本的内容如下:

 danciben.txt内容如下(按照格式,可自行定义单词本的内容):

wind n.胸口,心窝
convey vt.传达;传播;转让
correctly ad.正确地,恰当地
clap n.拍手喝采声;霹雳声
coin vt.铸造(硬币)
popularity n.通俗性;普及,流行
abbreviation n.节略,缩写,缩短
abide vt.遵守;vt.忍受
abolish vt.废除,取消
absent a.不在意的
absorption n.吸收;专注


二、代码实现

      1、导入random模块,用于将单词本的内容打乱:

import random

2 、读取danciben.txt文件中的单词,然后使用random打乱单词的顺序:

with open("danciben.txt", 'r', encoding='utf8') as worldFile:
    world_list = worldFile.readlines()
    # 使用random.shuffle函数将单词列表打乱
    random.shuffle(world_list)
  

  3、定义两个变量count_success 和count_erroe用于统计回答的正确和错误的数量,循环单词本,使用split切分出英文单词和中文释义

    count_success = 0
    count_error = 0
    for index in world_list:
        w = index.split(" ")[0]
        c = index.split(" ")[1]

        c = c.replace('\n','')
        c = c[c.index('.')+1:]
        if ',' in c:
            c = c.split(',')
        elif ';' in c:
            c = c.split(';')
        else:
            c = [c]

    注意解析出来的中文意思并不能完全符合要求,因为一个单词可能有多个中文意思,需要进一步解析出来,通过replace把换行符删掉,然后切分出多个中文释义。

 4、设置count,统计回答的次数,每个单词有3次回答机会,如果回答正确,正确数+1,如果回答不正确且回答次数小于3则可以再次回答,如果回答了3次还是错误,则错误数+1

        count = 1
        flag = True
        while flag:
            en = input(str(w) + "的汉语意思:")

            if en in c:
                print("恭喜答对")
                count_success += 1
                flag = False
            else:
                print("答错了,还有" + str(3 - count) + "次机会:")
                count = count + 1
                if count>3:
                    flag = False

    因为一个单词可能有多个中文释义,所以上面判断回答是否正确,使用In进行判断。其次,while  else结构,表示如果

5、最后当单词本中所有的单词都背完后,输出回答正确和错误的数量分别是多少:

print("您已经完成了单词本里的全部单词")
print("您共答题" + str(len(world_list)) + "道,答对" + str(count_success) + '题,答错' + str(count_error) + '题,继续加油哦!')

6、最后全部代码如下:

import random

with open("danciben.txt", 'r', encoding='utf8') as worldFile:
    world_list = worldFile.readlines()
    # 使用random.shuffle函数将单词列表打乱
    random.shuffle(world_list)
    count_success = 0
    count_error = 0
    for index in world_list:
        w = index.split(" ")[0]
        c = index.split(" ")[1]
        c = c.replace('\n','')
        c = c[c.index('.')+1:]
        if ',' in c:
            c = c.split(',')
        elif ';' in c:
            c = c.split(';')
        else:
            c = [c]

        count = 1
        flag = True
        while flag:
            en = input(str(w) + "的汉语意思:")

            if en in c:
                print("恭喜答对")
                count_success += 1
                flag = False
            else:
                print("答错了,还有" + str(3 - count) + "次机会:")
                count = count + 1
                if count>3:
                    flag = False


    count_error = len(world_list)-count_success
    print("您已经完成了单词本里的全部单词")
    print("您共答题" + str(len(world_list)) + "道,答对" + str(count_success) + '题,答错' + str(count_error) + '题,继续加油哦!')


三、测试

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/502604.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

创建 Node REST API 文档

为自己开发的 Node REST API 生成文档,基本有两种方法: 1 极简版 此方法就是自己写一个文件,记录 API,不需要安装额外的 package,然后 app.js 增加一个 route 然后从浏览器查看这个文件就可以。 步骤如下&#xff1a…

酷家乐x极盾科技:“智能安全决策平台”助力日均十亿级日志分析

企业网络环境中每天都会产生大量的网络日志,还有工作站,服务器,路由器和防火墙等网络设备中的日志对网络安全的提升具有重要意义。充分利用好它们可以帮助企业及时发现潜在的风险和安全漏洞,把网络环境中存在的威胁扼杀在摇篮中。…

10年IT老兵亲述SpringCloud开发从入门到实战文档

前言 首先给大家看一张图,不知道图上这些springcloud的技术知识点,大家是否都精通而灵活运用了呢? 如果没有精通灵活运用的话,小编将用此文来带大家一步步来深入学习这些技术知识,接下来将从Spring Boot微框架搭建、S…

Makefile及cmake学习

Makefile及cmake学习 1. g,gcc以及cpp的区别2. Makefile2.1 介绍一个例子2.2 避免头文件重复包含的方法2.2.1 宏定义2.2.2 #pargma once 2.3 使用Makefile编译文件2.3.1 手动编译2.3.2 Makefile编译-版本12.3.3 Makefile编译-版本22.3.4 Makefile编译-版本32.3.5 Ma…

【三维几何学习】网格简化-ModelNet10

网格简化-ModelNet10 引言一、网格的简化1.1 水密网格的简化可视化1.2 非水密网格的简化可视化1.3 核心代码 二、ModelNet10数据集简化三、展望 引言 计算机算力有限,特别是在深度学习领域,撇开网格的输入特征计算,现有条件很难直接训练测试…

JS逆向 -- 某联盟登录密码分析

一、输入账号密码 账号:15836353612 密码:123456 二、F12打开开发者工具,抓包分析,password被加密提交了 三、全局搜索password,定位到关键JS文件,下断调试 四、断下来后,查看formDate的值&…

AspNetCore中的中间件详解【超详细】

1 什么叫做中间件? ASP.NET Core处理请求的方式看做是一个管道,中间件是组装到应用程序管道中用来处理请求和响应的组件。通常是一个可重用的类方法 每个中间件可以: (1)选择是否将请求传递给管道中的下一个组件。 &a…

第一行代码 第七章 内容提供器

第七章 内容提供器 在上一章中我们学了Android数据持久化的技术,包括文件存储、SharedPreferences存储以及数据库存储。使用这些持久化技术所保存的数据都只能在当前应用程序中访问。 虽然文件和SharedPreferences存储中提供了MODE_WORLD_READABLE和MODE_WORLD_WR…

UU跑腿“跑男失联”:同城即配服务赛道商业逆袭难?

五一假期,人们纷纷走出家门,要么扎堆奔向“远方”,要么、享受本地烟火气息。 据文化和旅游部数据中心测算,劳动节假期,全国国内旅游出游合计2.74亿人次,同比增长70.83%。 五一假日的郑州东站 面对人山人海…

树莓派(主)与STM32(从)使用SPI通信

1.实验目的 2.SPI 简介 SPI(Serial Peripheral Interface,串行外设接口)是Motorola公司提出的一种同步串行数据传输标准 2.1 接口 SPI接口经常被称为4线串行总线,以主/从方式工作,数据传输过程由主机初始化。如图1…

【干货集】PCBA板边器件布局重要性

电子元器件在PCB板上的合理布局,是减少焊接缺点的极重要一环!元器件要尽可能避开挠度值非常大的区域和高内应力区,布局应尽量匀称。 为了最大程度的利用电路板空间,相信很多做设计的小伙伴,会尽可能把元器件靠板的边缘…

机器学习基础知识之数据归一化

文章目录 归一化的原因1、最大最小归一化2、Z-score标准化3、不同方法的应用 归一化的原因 在进行机器学习训练时,通常一个数据集中包含多个不同的特征,例如在土壤重金属数据集中,每一个样本代表一个采样点,其包含的特征有经度、…

《程序员面试金典(第6版)》面试题 16.16. 部分排序(double双指针(多指针),C++)

题目描述 给定一个整数数组,编写一个函数,找出索引m和n,只要将索引区间[m,n]的元素排好序,整个数组就是有序的。注意:n-m尽量最小,也就是说,找出符合条件的最短序列。函数返回值为[m,n]&#xf…

什么是平台工程?如何开始?

平台工程是为开发人员构建和维护自助服务平台的学科。该平台提供了一套云原生工具和服务,帮助开发者快速高效地交付应用。平台工程的目标是通过标准化和自动化软件交付生命周期 (SDLC) 中的大部分任务来改善开发人员体验 (DX)。开发人员可以专注于使用自动化平台编码…

Type-C PD充电器诱骗PD+QC+AFC+FCP全协议快充取电5V9V12V15V20V

Type-C充电器采用的是PD快充协议,支持的电压高,电流大,一般有5V3A、9V3A、12V3A、15V3A、20V5A等等。 因为充电器内部有协议芯片,当外部设备连接时,设备会和充电器进行协议匹配,匹配成功之后,充…

ASEMI代理ADI亚德诺LT8609AJDDM#WTRPBF车规级芯片

编辑-Z LT8609AJDDM#WTRPBF特点&#xff1a; 宽输入电压范围&#xff1a;3.0V 至 42V 超低静态电流突发模式操作&#xff1a; 将 12VIN 调节到 3.3VOUT 时 IQ 为 2.5A 输出纹波 < 10mVP-P 高效 2MHz 同步操作&#xff1a; 1A 时效率为 93%, 12VIN 可获得 5VOUT 最大…

3.1 一个稍微完善的Vue.js响应式系统

前文提要&#xff1a;3.0 响应式系统的设计与实现 1、设置一个合理的effect副作用函数 如上文所说&#xff0c;如果我们直接将简单的effect函数作为副作用函数&#xff0c;如果一个副作用函数不叫effect岂不是找不到了。解决方案也很简单&#xff0c;我们设定一个全局变量用于…

在CRA中配置别名路径并添加别名路径提示

写在前面&#xff1a; 使用React官方脚手架create-react-app[简称CRA]创建react项目&#xff1a;npx create-react-app 项目名称 一、配置别名路径 1.1 写在前面 目的&#xff1a;简化项目中的路径处理&#xff0c;和Vue项目中的类似。 参考文档&#xff1a;自定义CRA的默认…

MySQL基础(十二)数据类型精讲

1. MySQL中的数据类型 类型类型举例整数类型TINYINT、SMALLINT、MEDIUMINT、INT(或INTEGER)、BIGINT浮点类型FLOAT、DOUBLE定点数类型DECIMAL位类型BIT日期时间类型YEAR、TIME、DATE、DATETIME、TIMESTAMP文本字符串类型CHAR、VARCHAR、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT枚…

一个日期类深度认识operator符号重载

一&#xff1a;概念 在以前的C语言的学习中,如果我们需要比较两个整数并返回它的结果可以直接用与之相关的符号。例如我们可以直接写成A>B或者A<B一类的&#xff0c;但是它的局限性很大&#xff0c;只能比较内置类型&#xff0c;因为计算可以直接转换成对应的汇编代码进…