首页 > 解决方案 > 为什么在赋值之前引用局部变量'x'虽然我在赋值后使用它

问题描述

在下面的代码中,我编写了这段代码来查找特定范围内的素数集。

我得到的输出为:

local variable 'x' referenced before assignment 

(注意:我使用的是 Jupiter notebook)。我经常遇到同样的错误。

def prime_list(*args):
    limit=args[0]
    primelist=[]
    for y in range (0,limit):
        factor=0
        for x in range(1,y+1):
            if(y%x)==0:
                #print("entered in to modulo loop")
                factor=factor+1
        if(factor<=2):
            #print("{} is prime number".format(y))
            primelist.append(x)
    return primelist
prime_list(10)

标签: python

解决方案


您应该y插入primelist

def prime_list(*args):
    limit=args[0]
    primelist=[]
    for y in range (0,limit):
        factor=0
        for x in range(1,y+1):
            if(y%x)==0:
                #print("entered in to modulo loop")
                factor=factor+1
        if(factor<=2):
            #print("{} is prime number".format(y))
            primelist.append(y)
    return primelist

prime_list(10)

输出:

[0, 1, 2, 3, 5, 7]

推荐阅读