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

Python中random.randint变量置于for循环内外的差异及原理疑问

为什么循环内外定义随机变量结果不同?

核心原因很简单:random.randint(0,1)是调用一次就生成一个固定随机数,变量c存的是这个生成后的具体值,不是“随时生成随机数的指令”。

  • 当你把c=random.randint(0,1)放在循环外时:
    程序只在一开始执行一次随机数生成,把得到的0或1存在c里。之后循环的10次,只是反复打印这个已经固定下来的c值,自然输出10个相同的数字。
    对应代码:

    import random
    c = random.randint(0,1)  # 仅生成一次随机数,c值固定
    for _ in range(10):
        print(c)
    
  • 当你把c=random.randint(0,1)移到循环内时:
    每一次循环都会重新执行这条语句,也就是每一轮都调用一次随机数生成函数,得到一个新的随机值存在c里,所以10次输出的是10个独立的随机数(可能有重复,但整体是随机分布的)。
    对应代码:

    import random
    for _ in range(10):
        c = random.randint(0,1)  # 每次循环都生成新的随机数
        print(c)
    

说白了,变量存的是函数执行后的结果,不是函数本身。如果想每次获取新的随机数,就得每次都主动调用random.randint(),而不是只调用一次把结果存起来反复用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 12:55:21