<p>我刚刚开始学习python,不断地遇到一个我无法理解的错误。任何帮助都将不胜感激。基本上,我一直得到以下错误:</p>
<pre><code>Enter an int: 8
Traceback (most recent call last):
File "C:\Users\Samuel\Documents\Python Stuff\Find Prime Factors of Number.py", line 16, in <module>
once_cycle()
File "C:\Users\Samuel\Documents\Python Stuff\Find Prime Factors of Number.py", line 8, in once_cycle
while x==0:
UnboundLocalError: local variable 'x' referenced before assignment
</code></pre>
<p>我看到很多人都有同样的问题,但当我看到人们告诉他们做什么,我就想不出来了。不管怎样,我的代码是这样的。我重新检查了所有的压痕,看不出有什么问题。这个程序的目的是找出整数的素因子(尽管它只完成了90%)。它是用python2.7.3编写的。你知道吗</p>
<pre><code>import math
testedInt = float(raw_input("Enter an int: "))
workingInt = testedInt
x = 0
def once_cycle():
for dividor in range(1, int(math.floor(math.sqrt(testedInt))+1)):
while x==0:
print "Called"
if (workingInt%dividor == 0):
workingInt = workingInt/dividor
x = 1
if (workingInt > 1):
once_cycle()
return
once_cycle()
print workingInt
</code></pre>
<p>提前谢谢你的帮助</p>
<p>山姆</p>
<p>您需要在<code>one_cycle()</code>内声明全局变量<code>x</code>、<code>testedInt</code>和<code>workingInt</code>,以便在那里访问它们:</p>
<pre><code>def once_cycle():
global x
global testedInt
global workingInt
</code></pre>