You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何自定义随机函数,设置单词打印间隔4次后才可重复输出?

实现带锁定期的随机单词输出

修改后的完整代码

import random
import tkinter as tk
from tkinter import ttk

root = tk.Tk()
root.geometry('300x200')

# 初始化单词列表和锁定期跟踪字典
word_list = ("Word A1", "Word A2", "Word A3", "Word A4", "Word A5", "Word A6", "Word A7", "Word A8")
lock_tracker = {word: 0 for word in word_list}

def func():
    global lock_tracker
    # 过滤掉仍在锁定期的单词
    available_words = [word for word in word_list if lock_tracker[word] == 0]
    # 随机选择可用单词
    selected_word = random.choice(available_words)
    # 打印输出
    print("NEW")
    print(selected_word)
    print(" ")
    # 更新锁定期:选中单词设为4次锁定期,其余单词锁定期减1(最小为0)
    lock_tracker = {word: (4 if word == selected_word else max(lock_tracker[word] - 1, 0)) for word in word_list}

button = ttk.Button(root, text='Random', command=func)
button.place(x=10, y=10)

root.mainloop()

关键逻辑说明

  • 锁定期跟踪:用lock_tracker字典记录每个单词的剩余锁定期,初始值全为0(无锁定状态)。
  • 可选单词过滤:每次点击按钮时,仅从锁定期为0的单词中随机选取,确保刚输出的单词在后续4次点击中不会被重复选中。
  • 锁定期更新:选中目标单词后,将它的锁定期设为4;其余所有单词的锁定期减1(但不会低于0),经过4次点击后,该单词的锁定期会归零,重新回到可选列表。
  • 修正原代码问题:原代码中a_random = print(random.choice(a))逻辑错误,print()函数返回None,现在改为先选中单词再打印,保证变量赋值和输出逻辑正确。

内容的提问来源于stack exchange,提问作者Evangelos Dellas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 21:15:03