首頁 > 軟體

Python中的程式流程控制語句

2022-02-24 16:00:04

前言:

本篇部落格將會講述一下Python語言中的流程控制語句,在高中我們數學中學過程式流程題,達到一個目的往往需要從開始一步一步往下走,有時順序執行、有時面臨選擇、有時面臨迴圈。迴圈與選擇控制著整個流程。看到下面的圖片是不是感覺十分熟悉?順序結構就是從上至下一步步執行,咱就不在這裡多說了。直接拿Python語言中的分支語句開涮。

一、分支語句

在Python中分支語句只有if…elif…else…沒有switch…case…,官方認為if…else…已經可以滿足需求。分支語句的作用就是進行一下判斷,篩選出來符合某種情況的資料,換一種說法就是不同的情況做出不同的事情。

# 單分支結構
if 80>70:
    print('無敵666')
# 多分支結構
s=int(input("請輸入您的考試成績:"))
if 100>=s>=90:
    print("你的成績無敵了")
    if s>95:
        print('你的成績至高無上')
    else:
        print('你的成績一人之下萬人之上')
elif 90>s>60:
    print('你的成績僅僅是合格')
else:
    print('你的成績不合格,或輸入不規範')

# 條件表示式【類似於C++語言中的三目運運算元】
print("我是對的" if 90>80 else "我是錯的")

# 預留位置與物件的布林值
# 每個物件都有布林值,所以物件可以直接放到條件語句中,作為判別條件
# python中也是隻有0或空為bool中的false
# 預留位置就是當你不知道那裡寫什麼,但確實缺少語句處站住位置,編譯器不報錯 pass
ss=int(input("輸入物件:"))
if ss:
    print('yes')
    pass
elif ss>1:
    print('no')
else:
    pass

二、迴圈語句

1.可迭代物件

在說迴圈語句之前,先說一下什麼是可迭代物件,可迭代物件每次返回一個元素主要包含序列、檔案物件、迭代器物件、生成器函數。迭代器是一個物件表示可迭代的資料集合,他的主要特徵就是包括方法__iter__()__next__(),可以實現迭代功能。生成器是一個函數,使用yield語句,每次產生一個值。range物件是一個迭代器物件。在Python中迴圈語句還是分為while與for迴圈。

2.while迴圈

while後面是迴圈條件,在下面的例子中i就是迴圈變數,當迴圈變數不滿足迴圈條件時就退出迴圈,以下例子列印1-100的和:

程式碼如下:

i=1
mysum=0
while i<=100:
   mysum+=i
   i+=1
#    print(mysum)
print(mysum)

3.for迴圈

for迴圈的使用方法如下,一般結合迭代器物件使用。

程式碼如下:

# for迴圈計算100-999之間的水仙花數

for temp in range(100,1000):
   if temp==(temp%10)**3+(temp//10%10)**3+(temp//100)**3:
      print(temp)
# 迭代列印語句
for _ in range(5):
   print('Hello World')


# 利用else 實現密碼輸入錯誤三次報錯,以及輸入正確跳出迴圈

passward=0
for passward in range(3):
   if input('請輸入您的密碼:')!='888888':
      print('密碼輸入錯誤!')
      passward+=1
   else:
      print('密碼正確!')
      break
else:
   print('密碼多次輸入錯誤,自動退出!')

4.九九乘法表

# 綜合案例,巢狀列印99乘法表
for teg in range(1,10):
   temp=1
   while temp<=teg:
      print(str(temp)+'*'+str(teg)+'='+str(teg*temp),end='  ')
      temp+=1
   print()

三.迴圈控制語句

1.break

跳出本層迴圈

2.continue

跳過本次迴圈

3.goto

內建沒有這個語句,但是有的第三方庫中含有該語句 比如:python-goto,感興趣的小夥伴可以用一用。

4.else

這一點還是很獨特的,Python的迴圈語句支援else語句,也就是在迴圈語句之後可以加一句else語句。else程式碼塊內的程式碼被執行的條件是迴圈體沒有被break.還以九九乘法表為例:

for teg in range(1,10):
   temp=1
   while temp<=teg:
      print(str(temp)+'*'+str(teg)+'='+str(teg*temp),end='  ')
      temp+=1
   print()
else:
    print("asdholcnnl")

四、迴圈相關的內建函數

1.enumerate()

這個函數的作用就是為可遍歷的序列加上索引,並且索引開始值是我們可以指定的

s=["Tom","jack","lisa"]
for i,name in enumerate(s,start=1):
    print(f"第{i}個人是{name}")

2.zip()

如果需要並行遍歷多個物件,可以使用這個函數進行打包。zip的作用就是將多個可迭代物件打包成一個個元組然後返回一個可迭代物件。如果被壓縮的每個可迭代物件長度不同那麼按照最短的那個長度合併。利用*運運算元還可以將元組解壓為列表。[*zip(x,y)] 將x,y打包後再轉換為列表形式zip(*zip(x,y)),如果x,y代表一個矩陣,那麼zip(*zip(x,y))就是其轉置

for i,j in zip(range(0,10),range(0,10)):
    print(i*j)

3.map()

map函數可以傳一個函數與多個可迭代列表,如果map傳的函數為None那麼map功能與zip函數相同。
如果傳的是其餘函數,那麼函數將作用與每個物件。需要注意的是可迭代物件的數目要與傳進去函
數的引數數目保持一致。

#結果1,1,12
list(map(abs,[-1,-1,-12]))
#結果1 1 4
list(map(pow,range(3),range(3)))

五、總結

篇部落格主要分享了一下流程控制語句中的分支語句與迴圈語句,分支語句操作起來比較簡單,大家主要掌握一下回圈語句,特別是迴圈語句中的幾個內建函數,無論是在寫演演算法題還是資料分析中都很常用。

到此這篇關於Python中的程式流程控制語句的文章就介紹到這了,更多相關Python程式流程控制語句內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com