python总和随机整数

时间:2015-09-21 14:19:20

标签: python python-3.x

#Use main and a void function named randnums.
#randnums takes no arguments and return none.
#The randnums function generates 6 random integers between 1 and 9.
#The total should be printed on a new line.
#Main should call the randnums function.

import random
total=0

def main():
    randnums()

def randnums():
    for nums in range(6):
        nums=random.randrange(1,10)
        total=total+nums
        print(nums,end=' ')
    print("\nThe total is:",total)

main()

我一直在:

  

本地变量'总计'在分配前引用

total=nums时,它仅显示最后生成的int

有人可以向初学者解释我做错了吗?

2 个答案:

答案 0 :(得分:2)

当您为函数内部的变量赋值时,Python会将其解释为该函数的局部变量。所以当你这样做时 -

total=total+nums

在实际定义之前,您实际上是在尝试访问本地变量total

根据您的程序,看起来您不需要total作为全局变量,您可以在randnums()的开头简单地将其定义为0。示例 -

def randnums():
    total = 0
    for nums in range(6):

答案 1 :(得分:1)

由于范围可变,您面临问题。

total=total+nums

请注意,本地范围内的行总计不存在,但您尝试获取它的值,然后添加一些num,这是导致错误的原因。

如果您真的想使用它,请按以下方式使用它:

global total
total=total+nums

因此,它识别全局total变量。