1.for循環
for循環是一個計次循環,通常適用於枚舉或遍歷序列,以及迭代對象中的元素。一般應用在循環次數已知的情況下。語法如下:
for 迭代變量 in 對象: 循環體
for循環語句執行的流程圖:
1.1 進行數值循環
例1:
for i in [1,2,3]: print("笑傲江湖")
例2:
for i in ["明日","昨日","今日","未來"]: print(i)
例3:
print("計算1+2+3.....+100的結果為:") result = 0 for i in range(101): result += i print(result)
range()函數,該函數是python內置函數用於生成一系列連續的整數。語法格式如下:
range(start,end,step)
參數說明:
start:用於指定計數的起始值,可以省略,如果省略則從0開始
end:用於指定計數的結尾值,(但是不包括該值,如range(7)得到的值為0--6,不包括7),不能省略。當range函數只有一個參數時,即表示指定計數的結束值。
step:用戶指定步長,即兩個數之間的間隔,可以省略。
注意:在使用range()函數時,如果只有一個參數,那么表示指定的是end;如果是兩個參數,則表示指定的是start和end;只有三個參數都存在時,最后一個才表示步長。
例如,輸出10以內的奇數:
for i in range(1,10,2): print(i,end = ' ')
1.2遍歷字符串
例子:
string = '天道酬勤' for ch in string: print(ch)
2.while 循環
while循環是通過一個條件來控制是否要繼續反復執行循環體的語句。語法如下:
while 條件表達式: 循環體
循環體是指一組被重復執行的語句
當條件表達式當返回值為ture時,則執行循環體中當語句;執行完畢后,重新判斷條件表達式的返回值,直到表達式返回值結果為false時,退出循環。while循環語句執行流程如下圖:
例子:下面利用while循環輸出3遍“笑傲江湖”
i = 1 while i <= 3: print("笑傲江湖") i = i+1
例2:設定取款機上取款要輸入1位密碼,當密碼輸入正確,輸出密碼正確,正在進入系統。如果輸入錯誤,密碼錯誤,您已經輸入*次。連續輸入6次,輸出請與發卡行聯系。代碼如下
password = 0 i = 1 while i < 7 : num = input("請輸入一位數字密碼:") num = int(num) if num ==password: print("密碼正確,正在進入系統") i = 7 else: print("密碼錯誤,已經輸錯",i,"次") i+= 1 if i == 7: print("密碼錯誤6次,請與發卡行聯系")
3.循環嵌套
while 條件表達式1:
while 條件表達式2:
循環體2
循環體1
for循環嵌套:
for 迭代變量1 in 對象1:
for迭代變量2 in 對象2:
循環體2
循環體1
while循環套用for循環
while 條件表達式:
for 迭代變量 in 對象:
循環體2
循環體1
for循環中套用while
for 迭代變量 in 對象 :
while 條件表達式:
循環體2
循環體1
注意:就近原則
4.跳轉語句
4.1 break語句
break 語句用來終止循環語句,即循環條件沒有 False 條件或者序列還沒被完全遞歸完,也會停止執行循環語句。簡單來說就是完全終止循環;
break 語句用在 while 和 for 循環中。
break語句一般會結合if語句進行搭配使用,表示在某種條件下,跳出循環;如果break語句在嵌套循環中,跳出的是最內層循環
例1:
for letter in 'Python': # 第一個實例 if letter == 'h': break print("當前字母:",letter)
運行結果:
當前字母: P 當前字母: y 當前字母: t
例2:
var = 10 while var > 0: print("當前變量值:",var) var = var-1 if var == 5: break print("bye")
運行結果:
當前變量值: 10 當前變量值: 9 當前變量值: 8 當前變量值: 7 當前變量值: 6 bye
4.2continue語句
continue 語句跳出本次循環,而 break 跳出整個循環。
continue 語句用來告訴 Python 跳過當前循環的剩余語句,然后繼續進行下一輪循環。
continue 語句用在 while 和 for 循環中。
例子:逢七游戲(從1--100,計算7和7的尾數出現多少次)
tatal = 0 for number in range(1,100): #創建一個從1到100到循環,注意不包括100 if number%7 ==0: #判斷是否為7到倍數 tatal += 1 continue #繼續下一次循環 else: string = str(number) #將數值轉換為字符串 if string.endswith('7'): #判斷是否是以7結尾 tatal += 1 continue print("從1到99共逢七多少次:",tatal)
小測驗:
福布斯發布了2019年全球富豪榜。請編寫一個程序,從所給的文件中讀取想過數據,將所屬行業為“科技”界的富豪重新分類排行並輸出new.txt
排名 | 中文名 | 財富 | 年齡 | 類別 | 國家 |
1 | 傑夫貝素斯 |
1284億美元 |
54 | 科技 | 美國 |
2 | 比爾蓋茨 |
915億美元 |
62 | 科技 | 美國 |
3 | 沃倫巴菲特 |
879億美元 |
87 | 投資 | 美國 |
4 | 伯納德阿諾特及家族 |
764億美元 |
78 | 商業 | 法國 |
5 | 馬克扎克伯格 |
735億美元 |
33 | 科技 | 美國 |
6 | 卡浩斯斯利煙埃盧及家族 |
695億美元 |
78 | 科技 | 墨西哥 |
7 | 阿曼西奧·奧特加 |
695億美元 |
81 | 商業 | 西班牙 |
8 | 拉利埃里森 |
632億美元 |
73 | 科技 | 美國 |
9 | 大衛科赫 |
608億美元 |
66 | 能源 | 美國 |
10 | 查爾斯·科赫 |
608億美元 |
82 | 能源 | 美國 |
11 | 拉里佩奇 |
522億美元 |
44 | 科技 | 美國 |
12 | 邁克爾·布隆伯格 |
508億美元 |
76 | 科技 | 美國 |
13 | 謝爾蓋·布林 |
508億美元 |
44 |
科技 | 美國 |
14 | 馬化騰 |
491億美元 |
46 |
科技 |
中國 |
15 | 梅耶爾·貝當古 |
446億美元 |
64 |
商業 |
法國 |
16 | 吉姆·沃爾頓 |
419億美元 |
69 |
商業 |
美國 |
17 | S.羅伯森·沃爾頓 |
418億美元 |
73 |
商業 |
美國 |
18 | 艾麗斯·沃爾頓 |
416億美元 |
68 |
商業 |
法國 |
19 | 謝爾登·阿德爾森 |
411億美元 |
84 |
娛樂 |
美國 |
20 | 馬雲 |
406億美元 |
53 |
科技 |
中國 |