做一个背单词的脚本

Python 每日5词打卡脚本

每运行一次,弹出5个单词

每天5个,当天不变,用python写,print输出就行

Python 每日5词打卡脚本:当日固定5词,重启不重复

功能亮点

✅ 每次运行弹出5个单词,当日固定不变,次日自动更新

✅ 读取当前文件夹word.txt,一行一个单词(支持英文+音标+释义格式)

✅ 单词数量校验,不足5个自动提示,足够则循环取词不重复

✅ 代码简洁可直接复制,无多余依赖,开箱即用

核心代码(直接复制可用)

python 复制代码
import os
import datetime

# 配置项:可自定义每日单词数量
WORD_FILE = "word.txt"
DAILY_COUNT = 5  # 每日固定5个单词

def get_daily_words():
    # 1. 校验并读取单词文件
    if not os.path.exists(WORD_FILE):
        print(f"❌ 未找到{WORD_FILE},请在当前文件夹创建,一行一个单词")
        return []
    with open(WORD_FILE, "r", encoding="utf-8") as f:
        # 过滤空行,保留有效单词
        words = [line.strip() for line in f if line.strip()]
    # 校验单词数量
    if len(words) < DAILY_COUNT:
        print(f"❌ 单词数量不足{DAILY_COUNT}个,请补充word.txt")
        return []
    
    # 2. 按日期固定索引,确保当日单词不变
    # 日期转序数,取模保证索引不越界,次日自动切换
    today = datetime.date.today().toordinal()
    base_idx = today % len(words)
    
    # 3. 提取当日5个单词,超出单词总数自动循环
    daily_words = []
    for i in range(DAILY_COUNT):
        idx = (base_idx + i) % len(words)
        daily_words.append(words[idx])
    return daily_words

# 主执行入口:打印当日单词
if __name__ == "__main__":
    daily_words = get_daily_words()
    if daily_words:
        print(f"📅 今日单词({datetime.date.today()}):")
        for idx, word in enumerate(daily_words, 1):
            print(f"{idx}. {word}")

详细使用教程

1. 准备单词文件

  1. 在代码同一文件夹下,新建 word.txt 文件

  2. 单词格式:一行一个,支持纯单词/英文 音标 汉语意思 格式,无空行
    ✅ 示例格式(推荐编程学习用):

    复制代码
    variable /ˈveəriəbl/ 变量
    function /ˈfʌŋkʃn/ 函数
    class /klɑːs/ 类
    array /əˈreɪ/ 数组
    loop /luːp/ 循环

2. 运行脚本

  1. 直接运行Python文件,无需额外安装依赖
  2. 运行效果:自动输出当日5个单词,重复运行结果不变
  3. 次日打开自动切换新5个单词,无需手动修改代码

3. 注意事项

✅ word.txt需和代码放在同一文件夹,否则提示文件不存在

✅ 支持中文编码,无需担心音标、中文释义乱码

扩展用法(可选优化)

✨ 优化1:自定义每日单词数量

修改代码中 DAILY_COUNT = 5 数值即可,比如改为10则每日10词

✨ 优化2:适配多格式单词

当前脚本兼容任意单行格式,无需修改代码,直接用 英文/英文+释义/英文+音标+释义 均可

✨ 优化3:增加单词去重

若word.txt有重复单词,可在读取时增加去重逻辑,在words = [line.strip()...]后添加:

python 复制代码
words = list(set(words))  # 去重
复制代码
[版权所有:k846211](k846211)# Python 每日5词打卡脚本:当日固定5词,重启不重复
## 功能亮点
✅  每次运行弹出5个单词,当日固定不变,次日自动更新
✅  读取当前文件夹word.txt,一行一个单词(支持英文+音标+释义格式)
✅  单词数量校验,不足5个自动提示,足够则循环取词不重复
✅  代码简洁可直接复制,无多余依赖,开箱即用
✅  可搭配开机自启动使用,~/.bashrc
## 核心代码(直接复制可用)
```python
import os
import datetime

# 配置项:可自定义每日单词数量
WORD_FILE = "word.txt"
DAILY_COUNT = 5  # 每日固定5个单词

def get_daily_words():
    # 1. 校验并读取单词文件
    if not os.path.exists(WORD_FILE):
        print(f"❌ 未找到{WORD_FILE},请在当前文件夹创建,一行一个单词")
        return []
    with open(WORD_FILE, "r", encoding="utf-8") as f:
        # 过滤空行,保留有效单词
        words = [line.strip() for line in f if line.strip()]
    # 校验单词数量
    if len(words) < DAILY_COUNT:
        print(f"❌ 单词数量不足{DAILY_COUNT}个,请补充word.txt")
        return []
    
    # 2. 按日期固定索引,确保当日单词不变
    # 日期转序数,取模保证索引不越界,次日自动切换
    today = datetime.date.today().toordinal()
    base_idx = today % len(words)
    
    # 3. 提取当日5个单词,超出单词总数自动循环
    daily_words = []
    for i in range(DAILY_COUNT):
        idx = (base_idx + i) % len(words)
        daily_words.append(words[idx])
    return daily_words

# 主执行入口:打印当日单词
if __name__ == "__main__":
    daily_words = get_daily_words()
    if daily_words:
        print(f"📅 今日单词({datetime.date.today()}):")
        for idx, word in enumerate(daily_words, 1):
            print(f"{idx}. {word}")

详细使用教程

1. 准备单词文件

  1. 在代码同一文件夹下,新建 word.txt 文件

  2. 单词格式:一行一个,支持纯单词/英文 音标 汉语意思 格式,无空行
    ✅ 示例格式(推荐编程学习用):

    复制代码
    variable /ˈveəriəbl/ 变量
    function /ˈfʌŋkʃn/ 函数
    class /klɑːs/ 类
    array /əˈreɪ/ 数组
    loop /luːp/ 循环

2. 运行脚本

  1. 直接运行Python文件,无需额外安装依赖
  2. 运行效果:自动输出当日5个单词,重复运行结果不变
  3. 次日打开自动切换新5个单词,无需手动修改代码

3. 注意事项

✅ word.txt需和代码放在同一文件夹,否则提示文件不存在

✅ 支持中文编码,无需担心音标、中文释义乱码

扩展用法(可选优化)

✨ 优化1:自定义每日单词数量

修改代码中 DAILY_COUNT = 5 数值即可,比如改为10则每日10词

✨ 优化2:适配多格式单词

当前脚本兼容任意单行格式,无需修改代码,直接用 英文/英文+释义/英文+音标+释义 均可

✨ 优化3:增加单词去重

若word.txt有重复单词,可在读取时增加去重逻辑,在words = [line.strip()...]后添加:

python 复制代码
words = list(set(words))  # 去重
复制代码
[点我查看更多精彩内容:www.flydean.com](www.flydean.com):当日固定5词,重启不重复
## 功能亮点
✅  每次运行弹出5个单词,当日固定不变,次日自动更新
✅  读取当前文件夹word.txt,一行一个单词(支持英文+音标+释义格式)
✅  单词数量校验,不足5个自动提示,足够则循环取词不重复
✅  代码简洁可直接复制,无多余依赖,开箱即用
✅  可搭配开机自启动使用,~/.bashrc
## 核心代码(直接复制可用)
```python
import os
import datetime

# 配置项:可自定义每日单词数量
WORD_FILE = "word.txt"
DAILY_COUNT = 5  # 每日固定5个单词

def get_daily_words():
    # 1. 校验并读取单词文件
    if not os.path.exists(WORD_FILE):
        print(f"❌ 未找到{WORD_FILE},请在当前文件夹创建,一行一个单词")
        return []
    with open(WORD_FILE, "r", encoding="utf-8") as f:
        # 过滤空行,保留有效单词
        words = [line.strip() for line in f if line.strip()]
    # 校验单词数量
    if len(words) < DAILY_COUNT:
        print(f"❌ 单词数量不足{DAILY_COUNT}个,请补充word.txt")
        return []
    
    # 2. 按日期固定索引,确保当日单词不变
    # 日期转序数,取模保证索引不越界,次日自动切换
    today = datetime.date.today().toordinal()
    base_idx = today % len(words)
    
    # 3. 提取当日5个单词,超出单词总数自动循环
    daily_words = []
    for i in range(DAILY_COUNT):
        idx = (base_idx + i) % len(words)
        daily_words.append(words[idx])
    return daily_words

# 主执行入口:打印当日单词
if __name__ == "__main__":
    daily_words = get_daily_words()
    if daily_words:
        print(f"📅 今日单词({datetime.date.today()}):")
        for idx, word in enumerate(daily_words, 1):
            print(f"{idx}. {word}")

详细使用教程

1. 准备单词文件

  1. 在代码同一文件夹下,新建 word.txt 文件

  2. 单词格式:一行一个,支持纯单词/英文 音标 汉语意思 格式,无空行
    ✅ 示例格式(推荐编程学习用):

    复制代码
    variable /ˈveəriəbl/ 变量
    function /ˈfʌŋkʃn/ 函数
    class /klɑːs/ 类
    array /əˈreɪ/ 数组
    loop /luːp/ 循环

2. 运行脚本

  1. 直接运行Python文件,无需额外安装依赖
  2. 运行效果:自动输出当日5个单词,重复运行结果不变
  3. 次日打开自动切换新5个单词,无需手动修改代码

3. 注意事项

✅ word.txt需和代码放在同一文件夹,否则提示文件不存在

✅ 支持中文编码,无需担心音标、中文释义乱码

扩展用法(可选优化)

✨ 优化1:自定义每日单词数量

修改代码中 DAILY_COUNT = 5 数值即可,比如改为10则每日10词

✨ 优化2:适配多格式单词

当前脚本兼容任意单行格式,无需修改代码,直接用 英文/英文+释义/英文+音标+释义 均可

✨ 优化3:增加单词去重

若word.txt有重复单词,可在读取时增加去重逻辑,在words = [line.strip()...]后添加:

python 复制代码
words = list(set(words))  # 去重
复制代码
[点我查看更多精彩内容:www.flydean.com](www.flydean.com)
相关推荐
guodingdingh1 小时前
软件开发工作问题总结0718
java·开发语言·数据库
GuWenyue3 小时前
Cursor黑盒拆解!1套LangChain.js手写Mini编程Agent,自动生成React项目,效率提升60%
前端·数据库·人工智能
Miao121315 小时前
某海外住宿平台如何在大规模场景下实现指标一致性:Minerva 指标平台实践
大数据·数据库·人工智能
CodexDave5 小时前
MySQL事务隔离级别与MVCC机制解析
前端·数据库·mysql·nginx·性能优化·负载均衡
碎光拾影5 小时前
ARM交叉工具链各工具作用及IMX6ULL平台LED+蜂鸣器裸机程序实现
java·开发语言·数据库
曾阿伦5 小时前
MongoDB 查询语句备忘手册
数据库·mongodb
一叶龙洲5 小时前
wslg打开Ubuntu24.04默认打开图形界面
linux·服务器·数据库·ubuntu
CCPC不拿奖不改名5 小时前
大模型推理架构与开源生态知识整理
数据库·windows·python·架构·langchain·开源·github
爬也要爬着前进7 小时前
redis主从搭建
数据库·redis·缓存
@Mike@7 小时前
02-数据库学习笔记(SQL引擎)
数据库·笔记·学习