功能需求

给定一个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实现一个简单的背单词程序_随机数