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

如何每次调用函数时用random.choice()生成新结果并赋值给worrd变量

解决方案

你当前的问题是worrd变量仅在程序启动时被赋值一次,导致每次调用start()函数都使用同一个旧值。要实现每次调用函数都生成新的随机文本,有两种直接的解决方式:

方法1:在start()函数内重新生成随机词(推荐)

将随机选择的逻辑移到start()函数内部,这样每次调用该函数时都会重新执行随机选择操作:

import random
colours = ["red","yellow","orange","green","blue","purple","grey"]
words = ["red","yellow","orange","green","blue","purple","grey"]

def get():
 print(ent.get())

def start():
 print("started")
 lab.pack_forget()
 sta.pack_forget()
 opt.pack(padx=5,pady=4)
 ent.pack(padx=5,pady=9)
 acc.pack(padx=7,pady=9)
 # 每次调用start时重新生成随机词
 worrd = random.choice(words)
 opt.config(text=worrd,fg=random.choice(colours))

方法2:使用全局变量(需跨函数使用worrd时)

如果worrd需要在start()之外的其他函数中使用,可以声明其为全局变量,然后在函数内重新赋值:

import random
colours = ["red","yellow","orange","green","blue","purple","grey"]
words = ["red","yellow","orange","green","blue","purple","grey"]
worrd = random.choice(words)  # 可设置初始值,也可以省略

def get():
 print(ent.get())

def start():
 global worrd  # 声明使用全局作用域的worrd变量
 print("started")
 lab.pack_forget()
 sta.pack_forget()
 opt.pack(padx=5,pady=4)
 ent.pack(padx=5,pady=9)
 acc.pack(padx=7,pady=9)
 worrd = random.choice(words)  # 重新赋值新的随机词
 opt.config(text=worrd,fg=random.choice(colours))

注:你的代码中words是列表而非字典,若实际需求是从字典中选取内容,可调整为random.choice(list(your_dict.keys()))或random.choice(list(your_dict.values())),根据需要选取键或值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 18:51:19