while & for 迴圈的使用
阿新 • • 發佈:2018-11-08
一、while 迴圈
1.while 迴圈的語句
while 條件: 語句體 語句體
使用while迴圈容易出現死迴圈,需要加入迴圈控制條件
times = 1 while times <=5: print("times:",times) #迴圈結束的控制語句 times +=1 print("程式結束")
例如:猜字遊戲,假設答案是9 ,讓使用者從鍵盤中輸入一個整數,使用while迴圈,提供多次機會給使用者猜測。比如說,給使用者三次機會
num = 9 times = 1 while times <= 3: num1= int(input("請輸入一個整數: ")) if num1 == num: print("您猜對了") elif num1 < num: print("您猜小了") else: print("您猜大了") times = times + 1
2.break/continue
break 語句會跳出迴圈,並終止迴圈;continue 語句會跳出當層迴圈,並且開始下一次迴圈。
例如:輸出1到10,如果是2的倍數,則不輸出(continue用法)
times =1 while times <= 10:if times % 2 ==0: times +=1 continue print(times) times = times +1
例如:輸出1到20,如果是5的倍數,則結束程式
times = 1 while times <=20: if times % 5 ==0: times +=1 bresk print(times) times +=1
print("程式結束")
練習:1.求100以內的奇數之和 99+97+95+93+.......+1
第一種:
n = 0 sum= 0 while n <= 99: n = n + 1 if n % 2 ==0: continue sum = sum + n print(sum)
第二種: n = 99 sum = 0 while n > 0: sum = sum + n n = n-2 print(sum)
2.建立一個包含了100以內的奇數的列表
list = [] n = 101 while n >= 2: if n % 2 != 0: n = n - 2 list.append(n) print(list)
二、for 迴圈語句
for 變數 in 範圍: for 迴圈的迴圈體 ----迴圈的次數,由指定的範圍內的數量
1.遍歷字串
str = "hello,world!" total = 0 for i in str: print(i) total = total + 1 print(total)
2.遍歷列表
list = [1,2,3,"test",34,"python"] for l in list: print(l)
3.range() 函式 range(始起值,結束值,步長值) range(始起值,結束值) 取值範圍:始起值,到(結束值-1)
for i in range(0,6): print(i)
例如:請寫出一段 python 程式碼實現刪除一個list裡面的重複元素
list = [2,3,4,2,4,3,5,11,23,13] lst =[] for i in list: if i not in lst: lst.append(i) print(lst) print(sorted(lst))
4.for迴圈的巢狀
for 變數 in 範圍: 語句 for 變數 in 範圍: 迴圈體
for i in range(1,10): print("i-->:",i) for j in range(1,i+1): print("j-->:",j,end="\t") print()
例如:使用for迴圈巢狀實現99乘法表
# 第1種 for i in range(1,10): for j in range(1,i+1): print("%d*%d=%2d"%(i,j,i*j),end = "\t") print() # 第2種 for i in range(1,10): for j in range(1,i+1): print(str(i) + "*" + str(j) + '=' + str(i*j),end="\t") print()
5.氣泡排序
例如:定義一個列表,如 lst = [3,8,2,12,56,9],然後把列表中的資料由高到低排序,並輸出。
lst = [3,8,2,12,56,9] for i in range(0,len(lst)-1): for j in range(0,len(lst)-1-i): if lst[j] < lst[j+1]: lst[j],lst[j+1] = lst[j+1],lst[j] print(lst)