我需要制定一個迭代序列,該序列遵循以下輸出模式:
我需要制定一個迭代序列。
0
1
2
3 3
4 4
5 5
6 6
6 6
7 7
8 8
然而,我迄今為止的嘗試產生了一個回傳到迭代的輸出,而不是回傳到邏輯排序:
for i in range(10)。
if i==7:
i=i-1.
print(i)
0
1 (i)
2 2
3 3
4 4
5 5
6 6
6 6
8 8
9 9
我覺得我好像忽略了一些非常簡單的東西,或者說是一個明顯的語法錯誤?
uj5u.com熱心網友回復:
這樣就更簡單了
for i in range(9)。
if i==7:
temp=i-1.
print(temp)
print(i)
你的代碼正在導致你的i值被過度寫入。
uj5u.com熱心網友回復:
也許你可以試試這樣的方法:
def print_with_condition(limit, condition)。
for i in range(limit)。
if condition(i):
print(i)
print(i)
print_with_condition(9, lambda x: x == 6)
上面的代碼會產生這樣的結果:
0
1
2
3 3
4 4
5 5
6 6
6 6
7 7
8 8
編輯1
。如果你想要一個更簡單的方法:
for i in range(10)。
if i != 9:
if i == 6:
print(i)
print(i)
uj5u.com熱心網友回復:
最后一個數字沒有被考慮在內。你需要寫for i in range(9)
uj5u.com熱心網友回復:
在你的for回圈中,當i=7時,我們暫時讓i=6并列印它。但是for回圈已經運行到了i=7的狀態,因此在下一次迭代中,由于for回圈的行為,'i'將是8,這就解釋了你的輸出。你可以通過在i=7時的每一次迭代中列印i-1來實作你想要的輸出。
代碼:
for i in range(10):
if i>=7:
print(i-1)
else:
print(i)
輸出:
0.
1
2
3 3
4 4
5 5
6 6
6 6
7 7
8 8
uj5u.com熱心網友回復:
只需在你的代碼中修改幾行(在if塊內添加print),就可以得到想要的結果:
for i in range(9)。
if(i == 7)。
print (i-1)
print (i)
或者,如果你仍然想迭代到range(10),這就是代碼:
for i in range(10)。
if (i >=7)。
print (i-1)
else:
print (i)
輸出:
0.
1
2
3 3
4 4
5 5
6 6
6 6
7 7
8 8
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/328905.html
標籤:
