做一个背单词的脚本

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)
相关推荐
我科绝伦(Huanhuan Zhou)9 小时前
DM数据库物理存储结构深度解析与理论实践
数据库·oracle
霖霖总总9 小时前
[小技巧23]全面理解 MySQL 的 WAL 机制:原理、影响与可观测性
数据库·mysql
列御寇9 小时前
MongoDB分片集概述
数据库·mongodb
REDcker9 小时前
AIGCJson 库解析行为与异常处理指南
c++·json·aigc·c
寻星探路9 小时前
【Python 全栈测开之路】Python 基础语法精讲(一):常量、变量与运算符
java·开发语言·c++·python·http·ai·c#
ohoy9 小时前
RedisTemplate 使用之List
数据结构·windows·list
又是忙碌的一天9 小时前
SpringMVC响应
java·服务器·数据库
W001hhh9 小时前
260110
java·数据库
L Jiawen10 小时前
【Windows 系统】Chrome浏览器退出登录状态失效
前端·chrome·windows