#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
。
有人可以向初学者解释我做错了吗?
答案 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
变量。