我是一名初學者程序員,我決定編寫一個簡單的程序來獲取數字中的主要因素,然後將其打印出來,但是我在打印最終結果時遇到了麻煩。這裏是代碼:爲什麼for循環迭代(看似)空列表?
n = int(raw_input("Number?: "))
m = n
k = 2
czynniki = []
while(m != 1):
if m%k == 0:
czynniki.append(k)
print m, "\t", '|', k
m = m/k
else:
k+=1
print m
print n, ' = ',
for czynnik in czynniki:
if czynniki.count(czynnik)>1:
print czynnik, '^', czynniki.count(czynnik), ' *',
czynniki = filter(lambda x: x!=czynnik, czynniki)
else:
print czynnik, ' *',
一切都沒關係,直到最後。例如,當輸入1025時,我希望它打印「1025 = 5^2 * 41」,但相反,它會打印「1025 = 5^2 * 5 * 41」,就好像過濾功能完全沒有影響一樣。錯誤在哪裏?
啊,我明白了。你的代碼工作,謝謝! –