首页 > 编程语言 >python实现一个简单的背单词程序

python实现一个简单的背单词程序

时间:2023-09-17 21:38:32浏览次数:47  
标签:翻译 word python 程序 用户 单词 words input 背单词

功能需求

给定一个words.txt文档,里面存放单词及其释意,要求编写一个python程序,实现自动背刺功能:程序开始时,首先随机给用户一个单词和其释义,用户自行选择师是否记住该单词,如果选择记住的话,程序会将该单词标记为需要记忆,在接下来的操作中会继续出现这个单词,直到用户不需要记忆为止;如果用户选择不记忆该单词,程序自动将该单词移除(即不再进行该单词的记忆)。直到用户将所有单词标记为不需要记忆,程序打印出祝贺信息。


功能分析

1:首先将总体功能的各个模块氛围几个函数

2:主函数main()用于从文件中读取单词和翻译,并询问用户是否对该单词进行记忆标记

3:定义一个函数remember_words(),显示一个单词,获取用户对该单词的释义

4:定义一个函数read_words(),用于从文件中读取单词和翻译,并打乱它的顺序,更利于用户对单词的记忆

程序实现

# 导入random模块,该模块提供各种随机数生成函数
import random


# 定义一个函数,它的作用是让用户记忆一个单词并接受用户的翻译输入,对比是否正确
def remember_word(word, translation):
    # 创建一个无限循环,直到用户输入的翻译与给定的翻译一致时跳出循环
    while True:
        # 通过input函数提示用户输入单词的翻译
        # user_input = input(f"What is {word}? ({translation}): ")
        user_input = input(f"what is {word}?(按p跳过该单词):")
        # 如果用户输入的翻译与给定的翻译一致,则打印鼓励信息并跳出循环
        if user_input == translation:
            print("Good job! You remembered the word!")
            break
        # 如果用户输入的翻译与给定的翻译不一致,则打印类似的信息并让用户再次尝试
        elif user_input == 'p':
            break
        else:
            print(f"Close, but not quite. Try again!")


# 定义一个函数,用于从文件中读取单词和翻译,并打乱它们的顺序
def read_words():
    # 使用with open语句打开"words.txt"文件,并以只读模式("r")读取内容
    with open("words.txt", "r" ,encoding='utf-8') as f:
        # 读取文件的每一行,去掉行尾的换行符(如果有的话),并将每一行分割成一个列表
        words = [line.strip().split(": ") for line in f]
        # 使用random模块的shuffle函数打乱单词和翻译的顺序,以便于记忆
        random.shuffle(words)  # 打乱单词顺序以便于记忆
    # 返回打乱顺序后的单词和翻译列表
    return words


# 定义主函数
def main():
    # 从文件中读取单词和翻译,并将它们保存在变量words中
    words = read_words()

    # 当单词列表非空时,执行以下操作
    while words:
        # 从words列表中随机选择一个单词和它的翻译
        word, translation = random.choice(words)
        # 打印当前要记忆的单词和它的翻译
        print(f"Current word: {word}, Translation: {translation}")
        # 提示用户是否要记忆这个单词,并接受用户的输入
        user_input = input("Do you want to remember this word? (yes/no): ")
        # 如果用户输入的是“yes”
        if user_input == "yes":
            # 调用remember_word函数,让用户尝试记忆这个单词,并等待用户的反馈
            remember_word(word, translation)
            # 从words列表中移除这个单词,表示用户已经成功记忆了这个单词
            if word in words:
                words.remove(word)  # 从列表中移除已经学会的单词
        # 如果用户输入的不是“yes”
        else:
            # 打印一条消息,告诉用户下一个单词即将出现,并进入下一个循环
            print("Okay, let's move on to the next word.")
    # 当所有的单词都被学习后,打印一条祝贺信息
    else:
        print("Congratulations! You have learned all the words!")


# 如果当前文件被作为主程序直接运行,而不是被导入到其他文件中使用,那么执行以下操作:
if __name__ == "__main__":
    # 调用main函数,开始背单词的游戏
    main()

运行结果

python实现一个简单的背单词程序_python案例


标签:翻译,word,python,程序,用户,单词,words,input,背单词
From: https://blog.51cto.com/u_15928170/7503972

相关文章

  • 在 Windows 系统下安装和使用 PyCharm:Python 开发的得力助手
    PyCharm是一款强大的Python集成开发环境(IDE),它提供了丰富的功能和工具,可帮助开发人员更轻松地编写、调试和管理Python项目。本博客将介绍如何在Windows系统下安装和使用PyCharm,以及一些基本的使用技巧。步骤1:下载PyCharm首先,让我们从JetBrains官网下载PyCharm的最新......
  • python04
    4.3布尔类型(bool)布尔类型中共有两个值:True/Falseprint(1>2)print(False)print(1==1)print(True)name=input("请输入你的用户名:")ifname=="alex":print("用户登录成功")else:print("用户登录失败")补充:1>21==3&quo......
  • Python-day10
    #函数defadd(a,b):c=a+breturncresult=add(10,20)print(result)res=add(a=11,b=22)print(res)deffun(arg1,arg2):print('arg1',arg1)print('arg2',arg2)arg1=100arg2.append(10)print('arg1',arg1......
  • 编译python扩展模块:-ltensorflow_framework
    参考:https://blog.csdn.net/u012947309/article/details/116736684  =======================================       =======================================......
  • 2021-11-14-MQTT的python应用
    layout:posttitle:MQTT的python应用categories:日志tags:-日志-大二BGImage:'https://github.xutongxin.me/https://raw.githubusercontent.com/xutongxin1/PictureBed/master/img0/20220310123346.png'jekyll-theme-WuK:musicid:'34367899......
  • 2020-8-18-python分应用调整音量
    layout:posttitle:python分应用调整音量categories:pythontag:pythonpython分应用调整音量注:本文为此文铺垫我在网上找了一圈又一圈,从中文到英文,都没有找到我想要的用python调整windows音量合成器的方式我知道可以用调dll的方式,但是我怎么会呢?最终我阴差阳错的找到了......
  • vim插件使用python编写+AXI非对齐传输如何发送+verdi配置搜索顺序+verible和verilator
    vim插件使用python编写虽然vim有自己的一套语法格式,但是学习成本放着呢,语言那么多,啥都学哪学的过来嘛。不过vim确实是支持python的,但是是python2,而不是python3,因此语法上的一些问题要兼容下。这个是官方手册,正确而可靠的部分。https://vimdoc.sourceforge.net/htmldoc/if_pyth......
  • Java环境配置及实战一个Java应用程序
    【前言】在开始编写Java应用程序之前,需要先进行Java环境的配置。本文将介绍如何配置Java环境,并展示一个简单的Java输出示例。读者可以通过本文了解如何正确配置Java环境以及编写并运行Java代码。【摘要】本文将展示如何配置Java环境,并编写一个简单的Java输出示例。通过该示例,读者......
  • 认识Java及实现第一个Java应用程序
    【前言】Java是一种广泛使用的高级编程语言,具有面向对象、跨平台等特性,被广泛应用于Web开发、移动应用开发、桌面应用程序等领域。本文将介绍一个简单的Java应用程序,并对其进行代码实现和总结。【摘要】本文将展示一个简单的Java应用程序,实现了一个输出"Hello,Java!"的示例。通过......
  • python语言基础与核心技巧知识点总结
    一、python语言基础python基础语言的详细操作演示1.1变量变量.png1.2数据类型数据类型.png1.3序列序列分类:可变序列list,不可变序列tuple、str。在python中,内建了6中序列:列表、元组、字符串、unicode字符串、buffer对象、xrange对象。(1)list列表list列表.png(2)tuple元祖tuple.png(......