python - 为什么在赋值之前引用局部变量'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)
解决方案
您应该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]
推荐阅读
- compiler-errors - 不稳定的混音编译器错误“编译期间出现未知异常”
- python - 在 Python 中按属性的自定义顺序保存 XML
- java - 如何从 url 获取视频文件的大小?
- ios - iOS CAKeyframeAnimation 内存问题
- encoding - LibXML xmlTextReaderReadString 编码
- playframework-2.6 - Swagger 与 play 2.6 java 的集成
- android - 来自 Google Play for My React Native 应用程序的呼叫/短信许可最终警告电子邮件
- express - 如何修复节点中的“req.files print null issue”并表达
- ios - ionic build ios 抛出 promise Rejection 错误
- android - Androidx 迁移:程序类型已经存在 androidx.concurrent.futures.DirectExecutor