我剛剛開始學習python,並不斷得到一個我無法弄清楚的錯誤。任何幫助將大規模讚賞。基本上,我不斷收到以下錯誤:令人討厭的持續性錯誤與Python:初學者
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
我看到很多人有同樣的問題,但是當我在看什麼人告訴他們這樣做,我不能弄明白。無論如何,我的代碼是這樣的。我已經重新檢查了所有縮進,並且看不到它的問題。這個程序的目的是找到一個整數的主要因素(儘管它只完成了90%)。它是用Python 2.7.3編寫的。
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
在此先感謝您的幫助,
山姆
我希望它是一個變量,以便循環繼續前進,除非在阻止它的方法內部滿足條件。 –
@SamHeather:正確的做法是使用'while True:'創建一個無限循環,然後當條件滿足時,使用'break'結束循環。 –