Python中调用外部骰子脚本时如何让每次输出不同随机值?
Python中调用外部骰子脚本时如何让每次输出不同随机值?
嗨,我来帮你搞定这个问题~
首先咱们得先弄明白你当前代码为啥不行:你在d6.py里直接定义了一个d6变量,并且给它赋值了一个随机数。但Python有个特点——导入模块的时候,模块里的顶级代码只会执行一次。也就是说,当你从d6导入内容到diceroller.py时,这个d6变量就已经固定成某个随机数了,后面再打印它多少次,都是同一个值。
那怎么改呢?核心思路是把生成随机数的逻辑变成可重复调用的函数,而不是一次性的变量。具体改法分两步:
- 第一步,修改你的
d6.py,把随机数生成逻辑包装成函数:
import random def roll_d6(): return random.randint(1, 6)
这样每次调用这个roll_d6()函数,它都会重新跑一遍random.randint(1,6),生成新的随机数。
- 第二步,在
diceroller.py里导入这个函数,然后每次打印的时候调用它:
from d6 import roll_d6 print(roll_d6()) print(roll_d6())
现在你再运行这个脚本,两次打印就会输出不同的骰子点数啦!
另外给你补个小知识点,方便你以后搜索类似问题:你遇到的这个问题,本质是模块级代码的执行时机和函数调用的执行逻辑的区别。记住这个,以后搜问题就有精准的关键词啦~
备注:内容来源于stack exchange,提问作者skrapsan
相关产品推荐
相关产品推荐

