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

Python中lcg函数内部打印与返回值打印结果不一致的问题求助

问题原因与修复方案

你的lcg函数当前只返回循环最后一次计算的LCG值,所以赋值给tes5后只能得到最后一个结果3。而函数内部的print是在循环里每次输出当前值,所以能打印完整序列。

要获取完整的生成序列,需要把每次计算的结果存储起来,最后返回整个集合:

def lcg(n, m):
    a = 11
    c = 5
    dec = n
    m = m * 4
    # 初始化列表存储所有生成的LCG值
    result_list = []
    for i in range(0, m):
        LCG = ((a * dec) + c) % m 
        print(LCG, end=' ')
        result_list.append(LCG)  # 将每次的结果加入列表
        dec = LCG
        
    return result_list  # 返回整个列表

tes5 = lcg(3, 4)
print("\n")  # 换行区分函数内的打印和后续输出
print(tes5)
# 输出:[6, 7, 2, 11, 14, 15, 10, 3, 6, 7, 2, 11, 14, 15, 10, 3]

修改说明:

  • 新增result_list列表,用来保存循环中每一次生成的LCG值
  • 循环内每次计算完LCG后,用append把值加入列表
  • 函数最后返回整个列表,而不是单个的LCG变量
  • 调用后tes5就会存储完整的生成序列,打印时就能看到所有结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 12:46:58