我只是一個初學者程序員,只是想問是否可以接受/良好的代碼混亂你的迭代器在for循環中。 示例(Python):亂七八糟在循環中的迭代
For i in range(n)
if _statement_:
i -= 1
...
我不是有一個問題或任何
,我的代碼似乎工作得很好,像這樣的,但我不知道這是否算作「好」的代碼。
我只是一個初學者程序員,只是想問是否可以接受/良好的代碼混亂你的迭代器在for循環中。 示例(Python):亂七八糟在循環中的迭代
For i in range(n)
if _statement_:
i -= 1
...
我不是有一個問題或任何
,我的代碼似乎工作得很好,像這樣的,但我不知道這是否算作「好」的代碼。
你不惹迭代 - 您只需創建一個同名的變量,並用它做什麼
>>> for a in range(5):
... print id(a)
... print a
... a -= 1
... print id(a)
... print
...
24822128
0
24822152
24822104
1
24822128
24822080
2
24822104
24822056
3
24822080
24822032
4
24822056
正如你可以看到這些都是不同變量和循環明顯迭代5次。
這是一個很好的做法嗎? 否。這是一種相反的東西,因爲人們應該期望在循環內部,「a」在每一行中都是相同的。如果你想實際影響重複循環的數量不應該使用while
循環相反,你應該有所不同命名您的變量,像
>>> for a in range(10):
... print a
... b = a - 1
。
您提供的代碼是可以接受的,但不是特別有效。您的循環將運行相同的次數,無論您是否修改i
。
>>> for i in range(5):
>>> i = i - 1
>>> print(i)
-1
0
1
2
3
當你修改變量i
,它會創建一個新的,從一個控制迴路分開。
我認爲修改你的迭代器的當前值是好的,並且只是一個新的變量。但我不會建議修改迭代器本身就像
my_list = [1, 2, 3, 4]
for i in my_list:
my_list.append(i+4)
會產生一個無限循環
它不會做任何事情,你的實際迭代,這隻會使'i'參考其他一些變量。也就是說,它仍然會運行n次,無論你將「i」設置爲等於 –
除了你有語法問題。 'range(n)'後面缺少':',對'if'塊缺少意圖 – Alexander