1. 程式人生 > >while & for 迴圈的使用

while & for 迴圈的使用

一、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)