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

Python初学者疑问:为何输出function generate对象而非指定数量随机数?

代码错误排查与修复

核心问题

  • 你在main的循环里写了print(generate),这是在打印函数对象本身,所以会输出类似function generate at 0x...的内存地址,而不是执行函数生成随机数。必须加括号generate()来调用函数。
  • 你的generate函数内部已经用print输出随机数,调用时直接写generate()就行,不需要额外套print;如果改成用return返回随机数,才需要在main里写print(generate())来输出结果。

修复后的代码

方案1(保留原generate的print逻辑)

import random
def generate():
    print(random.randint(-100, 100))
def main():
    howMany=int(input('How many random numbers do you want: '))
    for count in range(howMany):
        generate()  # 直接调用函数,不再用print包裹

main()

方案2(改用return返回随机数)

import random
def generate():
    return random.randint(-100, 100)  # 返回随机数,把输出逻辑放到main里
def main():
    howMany=int(input('How many random numbers do you want: '))
    for count in range(howMany):
        print(generate())  # 调用函数并打印返回值

main()

额外说明

你之前遇到的“缺少位置参数”提示,应该是修改函数时误加了参数但调用没传值导致的,当前版本的generate没有参数,只要正确加括号调用就不会有这个问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 04:50:22