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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 09:28:10