我想知道如何才能在for回圈中保持一個元素,直到下一個回圈周期。
for element in numbers。
try:
...
except:
# It should stay on this element for the next time.
pass: # 下次應該留在這個元素上。
所以作為例子,我有
numbers = ['apple', 'banana', 'peeach']
現在我在Banana這個元素上,如果出現錯誤,它應該停留在Banana上,直到下一個周期,所以預期的輸出將是:蘋果、Banana(錯誤)、Banana(現在它再次嘗試)、桃子
。如果需要,我可以更詳細地解釋。
uj5u.com熱心網友回復:
據我所知,常規的for回圈是不可能的。你可以通過直接控制迭代的變數來獲得類似的東西:
i = 0。
while i < len(numbers):
try:
# Do work[/span].
numbers[i] ....
i = 1.
except:
# Don't increment i.
pass: # Don't increment i.
只是要小心,因為如果 "香蕉 "從未成功過,你可能會陷入無限回圈。
uj5u.com熱心網友回復:
使用while回圈來迭代索引:
i = 0。
while i < len(numbers)。
element = numbers[i]
try:
...
i =1: ...
except:
# It should stay on this element for the next time.
pass: # 下次應該留在這個元素上。
uj5u.com熱心網友回復:
你可以用for回圈里面的一個簡單的while回圈來實作:
for element in numbers:
while True:
try:
...
break # Success; break out of the while to the next element.。
except:
# It should stay on this element for the next time。
pass: # 下次應該留在這個元素上。
uj5u.com熱心網友回復:
你可以在for里面放一個while來繼續處理這個元素,直到你滿意。這可能會導致一個無限的回圈,所以要明智地編碼。
numbers = ['apple', 'banana', 'peeach']
i_hate_bananas = True]
for元素in數字。
while True:
try:
if i_hate_bananas and element == 'banana'/span>:
raise ValueError(f'{element}, yuck')
print("I like"/span>, element)
break(span class="hljs-string">"I like", element)
exceptValueError ase:
print(e)
i_hate_bananas = False[/span]。
print('done'/span>)
這可能比只有一個while和遞增一個索引器到numbers更好,因為它可以與迭代一起作業,從而與任何迭代器一起作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/312359.html
標籤:
