iT邦幫忙

2024 iThome 鐵人賽

DAY 9
0
自我挑戰組

呼蛇容易遣蛇難,要就當大蟒蛇!一起來Python吧 !系列 第 9

Day 9 流程控制:迴圈進階控制,break、continue、else 命令

  • 分享至 

  • xImage
  •  

迴圈搭配的命令
(寫在迴圈"裡面")
break
continue


break-強制執行結束迴圈

while 布林值:
    break
for 變數 in 列表或字串:
    break

範例:break

用途:強制結束迴圈

n=1

while n<5:
    if n==3: #如果是T才會break
        break
    n+=1
print(n)   #3

邏輯:
原本迴圈要n=>5 才會結束
但中間有個程咬金(break
只要n=3直接結束跳出整個迴圈
不會再有下一圈
所以不會跑 n+=1
直接印出n


範例:continue

用途:強制繼續下一圈

while 布林值:
    continue
for 變數名稱 in 列表或字串:
    continue
    

n=0
for x in[0,1,2,3]:
    if x%2==0      
        continue
    n+=1
 print(n) #2

#邏輯:

for迴圈:整個列表跑完才結束

if 條件判斷:每圈都會判斷一次,決定要不要執行n+=1
但不管T or F 都會重新跳回for圈直到跑完

n 變數:只有一個值,迴圈中不斷更新,紀錄累積次數,
for 迴圈跑完,才一次印出n值

總結:
for 控制流程要把列表跑完
if continue 決定這一圈要不要跳過
n 紀錄累積次數,最後一次性輸出


迴圈結構最後加else語法

基本語法

while布林值:
    T,執行命令
    回到上方做下一次迴圈判斷
    本來F是直接跳出迴圈 
    但下方有else就要執行
    
else:
    迴圈結束前執行此區塊命令

while範例:

n=1

while n<5:
    print("變數n的資料是:",n)
    n+=1
else:
    print(n)  # 結束迴圈前印出 5

for in 範例:

for 變數名稱 in 列表或字串:
    將列表或字串中的東西逐一處理逐一印出來
    
else:
    迴圈結束前執行此區塊命令
for c in "hello":
    print(逐一取得字串中的字元:,c)
    
else:
    print(c)
    

#結束迴圈前印出 o


範例:break

n=0

while n<5:
    if n==3:
        break
    print(n)  #印出迴圈中的n
    n+=1
print("最後的n:",n)  #印出迴圈結束的n

#n= 0,1,2
#最後的n=3


注意這兩個n不一樣

範例: for

n=0

for x in [0,1,2,3]:
    if x%2==0:
    continue
    print(x)
    n+=1
print("最後的n",n)

#x印出 1,3
#n=0+1+1=2

else範例

sum=0

for n in range(11):   #產生1+10列表
    sum+=n
else:
    print(sum)  #0+1+2,,,+10的結果

#在迴圈結束前印出加總
#55 

綜合範例:找出整數平方根

例如:n輸入9  , 得到整數平方根為:3
     n輸入11 , 得到:“沒有”整數平方根


n=input("請輸入一個正整數:")
n=int(n)    #轉換成數字

for i in range(n):  #i從0 ~ n-1
    if i*i==n:
        print("整數平方根為:",i)
        break  #小方法:用break強制結束迴圈,就不執行else
else:
    print("沒有整數平方根")

備註:
Python 變數不需宣告即可使用,如上例不用特別先宣告變數i,變數宣告初始值為:0


上一篇
Day 8 流程控制:迴圈基礎,while 迴圈、for 迴圈
下一篇
Day 10 函式基礎:定義並呼叫函式
系列文
呼蛇容易遣蛇難,要就當大蟒蛇!一起來Python吧 !30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言