2017-03-15 152 views
-7

我有一個for在C++中,我想用python編寫它,但我不知道如何處理for中的條件。誰能幫我 ?如何在python中編寫for循環

for (int b = (i - a)/2; a + b <= i; b++); 
+11

是[Internet斷](https://www.google.co.uk/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=python+for+loop&*)? – EdChum

+1

大家知道,軟件工程的一半不是編程能力,而是研究和閱讀文檔的能力。這本身就是一種技巧! –

+0

給出分號在行尾,最簡單的Python等價物是'pass'。 – Duncan

回答

0

終止條件a + b <= i相當於b <= i - a,反過來(如Python for使用小於或等於)將是b < i - a + 1

這意味着在Python你可以寫:

for b in range((i - a)/2, i - a + 1): 
    ... 

但很多時候你不希望從C/C++轉換到Python時,寫這樣的像。你可能會更好地重構代碼。

+0

是的,這是有效的。謝謝 :) – AzHK

0

直接回答你的問題:

for b in range((i-a)/2,a+b-1): 
    print (b) 

如果由於某種原因,你需要一個結尾值:

terminatingValue = 0 
for b in range((i-a)/2,a+b-1): 
    terminatingValue = b 
    print (b) 
+0

b在c代碼中的for語句中定義,它之前沒有定義,所以這不會作爲翻譯工作 – Kewl

+1

更新的代碼... – Neil

+0

這仍然無效:終止值取決於循環指數。 – Prune

0

使用while

a=something 
i=something 
b=(i-a)/2 
while(a+b<=i): 
    ###do whatever you want in the loop### 
    b+=1 
+0

當然,while循環可能適合這種情況,但是你沒有回答他的問題:「如何在python中編寫循環」 –

0

你可以使用for循環d range()功能。例如:

for i in range(15): 
    #code to execute 15 times 

然而,因爲你的代碼,我推薦使用while循環,而不是:

i = 1 #your value for i 
b = (i-a)/2 
while a+b <= i: 
    # Other code 
    b+=1 
0

你的困惑源於過度一般性ç的迭代構建的。 Python堅持所有循環參數都隱式引用循環索引。對於終止條件,解決b,和方面的不平等不平等:b <我 - 一個+ 1

現在我們得到循環

for b in range((i-a)/2, (i-a)+1): 

一解釋是你有一個範圍從0到ia,並且你想要處理上半部分。