亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我必須在 while 循環中使用另一個“循環”變量放置一個變量

為什么我必須在 while 循環中使用另一個“循環”變量放置一個變量

ITMISS 2023-03-08 10:08:38
這是我的代碼:import numpy as npi=0liste=[2004, 2008, 2012, 2016, 2020, 2024, 2028, 2032, 2036, 2040, 2044, 2048, 2052, 2056, 2060, 2064, 2068, 2072, 2076, 2080, 2084, 2088, 2092, 2096]liste2=[]while i<24:    b=liste[i] +1    liste2.append(b)    i=i+1print(liste2)所以我試圖創建一個與第一個列表值相同的列表加 1,所以如果第一個列表是 [201,206,207],我希望第二個列表是 [202,207,208]。我試圖將變量 b 放在 while 之外,但它不起作用,所以即使我找到了解決方案,我也不明白為什么它會那樣工作。你能解釋一下嗎?謝謝你的時間。
查看完整描述

3 回答

?
繁華開滿天機

TA貢獻1816條經驗 獲得超4個贊

只要條件為真,while 循環就會執行一組語句。您正在使b等于第一個列表中的(element +1) No i 。因此,您必須將它保留在語句內,因為如果您將它保留在語句外,它將不會是i的迭代。



查看完整回答
反對 回復 2023-03-08
?
蝴蝶刀刀

TA貢獻1801條經驗 獲得超8個贊

首先,如果你把變量b放在循環之上,在你的例子中,python只根據i的值設置b變量一次。在 while 循環期間,您更改i變量但不重寫b,因為它超出范圍。更簡單的例子:


lst = [0, 1, 2, 3, 4]

n = len(lst)  # n=5

i = 0

b1 = lst[i]

while i < n:

    b2 = lst[i]

    print(f'Loop {i+1}: b1={b1} | b2={b2}')

    i += 1

輸出:


Loop 1: b1=0 | b2=0

Loop 2: b1=0 | b2=1

Loop 3: b1=0 | b2=2

Loop 4: b1=0 | b2=3

Loop 5: b1=0 | b2=4

其次,對于您的任務,您應該使用所謂的“列表理解”——它們更緊湊且易于閱讀。此外,在您的代碼中您不使用 numpy 模塊,因此無需導入它。


lst = [0, 1, 2, 3, 4]

lst_2 = [i+1 for i in lst]

print(lst_2)

輸出:


[1, 2, 3, 4, 5]


查看完整回答
反對 回復 2023-03-08
?
哆啦的時光機

TA貢獻1779條經驗 獲得超6個贊

好吧,如果你不這樣做,它將永遠運行,但你也可以使用這樣的“for”循環:


import numpy as np

liste=[2004, 2008, 2012, 2016, 2020, 2024, 2028, 2032, 2036, 2040, 2044, 2048, 2052, 2056, 2060, 

2064, 2068, 2072, 2076, 2080, 2084, 2088, 2092, 2096]

liste2=[]

for _ in range(24):

    b=liste[i] +1

    liste2.append(b)

print(liste2)


查看完整回答
反對 回復 2023-03-08
  • 3 回答
  • 0 關注
  • 152 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號