如何实现每次执行唯一随机函数?优化随机单词输入脚本
如何修改脚本实现每次执行唯一的随机单词输出?
嘿,我看了你当前的代码,想要实现每次执行一个唯一的函数(也就是三个单词各输出一次,随机不重复的顺序)对吧?其实可以通过简化冗余代码+随机打乱执行顺序来实现,咱们一步步来改:
先梳理下优化方向
- 你现在每个函数里的键盘控制、回车、等待逻辑都是重复的,完全可以封装成一个通用函数,减少代码冗余
- 把要输出的单词放到列表里,用随机打乱的方式保证每个单词只输出一次,顺序随机
修改后的完整代码
import pynput import random import time from pynput.keyboard import Key, Controller # 封装通用的输入+回车+等待逻辑 def type_word(word): keyboard = Controller() keyboard.type(word) keyboard.press(Key.enter) keyboard.release(Key.enter) # 记得释放按键,避免异常 time.sleep(random.randint(1, 2)) if __name__ == "__main__": # 定义所有要输出的单词 word_list = ['hi', 'hello', 'world'] # 随机打乱列表顺序,保证每个单词只执行一次 random.shuffle(word_list) # 遍历打乱后的列表,逐个执行 for word in word_list: type_word(word)
关键点解释
- 通用函数
type_word:把原本重复的键盘操作、回车、等待逻辑都抽出来,传入要输出的单词就能完成所有操作,以后要加新单词只需要在列表里加,不用写新函数 - 随机打乱列表:
random.shuffle()会直接修改原列表的顺序,保证每次运行的输出顺序都是随机且不重复的,比如可能输出hello → world → hi或者world → hi → hello - 释放按键:之前的代码里只调用了
keyboard.press(Key.enter),最好加上keyboard.release(Key.enter),避免出现按键一直被按住的异常情况
这样修改后,就能完美实现你想要的「每次执行唯一函数,输出随机不重复的单词」的需求啦~
内容的提问来源于stack exchange,提问作者Rayr
相关产品推荐
相关产品推荐

