我想知道是否有可能改變它的for循環中的迭代器的值?如何在Python中循環中更改for-loop迭代器變量?
例如,我想編寫一個程序來計算下面的方法的一些主要因素:
def primeFactors(number):
for i in range(2,number+1):
if (number%i==0)
print(i,end=',')
number=number/i
i=i-1 #to check that factor again!
我的問題:是否有可能改變最後兩行的方式,當我改變i
和number
在if
塊中,它們的值在for
循環中變化!
更新:將迭代器定義爲global
變量,可以幫助我嗎?爲什麼?
我希望有人會用代碼回答你說你想做的事,但簡短的回答是「不」 ......當你改變'number'的值在這裏不會改變這個值:'range(2,number + 1)',因爲這是一個表達式,它已經被評估並且返回了一個正在循環的數字列表 – Anentropic 2014-09-26 17:07:04
不是,不是與你在這裏寫的東西。有辦法,但至少可以說很棘手。 – mgilson 2014-09-26 17:07:39
改爲使用while循環。 (Uglier,但適用於你正在嘗試做的工作)。 – vanza 2014-09-26 17:08:12