while 布林值: 若布林值為True, 執行命令 回到上方,做下一次的回圈判斷 # 直到布林值為false才會離開迴圈 n = 1 while n < 5: print("變數n的資料是:", n) n+=1 for 變數名稱 in 列表或字串: 將列表中的項目或字串中的字元 逐一取出、逐一處理 for x in [4,1,2]: print("逐一取得列表中的資料", x) for c in "Hello": print("逐一取得字串中的字元", c) # 製造出連續數字的列表 for 變數名稱 in range(3): 相當於 for 變數名稱 in [0,1,2]: # 包含開頭不包含結束 for 變數名稱 in range(3,6): 相當於 for 變數名稱 in [3,4,5]: # while迴圈 # 這個不要執行,是無限迴圈,電腦會當機=..= n = 1 while True: print(n) n+=1 n = 1 while n>> 1 >>> 2 >>> 3 # 1+2+3+...+10 n = 1 sum = 0 while n >> 3 >>> 5 >>> 1 for x in "Hello": print(x) >>> H >>> e >>> l >>> l >>> o for x in range(5): print(x) >>> 0 >>> 1 >>> 2 >>> 3 >>> 4 for x in range(5,10): print(x) >>> 5 >>> 6 >>> 7 >>> 8 >>> 9 # 1+2+3...+10 for x in range(1,11): sum = sum + x print(sum)
抱歉四年後的現在才來問問題,因為最近才開始學寫程式~發現這個很詳細的好頻道真的是太感激了~ 這邊想請教,如果把sum = sum + n 和 n += 1順序交換,變成: n += 1 sum = sum + n的話, 結果會變成65,因為我不懂為什麼,所以用最笨的方式一條一條列出來將數值代入,為節省時間,我把程式改為while n
@baga4872 жыл бұрын
應該是因為程式語言是一行一行執行的 在第五步時while迴圈已經先判斷n是否大於等於5,而因為n剛好為5所以再繼續執行n += 1的步驟及後續sum = sum + n,所以會導致最後的sum = 20
@juliajulia33342 жыл бұрын
@@baga487 但是第五步 n += 1的時候已經是 6 = 5+1了耶,不是應該以運算後的sum(6)為準嗎?所以在這個部分n=6,大於5,不是在這邊就會跳出迴圈嗎? sum=20的話便是帶入了n=6 不過謝謝你回答~~~本來以為好多年前的影片可能不會有人理我~謝謝你~
去除實際的情境,只談語法。sum=0 是指有一個 sum 變數,資料是 0。 把實際的情境加進來,為什麼要把 sum 的資料設定成 0,因為要讓他從 0 開始累加。 所以兩種說法都沒問題,只是有沒有把實際的情境講出來。 意思是把 sum 變數中的資料拿出來,加上 n 變數中的資料,再覆蓋回 sum 變數裡面。 你可以回頭複習一下關於資料和變數的操作細節,應該會有點幫助 :)
@520taiwan6 жыл бұрын
@@cwpeng-course 謝謝老師 :) 真的感謝 我懂了
@katykaty9410 Жыл бұрын
感謝老師幫助我考試🤓
@cwpeng-course Жыл бұрын
XDDDDD
@jiahung72812 жыл бұрын
00:00介紹 while迴圈: 00:16基本語法 while 布林值: ▏ 若布林值為True,執行命令 ▏ 回到上方,做下一次的迴圈判斷 01:51程式示範 n=1 while n
彭彭老師您好,最近看您的影片自學,受益良多。對影片5:52的範例有個小問題,for 變數 in range(3)相當於for 變數 in [0,1,2],我試著輸入for 變數 in (0,1,2)也可以順利得到一樣的結果。老師在第二堂課有提到他們分別是可動列表(List)與固定列表(Tuple),想請問在這裡是可通用的嗎,還是意義上有所不同?
@cwpeng-course2 жыл бұрын
雖然 List 和 Tuple 有細節的差異,但在 for 迴圈這裡是可通用的。
@easonpeng52296 жыл бұрын
對於我這個新手,非常好上手 很有幫助
@easonpeng52296 жыл бұрын
while n
@cwpeng-course6 жыл бұрын
試試看以下程式碼,把數字一個一個接到列表後方: k=[] n=0 while n
@LostAngel1753 жыл бұрын
謝謝彭彭老師優質教學
@cwpeng-course3 жыл бұрын
不客氣哦,謝謝你的回饋 :)
@黃俊仁-q8q9 ай бұрын
謝謝🙏
@cwpeng-course8 ай бұрын
不客氣 :)
@江平允3 жыл бұрын
老師您好,想請教這行程式是要怎麼看,我看不太懂,影片也沒教,所以請您解釋一下,謝謝 程式: n = 0 for i in range(1,10001): for j in range(1,10001): n += 1 print(n) 答:100000000 麻煩您了,謝謝
請問澎澎老師: sum=0 for x in range(10,100): sum=sum+x x+=1 print(sum) 和 n=1 sum=0 for x in range(10,100): sum=sum+n n+=1 print(sum) 這兩題差異在哪裏,若range改為range(1,10) 結果會一樣都是45. 謝謝老師!
老師我想做一個輸入數字(後以a代替)會讓他取0~a的偶數做加起來 像輸5是2+4=6 我的程式如下 a=int(input(‘a=‘)) sum=0 For b in range(a+1) while b%2==0: sum+=b print(sum) 執行後 會出現a=然後輸入完就沒下文了 求解 謝謝
@cwpeng-course4 жыл бұрын
for 裡面那個要改用 if,你用 while 會導致程式跑不出迴圈哦 ~
@MarcusKwok-j1w3 жыл бұрын
老師好,有一個關於LOOP的問題想請教一下,CODE如下: x = 1 while x
@cwpeng-course3 жыл бұрын
簡單來說,Python 的 Global、Local 只看函式這個結構 ( Function Scope ),迴圈不會產生獨立的名稱空間,所以在迴圈裡面其實就是直接使用 Global 的變數了。
老師好,請教一個問題: data=[1,2,3,4,5] x=len(data) for i in range(x): if data[i] % 2 == 0: print(data[i]) 測試結果符合預期將2,4 列印出來,但我想將串列中的偶數去除,只剩下奇數部分,便將for 回圈內的判斷式下加入data.pop(i)的指令,將偶數從串列中取出。但在執行時卻產生Index Error:list index out of range 的錯誤訊息。我想是將串列中的索引指標移除產生的後遺症,所以我就又在迴圈內重新計算一次data串列的長度值,下了x=len(data)的指令, 想說在符合if判斷條件下移除掉偶數後,重新給變數x新的串列長度值,應該就可以避免上述的錯誤訊息,但~~~~~~結果還是Index Error:list index out of range!!!! 天哪!!!! 怎麼會這樣呢 ? 拜託老師,可以幫我看看嗎? 我覺得這個將串列中的元素移除的動作非常重要,因為寫程式時,就是資料的讀取,寫入與刪除等動作一直在重複,我的教科書上給我的說明是利用pop指令可將串列中索引值的元素取出並刪除。但我為何在執行時卻產生錯誤訊息呢? 麻煩老師有空時幫我解惑,感謝!!
@cwpeng-course3 жыл бұрын
你可以先複製一份列表,利用複製的列表來寫迴圈,刪除時用 remove(資料) 的方法來刪除原來列表中的資料,就不會影響迴圈的運作,例如: data=[1,2,3,4,5] copyData=data.copy() x=len(copyData) for i in range(x): if copyData[i] % 2 == 0: data.remove(copyData[i]) print(data)
@吳家華-y3h3 жыл бұрын
@@cwpeng-course 謝謝老師,好奇地將你的程式碼稍稍做個變動,如下: data=[1,2,3,4,5] copyData=data.copy() x=len(copyData) for i in range(x): if copyData[i] % 2 == 0: data.remove(copyData[i]) print("i",i) #data.pop(i) print("copydata",copyData) print("data",data) 然後執行remove,和 pop 兩種指令的結果,並將 索引指標 i 也列印出來,然後發現 兩種指令的不同之處,我發現用pop 雖然不會再產生 index out of range的錯誤訊息,但結果卻是不對的,最終程式是列印出[1,3,4] ,因為第一次刪除偶數2後,串列的長度有所變動了,所以在執行下一個偶數判斷並且刪除動作時,會將5 給刪除掉,就產生了錯誤的結果。 嗯~~~~老師的方法很有用,記起來,可以運用到別的地方。謝謝!!
while True: data=input("請輸入資料") if data=="exit": break
@wilsonfeng3335 жыл бұрын
彭彭老师您好,请教一下以下问题: sum=0 for x in range(1,11): sum=sum+x print(sum) 与下面程式不同的地方是print的缩进; sum=0 for x in range(1,11): sum=sum+x print(sum) 但第一个程式出来的结果是: 1 3 6 10 15 21 28 36 45 55 请问这是为什么?
請問如果想要運算等差 1+3+5+7+9+11+13+15+17+19= 用while迴圈是寫成 n=1 sum=0 while n
@ytchen52913 жыл бұрын
剛剛google了一下~ 有個列表的方式可以 「將等差級數列表出來」 a=list(range(start,ent,step) 同一個問題 1+3+5+...+19=? 欲使用 for 迴圈 sum=0 a=list(range(1,20,2)) for x in a: sum=sum+x print(sum)
C 確實比較嚴謹。不過在 print 換行的部份,只是預設的問題,我們可以寫 print("Hello", end="") 就不會自己換行嘍 ~
@joechen68074 жыл бұрын
@@cwpeng-course 我照老師您說的這樣打 for c in "Hello": print("Hello", end="") 但出現的結果是這樣:HelloHelloHelloHelloHello 請問哪裡出問題?
@joechen68074 жыл бұрын
自問自答:改成print(變數名稱,end="")就可以了。 但有個問題是我打這樣 for x in "suoh": print(x, end="") for y in range(10): print(y,end="") 顯示這樣:suoh0123456789 兩個運算結果連在同一行,想問怎麼讓它們各自獨立一行?
@小灰灰-m4b4 жыл бұрын
您好 彭彭 for c in ['hello']: print(c) 整个程序 我打印出来的是 hello一行 不是像你的一行一个字母 ,为什么啊
老師想請問我這樣的理解是不是正確的: print在縮排內的話會顯示出整個迴圈的過程。(我有將print打在縮排內,終端機顯示的結果就是:1,3,6..55 如果沒有縮排的話則是直接顯示最後的迴圈結果:55 有個問題想請教老師,我在一開始自己嘗試時,我少打了n+=1 所以程式變成這樣: n=1 sum=0 while n
請問老師: 在while的時候,print為何不用寫在while迴圈裡面呢? 而在for的時候,卻要把print寫進for迴圈裡面啊? 我自己是有試過在for迴圈時把print寫在外面,結果電腦出現"IndentationError: expected an indented block".... while n
@cwpeng-course6 жыл бұрын
python 相當依賴縮排來判斷結構,若是要寫一個沒有程式碼的迴圈,必須使用 pass 指令: for x in "Hello": pass print(x)