2016-02-17 29 views
-1

我想創建一個for循環等價物:Python:如何爲幾何級數創建循環的C類型?

for (int i = n; i > 0; i = i/2){ 
    //do Something 
} 

通知的i = i/2

是否有一種開箱即用的Python方式在for中執行此操作而無需創建自定義生成器?使用xrange似乎只支持(+/-)步值,而不是除法。

+3

您是否嘗試搜索Python for循環語法? https://wiki.python.org/moin/ForLoop –

+0

此外,這是一個無限循環,因爲'i> 0'總是如此,因爲除非是整數除法,否則總是除以2 –

+0

@ cricket_007。 – bereal

回答

1

整數除法版本讓n = 8。停止在n = 0

while i > 0: 
    print("do something") 
    n = n >> 1 # shift right, divide by 2 

浮點除法讓n = 8.0。暫停在n = 5*10^(-324)

while i > 0: 
    print("do something") 
    n /= 2.0 
1
i = n 
while int(i) > 0: 
    i = i/2 
    # do something 
+0

或'I> 0:i = int(i/2) – Juan

1

爲什麼不一樣的東西:

i = n 
while i > 0: 
    #do something 
    i /= 2