Python流程控制語句的方法

高洛峰
發布: 2017-03-23 17:31:36
原創
1497 人瀏覽過

人們常說人生就是一個不斷做選擇題的過程:有的人沒得選,只有一條路能走;有的人好一點,可以二選一;有些能力好或者家境好的人,可以有更多的選擇;還有一些人在人生的迷茫期會在原地打轉,找不到方向。對於相信有上帝的人來講,這就好像是上帝事先為我們制定好了人生路線,也好像是那些神仙為唐曾師徒的取經之路提前設置的重重磨難,上帝和神仙掌控了一切。程式語言可以模擬人類生活的各個層面,程式設計師就像上帝和神仙一樣可以透過程式語言中特殊的關鍵字控製程式的執行過程,這些關鍵字組成的就是流程控制語句。
程式語言中的流程控制語句分為以下幾類:
 順序語句
 分支語句
 循環語句
其中順序語句不需要單獨的關鍵字來控制,就是一行行的執行,不需要特別的說明。這裡主要要說的是 分支語句 和 循環語句。
一、分支語句
條件分支語句是透過一條或多條語句(判斷條件)的執行結果(True/False)來決定執行哪個分支的程式碼區塊。 Python中提供的分支語句為:if..else語句,沒有提供switch..case語句。 if..else語句有以下幾種形式:
單一分支:
if 判斷條件:
   程式碼區塊
如果單分支語句的程式碼區塊只有一個語句,可以把if語句和程式碼寫在同一行:
if 判斷條件: 一句程式碼
實例:判斷指定的uid是不是root使用者

uid = 0
if uid == 0:
  print("root")
登入後複製


也可以這樣寫:

uid = 0
if uid == 0: print("root")
登入後複製


#輸出結果:root
雙分支:
if 判斷條件:
   程式碼區塊
else:
   程式碼區塊
實例:根據使用者id列印使用者身份

uid = 100
if uid == 0:
  print("root")
else:
  print("Common user")
登入後複製


輸出結果:Common user
多重分支:
if 判斷條件1:
   程式碼區塊1
elif 判斷條件2:
   程式碼區塊2
...
elif 判斷條件n:
   程式碼區塊n
else:
   預設碼區塊
執行個體:依據學生分數列印字母等級

score = 88.8
level = int(score % 10)
if level >= 10:
  print('Level A+')
elif level == 9:
  print('Level A')
elif level == 8:
  print('Level B')
elif level == 7:
  print('Level C')
elif level == 6:
  print('Level D')
else:
  print('Level E')
登入後複製


輸出結果:Level B
說明:
當上面的「判斷條件」中的表達式可以是任意的表達式,也可以是任意類型的資料物件實例。只要判斷條件的最終回傳結果的「真」值測試為True時,就表示該條件成立,對應的程式碼區塊就會被執行;否則表示條件不成立,需要判斷下一個條件。
二、循環語句
當我們需要多次執行一個程式碼語句或程式碼區塊時,可以使用循環語句。 Python中提供的循環語句有:while循環for循環。需要注意的是Python中沒有do..while循環。此外,還有幾個用於控制迴圈執行過程的迴圈控制語句:breakcontinue和pass。
1. while迴圈
基本形式
while迴圈語句的基本形式如下:
while 判斷條件:
   程式碼區塊
當給定的判斷條件的回傳值的真值測試結果為True時執行循環體的程式碼,否則退出循環體。
實例:循環印出數字0-9

count = 0
while count <= 9:
  print(count, end=&#39; &#39;)
  count += 1
登入後複製


輸出結果:0 1 2 3 4 5 6 7 8 9
while死迴圈
當while的判斷條件一直為True時,while循環體中程式碼就會永遠循環下去。
while True:
   print("這是一個死循環")
輸出結果:
這是一個死循環
這是一個死循環
這是一個死循環
...
此時可以透過Ctrl + C終止運作。
while..else
語句形式:
while 判斷條件:
   程式碼區塊
else:
   程式碼區塊
else中的程式碼區塊會在while迴圈正常執行完的情況下執行,如果while迴圈被break中斷,else中的程式碼區塊不會執行。
實例1:while循環正常執行結束的情況(else中的語句會被執行)

count = 0
while count <=9:
  print(count, end=&#39; &#39;)
  count += 1
else:
  print(&#39;end&#39;)
登入後複製


執行結果為:0 1 2 3 4 5 6 7 8 9 end
實例2:while迴圈被中斷的情況(else中的語句不會被執行)

count = 0
while count <=9:
  print(count, end=&#39; &#39;)
  if count == 5:
    break
  count += 1
else:
  print(&#39;end&#39;)
登入後複製


输出结果:0 1 2 3 4 5
2. for循环
for循环通常用于遍历序列(如list、tuple、range、str)、集合(如 set)和映射对象(如dict)。
基本形式
for循环的基本格式:
for 临时变量 in 可迭代对象:
代码块
实例:遍历打印一个list中的元素

names = [&#39;Tom&#39;, &#39;Peter&#39;, &#39;Jerry&#39;, &#39;Jack&#39;]
for name in names:
  print(name)
登入後複製


对于序列,也通过索引进行迭代:

names = [&#39;Tom&#39;, &#39;Peter&#39;, &#39;Jerry&#39;, &#39;Jack&#39;]
for i in range(len(names)):
  print(names[i])
登入後複製


执行结果:
Tom
Peter
Jerry
Jack
for...else
与while..else基本一致,不再赘述。
3. 循环控制语句
循环控制语句可以更改循环体中程序的执行过程,如中断循环、跳过本次循环。
循环控制语句 说明
break 终止整个循环
contine 跳过本次循环,执行下一次循环
pass pass语句是个空语句,只是为了保持程序结构的完整性,没有什么特殊含义。pass语句并不是只能用于循环语句中,也可以用于分支语句中。
实例1:遍历0-9范围内的所有数字,并通过循环控制语句打印出其中的奇数

for i in range(10):
  if i % 2 == 0:
    continue
  print(i, end=&#39; &#39;)
登入後複製


输出结果:1 3 5 7 9
实例2:通过循环控制语句打印一个列表中的前3个元素

names = [&#39;Tom&#39;, &#39;Peter&#39;, &#39;Jerry&#39;, &#39;Jack&#39;, &#39;Lilly&#39;]
for i in range(len(names)):
  if i >= 3:
    break
  print(names[i])
登入後複製


输出结果:
Tom
Peter
Jerry
4. 循环嵌套
循环嵌套是指:在一个循环体里面嵌入另一循环。
实例1:通过while循环打印99乘法表

j = 1
while j <= 9:
  i = 1
  while i <= j:
    print('%d*%d=%d' % (i, j, i*j), end='\t')
    i += 1
  print()
  j += 1
登入後複製


实例2:通过for循环打印99乘法表

for j in range(1, 10):
  for i in range(1, j+1):
    print('%d*%d=%d' % (i, j, i*j), end='\t')
    i += 1
  print()
  j += 1
登入後複製


输出结果:
1*1=1  
1*2=2   2*2=4  
1*3=3   2*3=6   3*3=9  
1*4=4   2*4=8   3*4=12  4*4=16  
1*5=5   2*5=10  3*5=15  4*5=20  5*5=25  
1*6=6   2*6=12  3*6=18  4*6=24  5*6=30  6*6=36  
1*7=7   2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49  
1*8=8   2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64  
1*9=9   2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81

以上是Python流程控制語句的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!