本章 内容 含有 python的流程控制
循環使用文法 For while
嵌套 文法 Contitune breck
循環文法
Python中 循環文法有 for 、 while
他們都是實作 一個 同一個目的,當有一段程式,我希望反複執行的時候,就會用到 這兩個循環。
For文法
For循環是有 循環次數的,取決于 提取元素的序列,按照元素出現的順序送代任何序列 (清單或者字元串)
比如說 字元串 就是 序列 ,比如 定義好一個 hello,它的序列就是5次, for 循環 理論是來講都是有 循環次數的,你的數無窮大的話,都是有循環次數的。
For 送代變量 in 序列:
代碼塊
range()
For in : 是固定的循環格式
For 表示 要開始循環 疊代變量逐級從 序列裡取值
每取一個序列然後 執行代碼塊,從序列裡 值 取浄了 這個循環 就執行結束
For 例子
1
2
<code> </code><code>for td in ('power off'):</code>
<code> </code><code>print(td)</code>
表達含義
For 循環 疊代變量 td power off 字元串 序列
把 td 列印 出來 ,看下I 取的什麼值
是先 取出 第一個值
然後在取最後一個值 f 沒有了,for 循環就這樣結束了
運作結果
3
4
5
6
7
8
9
<code>p</code>
<code>o</code>
<code>w</code>
<code>e</code>
<code>r</code>
<code> </code>
<code>f</code>
如果為了 單純控制 循環次數 ,任何值都可以
任何值 例子
<code>for w in ('233456'):</code>
<code> </code><code>print('今天學校停電')</code>
For 送代變量 w 字元串序列 一共為6位
列印什麼都是随意的
W 從後面取值的過程隻是用來控制循環的次數
從 字元串 序列中取值為6位
運作了6次 列印内容
<code>今天學校停電</code>
如果隻是為了 循環 次數 那麼不需要 用其它詞的個數序列 來表達了
這裡 就會用到 一共 内置函數 range() 會自動生産 一個等差級 數值連結清單
内置函數range()
range例子
<code>or y in range (5):</code>
<code> </code><code>print(y)</code>
For 循環 y 這個送代變量調用内置函數range(5)
<code>0</code>
<code>1</code>
<code>2</code>
<code>3</code>
<code>4</code>
range 可以快速 生成一共 被提取的序列
range還可以生成制定區間的值
range 指定數字開始并指定不同的增量(甚至可以是複數;跟布長值一個概念)
在有人在疊代取值的時候它會生成值,這種現象 叫做 生成器
range函數可以用于 循環的 時候 想循環幾次 ,那就生成幾 ,可直接拿來用。
用range 快速生成例子
<code>for qxq in range (3):</code>
<code> </code><code>print('是range函數調用我的=。=')</code>
for 循環 qxq 調用 range函數
<code>是range函數調用我的=。=</code>
range 還有一種 進階的用法 ,可以指定 生成的範圍。
<code>for p in range (1,5):</code>
<code> </code><code>print(p)</code>
For 循環 送代函數 p 内置函數range調用(1,5)
表示起始值為 1 結束值為5,但不包含結束值
這個概念和切片差不多。
range 運用 步長值 例子
<code>for p in range (1,10,2):</code>
For 循環 p 調用 range 語句(1,10,2)起始值為1 結束值為2,每隔兩個取個值
和 切片的概念差不多,步長值為2,每隔兩個取一個值。
<code>5</code>
<code>7</code>
<code>9</code>
概括
For 既可以從 序列當中取出值 ,也可以列印 也可以依據序列裡面值的個數 ,執行多少次循環,從序列當中取值的過程 叫做 周遊 for循環通常都是有次數的循環,循環過程當中都是從序列中取值,可以加以利用,也可以不用。
如果不需要序列裡面值的時候一般都用range,如果用到裡面值了,可以取出來下面接着用。
While文法
While 條件:
代碼塊
一般需要 一個 一直 執行的程式,直到使用者 要求退出了 才退出的 程式,這個時候就要用到wihle 循環。
While 循環 有點像 把 for循環 if 循環 做了一個集合
根據一個條件來判斷 是否繼續 循環
條件成立就執行
條件不成立才會結束
While循環有個問題如果條件一直無法不成立就會成為一個死循環。
While 例子
一個while 基本方式
<code>a = 'b'</code>
<code>while a != '金牌講師 大司馬':</code>
<code> </code><code>a = input ('我就不喊你哼╭(╯^╰)╮我是鐵頭娃:')</code>
a = b 為了讓 a 語句成立
while判斷 條件 a 不等于 字元串 内容 金牌講師大司馬 成立。就會一直執行
執行代碼塊内容 a = input('内容 自定義') 用input 是為了跟使用者産生一個互動
input 還帶 列印 功能 隻要使用者輸入的一直成立,就會一直執行,直到不成立
<code>我就不喊你哼╭(╯^╰)╮我是鐵頭娃:我頭鐵</code>
<code>我就不喊你哼╭(╯^╰)╮我是鐵頭娃:皮的嘛,就不談了</code>
<code>我就不喊你哼╭(╯^╰)╮我是鐵頭娃:我錯了</code>
<code>我就不喊你哼╭(╯^╰)╮我是鐵頭娃:金牌講師 大司馬</code>
<code>>>></code>
如果你想執行死循環的話
那就執行while = 1
如果不想 執行 死循環的話 ,就必須在while循環當中 設定某種機制然後可以解除while循環、
比如break等類似跳出 語句循環的 才會終止
死循環例子
<code>while 1 :</code>
<code> </code><code>a = input ('這是個死循環哦~~~~~:')</code>
While 1代表一個 常量表達式,它永遠不會= 0,是以循環會一直執行下去。
這裡 a 不管輸入什麼 都判斷為真
<code>這是個死循環哦~~~~~:ha</code>
<code>這是個死循環哦~~~~~:我要出去</code>
<code>這是個死循環哦~~~~~:德瑪西亞萬歲</code>
<code>這是個死循環哦~~~~~:一切都是為了榮耀</code>
<code>這是個死循環哦~~~~~:麻利麻利哄</code>
<code>這是個死循環哦~~~~~:我絕望了</code>
嵌套 語句 Contitune breck
嵌套和循環控制 都是跟 if for while相關的知識。
嵌套可以實作千變萬化的 功能 ,可能你隻用 if for while 可能無法達成 某個功能的時候。或者 發現 某個 if for 循環這個時候 ,要根據 某個條件 完成某件 事情,這個時候 就要用到 嵌套了。
嵌套淺意 == 在一個文法結構 當中 涵蓋了 另一個 文法結構,可以任意組合。
在嵌套環境下,要注意 語句縮進 因為完全是根據縮進來 選擇 優先 執行的
在裡面 判斷是否 屬于 for 循環的 還是 if的,完全是由縮進來決定了,
在嵌套環境下 不隻是 判斷4個空格了。但是主題語句結構還是4個空格,
跟你目前的 語句是有關系的。
嵌套
If 條件
代碼塊
還是那句話,文法結構 本生 并不複雜, 複雜的是人的 想法。
for 嵌套 if 的例子
<code>for i in range(18): #for 循環 i in帶入 并且用 内置函數 range 生成一個等差級數連結清單 0 ~18 </code>
<code> </code><code>print(i) #列印出i</code>
<code> </code><code>if i > 5: # if 判斷如果 i > 5</code>
先執行循環 for的 range 内置函數等差數連結清單0~18,
從0開始
列印出 i
If判斷 一直到 6 成立了。才會執行 if裡面的語句。i * 10
If 結束後 繼續執行for循環 未執行完的語句。
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<code>6</code>
<code>60</code>
<code>70</code>
<code>8</code>
<code>80</code>
<code>90</code>
<code>10</code>
<code>100</code>
<code>11</code>
<code>110</code>
<code>12</code>
<code>120</code>
<code>13</code>
<code>130</code>
<code>14</code>
<code>140</code>
<code>15</code>
<code>150</code>
<code>16</code>
<code>160</code>
<code>17</code>
<code>170</code>
文法層次的例子
<code>for i in range (18):</code>
<code> </code><code>if i > 5 :</code>
<code> </code><code>print(i*10)</code>
<code> </code><code>print(i)</code>
For 的列印 放在最後
先不成立 會一直列印 for 循環的語句
成立後 先 執行 if 語句 在執行 for循環的列印
下面 介紹的 是基本的 嵌套,嵌套有很多功能,具體 做什麼 都是根據實際的需求
介紹 三個 嵌套控制 裡面的 重要 組成部分
共有 控制 循環 嵌套
如果 要把 嵌套代碼 修改 ,讓它 在 第 5次或者,第6次的時候 停止循環,跳出循環,
不執行循環嵌套, 這個時候 就要 用到 控制 循環。
簡要說明 下 continue 和 breck 的使用 方法 簡介
Continue作用: 用來跳出下面餘下的代碼,緊接着執行下一次疊代取值。從它往下都不執行
Bareck的作用: 跳出目前循環 結束目前整個循環。
continue 例子
<code>for i in range (10):</code>
<code> </code><code>if i == 5 :</code>
<code> </code><code>continue</code>
<code> </code><code>print (i)</code>
表達簡易
For 判斷 i 用内置函數 range 生産一個 等差級數清單, 列印0~10
If 判斷 i如果 i完全等于 5 這個整數的時候
If判斷成立 列印 i *10
執行if語句的 Continue 不會結束循環,跳過本次循環
被上面的 continue 跳過了 本次 循環 就不會列印5了
<code>50</code>
Break的作用: 跳出目前循環 結束目前整個循環。
break語句用來終止循環語句,即循環條件沒有False條件或者序列還沒被完全遞歸完,也會停止執行循環語句。
break語句用在while和for循環中。
如果您使用嵌套循環,break語句将停止執行最深層的循環,并開始執行下一行代碼。
Breck例子
<code> </code><code>a = input ('執行一個循環然後引用baeak停止:')</code>
<code> </code>
<code> </code><code>if a == 'no':</code>
<code> </code><code>break</code>
while 1 表達一個 常量表達式,它永久不會 = 0,是以循環 會一直 執行下去。除非設定 break 等類似 跳出 語句循環的 才會終止
a = 輸入 一句話 input 輸入 具有列印 作用
if 判斷 a 如果全等于 字元串 no
執行 break 跳出 目前循環 結束目前整個循環
<code>執行一個循環然後引用baeak停止:23333</code>
<code>執行一個循環然後引用baeak停止:emmmm</code>
<code>執行一個循環然後引用baeak停止:no</code>
混合嵌套例子
<code>for a in range (15):</code>
<code> </code><code>if a == 5:</code>
<code> </code><code>print(a-2)</code>
<code> </code><code>if a == 13 :</code>
<code> </code><code>print(a)</code>
<code>print (a)</code>
For 循環 a 送代變量 調用 内置函數range 送代變量
先if 判斷 a 如果完全等于 5
成立 執行代碼塊内容
等于 5的 時候 -2
Continue 跳出餘下代碼塊 執行下一次循環
if 判斷 a 如果完全 等于 13
成立 執行 代碼塊 内容 列印 這個值
Break 結束目前整個循環
有時候 會 需要 人為的 死循環,給個跳出目前的循環的值
<code>while 1:</code>
<code> </code><code>a = input ('我就是大哥:')</code>
<code> </code><code>if a == '大哥救救我吧':</code>
while 1 表達一個 常量表達式,它永久不會 = 0,是以循環 會一直 執行下去。除非設定 break 等類似 跳出 語句循環的 才會終止
a = 輸入(内容自定義)這裡是為 跟使用者互動
if 判斷 a 如果什麼 使用者 輸入了 大哥救救我吧
執行代碼塊内容 break 結束目前整個循環
<code>我就是大哥:救命</code>
<code>我就是大哥:大哥</code>
<code>我就是大哥:我跟你了</code>
<code>我就是大哥:大哥救救我吧</code>
2017年 12月1号 王宇林