【Python讲义】WEEK 4
寫在前面:
本系列文章收錄:CAU計算機類公選課《Python語言程序設計》的課堂講義
課程時間為:2022~2023學年秋季
供各位小白參考~
循環結構
類別:
(1)計數循環:重復一定的次數的循環。比如for循環
(2)條件循環:一直重復,直到條件不滿足時才結束的循環。比如while循環。
1.while循環
語法結構:
while 條件表達式:
?????? 循環體
循環體:一組被重復執行的語句。
【示例】重要的事情,說三遍。
i = 0while i < 3:print("小朋友,你喜歡我嘛?請不要騙我喲!")i += 1???
運行結果:
小朋友,你喜歡我嘛?請不要騙我喲!小朋友,你喜歡我嘛?請不要騙我喲!小朋友,你喜歡我嘛?請不要騙我喲!【示例】取款機輸入密碼模擬。
password = 0i = 1while i < 7:input_num_pwd = int(input("請輸入一位數字密碼:"))if input_num_pwd == password :print("密碼正確,正在進入系統...")i = 8else:print(f"密碼輸入錯誤,你已經輸錯{i}次")i += 1if i == 7:print("你的卡已經被鎖死,請和發卡行聯系!")運行結果:
請輸入一位數字密碼:2密碼輸入錯誤,你已經輸錯1次請輸入一位數字密碼:0密碼正確,正在進入系統...2.for循環與range()函數
for循環適合于枚舉、遍歷序列以及迭代對象中的元素。
語法結構:
for 迭代對象 in 對象:
?????? 循環體
說明:
(1)迭代對象用于保存讀出的值
(2)對象為要遍歷或迭代的對象,該對象為任何有序的序列對象,比如字符串,列表和元組等
(3)循環體為一組被重復執行的語句。
【示例】利用數值循環輸出列表的值。
for item in ['pku','tsinghua','cau','fudan']:print(item)運行結果:
pkutsinghuacaufudanrange()函數
range()函數功能:用于生成一系列連續的整數,多用于for循環語句。
語法結構:
range(start,end,step)
參數說明:
(1)start:用于指定計數的初始值,可以省略,如果省略,默認值為0;
(2)end:用于指定計數的結束值(但不包括該值,如range(7)得到的值0~6),此參數不能省略;即左閉右開。
(3)step:用于指定步長,若省略該參數,步長默認為1。
【示例】計算1~100的和。
result = 0for i in range(1,101,1):result += iprint(f"1~100的和為{result}")運行結果:
1~100的和為5050【示例】遍歷字符串:“八百標兵奔北坡,北坡炮兵并排跑,炮兵怕把標兵碰,標兵怕碰炮兵炮。”,統計有多少個“兵”。
str_1 = "八百標兵奔北坡,北坡炮兵并排跑,炮兵怕把標兵碰,標兵怕碰炮兵炮。"sum = 0for word in str_1:if word == '兵':sum += 1print(f"經統計分析,一共有兵字:{sum}個。")運行結果:
經統計分析,一共有兵字:6個。循環語句嵌套
定義:在Python中,允許一個循環體中嵌套另一個循環。
對于雙層循環,循環的總次數等于內外層循環次數之積。
【示例】打印輸出九九乘法表。
for i in range(1,10):for j in range(1,i+1):d = i * jprint('%dx%d=%-2d '%(j,i,d),end='')print()運行結果:
1x1=1?1x2=2? 2x2=4?1x3=3? 2x3=6? 3x3=9?1x4=4? 2x4=8? 3x4=12 4x4=161x5=5? 2x5=10 3x5=15 4x5=20 5x5=251x6=6? 2x6=12 3x6=18 4x6=24 5x6=30 6x6=361x7=7? 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=491x8=8? 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=641x9=9? 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81轉移和中斷語句
(1)break:完全終止循環
1)在while語句中使用break語句
語法結構:
while 條件表達式1:
?????? 執行代碼
?????? if 條件表達式2:
????????????? break
【示例】猜數游戲。
import randomcount = 0while True:random_number = random.randint(1, 100)count += 1input_number = int(input("請輸入你所猜的數字:"))if input_number > random_number:print(f"太大了,你猜的數應該為{random_number}")elif input_number < random_number:print(f"太小了,你猜的數應該為{random_number}")else:print("恭喜你,猜對了!")break運行結果:
請輸入你所猜的數字:56太小了,你猜的數應該為67請輸入你所猜的數字:67太大了,你猜的數應該為44請輸入你所猜的數字:44太大了,你猜的數應該為24請輸入你所猜的數字:42太小了,你猜的數應該為67請輸入你所猜的數字:63太小了,你猜的數應該為93請輸入你所猜的數字:2)在for語句中使用break語句
語法結構:
for 迭代變量 in 對象:
?????? if 條件表達式:
break
【示例】輸入一個整數,判斷是否為素數。
number =? int(input("請輸入一個整數:"))if number < 2:print("不是素數!")else:for i in range(2,number):if number % i == 0:print(f"{number}不是素數。")breakelse:print(f"{number}是素數。")運行結果:
請輸入一個整數:77是素數。(2)continue:結束本次循環,直接跳到下一次循環。
1)在while語句中使用continue語句
語法結構:
while 條件表達式1:
?????? 執行代碼
?????? if 條件表達式2:
????????????? continue
【示例】從鍵盤輸入密碼,如果密碼長度小于6,則要求重新輸入;如果等于6,則判斷密碼是否正確,如果正確則中斷循環,否則提示錯誤,并要求繼續輸入。
while True:pwd = input("請輸入密碼:")if len(pwd) < 6:print("長度為6,請重新輸入。")continueif pwd == '123456':print("恭喜你,密碼輸入正確。")breakelse:print("密碼有誤,請重試!")運行結果:
請輸入密碼:123長度為6,請重新輸入。請輸入密碼:456789密碼有誤,請重試!請輸入密碼:123456恭喜你,密碼輸入正確。2)在for語句中使用continue語句
語法結構:
for 迭代變量 in 對象:
?????? if 條件表達式:
continue
【示例】過濾敏感字。
sentence = input("請輸入一段文字:")for word? in sentence:if word == '色':continueprint(word)運行結果:
請輸入一段文字:五光十色,食色可佳五光十,食可佳【示例】逢7拍腿游戲。
數字末尾為7或者7的倍數,拍一下腿。
請統計一下,1~99一共拍了多少次腿。
total = 99for num in range(1,100):if num % 7 == 0:continueelse:strnum = str(num)if strnum.endswith('7'):continuetotal -= 1print(f"從1到99,共拍腿{total}次")運行結果:
從1到99,共拍腿22次while…else和for…else
【示例】利用for…else…實現猜年齡游戲。判斷猜大,猜小。超過3次,提示“對不起,次數到了”。
age_old_boy=60for i in range(3):guess = int(input("請輸入你猜的年齡:"))if guess == age_old_boy:print("猜對了。")breakelif guess > age_old_boy:print("猜大了。")else:print("猜小了。")else:print("對不起,次數到了。")運行結果:
請輸入你猜的年齡:56猜小了。請輸入你猜的年齡:89猜大了。請輸入你猜的年齡:60猜對了。【上機任務】
P93
11
12
13
15
總結
以上是生活随笔為你收集整理的【Python讲义】WEEK 4的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python counter转换为列表_
- 下一篇: 递归解决卖桃子问题java