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
相关产品推荐
相关产品推荐

