欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一篇文章搞懂Python程序流程控制結(jié)構(gòu)

 更新時間:2022年09月23日 10:49:32   作者:北極的三哈  
這篇文章主要給大家介紹了關(guān)于Python程序流程控制結(jié)構(gòu)的相關(guān)資料,本節(jié)學(xué)習(xí)了Python程序的控制結(jié)構(gòu)之順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu),文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

一、程序的組織結(jié)構(gòu)

1.三種基本結(jié)構(gòu)

1996年,計算機科學(xué)家證明了這樣的事實:任何簡單或復(fù)雜的算法都可以由順序結(jié)構(gòu)、選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)這三種基本結(jié)構(gòu)組合而成

2.程序流程圖

程序流程圖是一種表達程序控制結(jié)構(gòu)的方式,主要用于關(guān)鍵部分的程序分析和過程描述,由一系列圖形、流程線和文字說明等組成。

二、順序結(jié)構(gòu)

程序按照線性順序依次執(zhí)行的一種運行方式。

例:把大象裝冰箱分幾步:

# 把大象裝冰箱分幾步
print('--------程序開始--------')
print('1.把冰箱門打開')
print('2.把大象裝進冰箱')
print('3.關(guān)上冰箱門')
print('--------程序結(jié)束--------')

二、選擇結(jié)構(gòu)(分支結(jié)構(gòu))

程序根據(jù)判斷條件的布爾值選擇性地執(zhí)行部分代碼明確的讓計算機知道在什么條件下,該去做什么。

1.單分支 if

中文語義:如果......就......

語法結(jié)構(gòu):

if 條件表達式:
    條件執(zhí)行體

if條件語句:判斷一次,條件為True時執(zhí)行一次

# if條件語句 判斷一次 條件為True時執(zhí)行一次

money = 100
s = int(input('請輸入取款金額:'))
if s <= 100:
    money = money - s
    print('取款成功,余額為', money)

2.雙分支 if…else

中文語義:如果......不滿足......就......

語法結(jié)構(gòu):

if 條件表達式:
  條件執(zhí)行體
else:
  條件執(zhí)行體2

雙分支結(jié)構(gòu)if...else,二選一執(zhí)行

'''雙分支結(jié)構(gòu)if...else,二選一執(zhí)行'''

# 從鍵盤輸入一個整數(shù),編寫程序讓計算機判斷是奇數(shù)還是偶數(shù)
num = int(input('請輸入一個整數(shù):'))
if num % 2 == 0:
    print(num, '是偶數(shù)')
else:
    print(num, '是奇數(shù)')

3.多分支 if…elif…else

中文語義:如果......就......如果......不滿足......就......

語法結(jié)構(gòu):

if 條件表達式:
   條件執(zhí)行體
elif   條件表達式:
   條件執(zhí)行體
elif   條件表達式:
  條件執(zhí)行體
elif   條件表達式:
  條件執(zhí)行體
else:
  條件執(zhí)行體

例:
從鍵盤錄入一個整數(shù)成績:
90-100 : A
80-89 : B
70-79 : C
60-69 : D
0-59 :E
小于0或大于100 不及格

代碼:

num = int(input('從鍵盤輸入一個成績:'))
if 90 <= num <= 100:
    print('A')
elif 80 <= num <= 89:
    print('B')
elif 70 <= num <= 79:
    print('C')
elif 60 <= num <= 69:
    print('D')
elif 0 <= num <= 59:
    print('E')
else:
    print('不及格')

4. 嵌套if的使用

語法結(jié)構(gòu)

if 條件表達式1:
    if 內(nèi)層條件表達式:
        內(nèi)層執(zhí)行體1
    else:
    內(nèi)層執(zhí)行體2
else:
    條件執(zhí)行體

例:商場消費

會員:
    >=200    8折
    >=100    9折
    <100     不打折
非會員: 
    >=200    9.5折
    <100     不打折

代碼:

answer = input('您是會員嗎?y/n')
money = float(input('請輸入您的購物金額:'))
# 外層判斷是否是會員
if answer == 'y':  # 會員
    if money >= 200:
        print('打8折,付款金額為:', money*0.8)
    elif money >= 100:
        print('打9折,付款金額為:', money*0.9)
    else:
        print('不打折,付款金額為:', money)
else:  # 非會員
    if money >= 200:
        print('打9.5折,付款金額為:', money*0.95)
    else:
        print('不打折,付款金額為:', money)

5.三元表達式

語法結(jié)構(gòu)x if 判斷條件 else y

運算規(guī)則:如果判斷條件的布爾值為True,條件表達式的返回值為x,否則條件表達式的返回值為False

# 條件表達式   x if 判斷條件 else y
a = int(input('請輸入第一個整數(shù):'))
b = int(input('請輸入第二個整數(shù):'))

'''if a >= b:
    print(a, '>=', b)
else:
    print(a, '<', b)'''


# 條件表達式
print(str(a) + '小于' + str(b)) if a < b else (str(a) + '大于' + str(b))

6.pass語句

pass語句什么都不做,只是一個占位符,用在語法上需要語句的地方

def fun(a, b):
    pass

什么時候使用pass語句:先搭建語法結(jié)構(gòu),還沒想好代碼怎么寫的時候 。

pass語句與哪些語句一起使用:

  • if語句的條件執(zhí)行體
  • for-in語句的循環(huán)體
  • 定義函數(shù)def時的函數(shù)體
a = 1
b = 2

if a < b:
    pass


for i in range(10):
    pass


def fun(a, b):
    pass

三、循環(huán)結(jié)構(gòu)

反復(fù)做同一件事情的情況,稱為循環(huán),Python語言的循環(huán)結(jié)構(gòu)包括兩種:遍歷循環(huán)無限循環(huán)。遍歷循環(huán)使用保留字forin依次提取遍歷結(jié)構(gòu)各元素進行處理;無限循環(huán)使用保留字while根據(jù)判斷條件執(zhí)行程序

1.range()函數(shù)的使用

range():用于生成一個整數(shù)序列

創(chuàng)建range對象的三種方式

代碼:

# 第一種創(chuàng)建方式  range(stop)
range(10)
print(range(10))  # range(0,10) 返回值是一個迭代器對象 默認從0開始,默認步長為1
print(list(range(10)))  # 用于查看range對象中的整數(shù)序列 list-->列表

# 第二種創(chuàng)建方式 range(start, stop)
print(range(0, 10))

# 第三種創(chuàng)建方式 range(start,stop,step)
print(range(0, 10, 1))

range()函數(shù)的返回值是一個迭代器對象

range類型的優(yōu)點 :不管range對象表示的整數(shù)序列有多長,所有range對象占用的內(nèi)存空間都是相同的,因為僅僅需要存儲start,stop和step,只有當(dāng)用到range對象時,才會去計算序列中的相關(guān)元素

'''內(nèi)置函數(shù) range(start(開始)未指定從0開始, stop(結(jié)束), step(步長)未指定步長為1)'''
r = range(1, 10, 2)
print(r)
print(list(r))  # 列表 [1, 3, 5, 7, 9]
print(tuple(r))  # 元組 (1, 3, 5, 7, 9)
print(set(r))  # 字典 {1, 3, 5, 7, 9}

innot in 判斷整數(shù)序列中是否存在(不存在)指定的整數(shù)

'''判斷指定整數(shù)在序列中是否存在 in, not in'''
print(3 in r)  # True
print(4 in r)  # False
print(3 not in r)  # False
print(4 not in r)  # True

for value in range(10):
    print(value, end=' ')

2.遍歷循環(huán)for-in

for-in循環(huán)

  • in表達從(字符串、序列等)中依次取值,又稱為遍歷
  • for-in遍歷的對象必須是可迭代對象

for-in的語法結(jié)構(gòu)

for  自定義的變量  in 可迭代對象:
      循環(huán)體

for-in的執(zhí)行圖

# for in循環(huán)
# in 表達是依次 從 (字符串,序列等) 中依次取值,又稱遍歷
# for in遍歷對象必須是可迭代對象

'''for in 語法結(jié)構(gòu)'''
# for 自定義變量 in 可迭代對象:
#    循環(huán)體

for i in 'hello':
    print(i, end=' ')
print('')
for i in range(10):
    print(i, end=' ')
print('')
# 在循環(huán)體中如果不需要使用到自定義變量,可將自定義變量寫為下劃線('_')
for _ in range(3):   # 3表示次數(shù)
    print('hello')

使用for循環(huán) 計算1-100之間的偶數(shù)和

# 使用for循環(huán) 計算1-100之間的偶數(shù)和
sum = 0
for item in range(101):
    if item % 2 == 0:
        sum += item
print('1-100之間的偶數(shù)和為:', sum)

輸出100-999之間的水仙花數(shù)

'''輸出100-999之間的水仙花數(shù)  這個數(shù)的個位上的三次方 + 十位上的三次方 + 百位上的三次方  = 這個數(shù)'''
for item in range(100, 1000):
    ge = item % 10
    shi = item % 100 // 10  # item//10%10
    bai = item // 100
    if item == ge**3+shi**3+bai**3:
        print(item)

3.無限循環(huán)while

語法結(jié)構(gòu)

while  條件表達式:
    條件執(zhí)行體(循環(huán)體)

四步循環(huán)法:

  • 初始化變量
  • 條件判斷
  • 條件執(zhí)行體(循環(huán)體)
  • 改變變量
  • 打印輸出

計算0-4之間的累加和

a = 0  # 1.初始化變量
s = 0
while a <= 4:  # 2.條件判斷
    s += a  # 3.條件執(zhí)行體
    a += 1  # 4.改變變量
    print(s)  # 5.打印輸出

選擇結(jié)構(gòu)的if與循環(huán)結(jié)構(gòu)while的區(qū)別

  • If是判斷一次,條件為True執(zhí)行一行
  • while是判斷N+1次,條件為True執(zhí)行N

4.循環(huán)控制break和continue

循環(huán)結(jié)構(gòu)有兩個輔助循環(huán)控制的保留字:breakcontinue。

4.1break

break用來跳出最內(nèi)層forwhile循環(huán),脫離該循環(huán)后程序繼續(xù)執(zhí)行循環(huán)后續(xù)代碼,通常與 分支結(jié)構(gòu) if 一起使用。

例:從鍵盤錄入密碼,最多錄入三次,如果正確就結(jié)束循環(huán)

# for 循環(huán)
for _ in range(3):  # range()函數(shù)可以用作for循環(huán)的循環(huán)次數(shù) 3 表示for執(zhí)行了3次
    pwd = '888'
    a = input('請輸入密碼:')
    if a == pwd:
        print('密碼正確')
        break
    else:
        print('密碼錯誤,請重新輸入密碼')

# while 循環(huán),四步循環(huán)法
a = 0
while a < 3:
    '''條件執(zhí)行體(循環(huán)體)'''
    b = '888'
    pwd = input('請輸入密碼:')
    if pwd == b:
        print('密碼正確')
        break
    else:
        print('密碼錯誤')
    a += 1

4.2continue

continue語句用來結(jié)束當(dāng)次循環(huán),即跳出循環(huán)體中下面尚未執(zhí)行的語句,但不跳出當(dāng)前循環(huán),進入下一次循環(huán),通常與分支結(jié)構(gòu) if 一起使用

例:要求輸出1-50-之間所有5的倍數(shù)

# for 循環(huán)
for i in range(1, 51):
    if i % 5 == 0:
        print(i)

# while 循環(huán)
a = 1
while a <= 50:
    if a % 5 == 0:
        print(a)
    a += 1

# continue 語句
for item in range(1, 51):
    if item % 5 != 0:
        continue
    print(item)

5.嵌套循環(huán)

循環(huán)結(jié)構(gòu)中又嵌套了另外的完整的循環(huán)結(jié)構(gòu),其中內(nèi)層循環(huán)做為外層循環(huán)的循環(huán)體執(zhí)行。

例1:打印一個三行四列矩形

for _ in range(3):
    for _ in range(4):
        print('-', end='\t')
    print()

例2:輸出乘法口訣表

for i in range(1, 10):
    for j in range(1, i+1):
        print(i, 'x', j, '=', i*j, end='\t')
    print()

四、總結(jié)

到此這篇關(guān)于Python程序流程控制結(jié)構(gòu)的文章就介紹到這了,更多相關(guān)Python程序流程控制結(jié)構(gòu)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解用python計算階乘的幾種方法

    詳解用python計算階乘的幾種方法

    這篇文章主要介紹了詳解用python計算階乘的幾種方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 如何利用Python獲取文本中的電話號碼實例代碼

    如何利用Python獲取文本中的電話號碼實例代碼

    Python的文本處理是經(jīng)常碰到的一個問題,下面這篇文章主要給大家介紹了關(guān)于如何利用Python獲取文本中的電話號碼的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-09-09
  • Python中的引用和拷貝淺析

    Python中的引用和拷貝淺析

    這篇文章主要介紹了Python中的引用和拷貝淺析,本文同時講解了深拷貝和淺拷貝、引用計數(shù)和垃圾回收等內(nèi)容,需要的朋友可以參考下
    2014-11-11
  • Cython處理C字符串的示例詳解

    Cython處理C字符串的示例詳解

    如果你在使用 Cython 加速 Python 時遇到了瓶頸,但還希望更進一步,那么可以考慮將數(shù)據(jù)的類型替換成 C 的類型,所以本文為大家介紹了Cython處理C字符串的方法,希望對大家有所幫助
    2023-01-01
  • Python Flask異步發(fā)送郵件實現(xiàn)方法解析

    Python Flask異步發(fā)送郵件實現(xiàn)方法解析

    這篇文章主要介紹了Python Flask異步發(fā)送郵件實現(xiàn)方法解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • 詳解基于Transformer實現(xiàn)電影評論星級分類任務(wù)

    詳解基于Transformer實現(xiàn)電影評論星級分類任務(wù)

    這篇文章主要為大家介紹了詳解基于Transformer實現(xiàn)電影評論星級分類任務(wù)過程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • python取均勻不重復(fù)的隨機數(shù)方式

    python取均勻不重復(fù)的隨機數(shù)方式

    今天小編就為大家分享一篇python取均勻不重復(fù)的隨機數(shù)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • python logging日志模塊以及多進程日志詳解

    python logging日志模塊以及多進程日志詳解

    本篇文章主要介紹了python logging日志模塊以及多進程日志詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • python更新數(shù)據(jù)庫中某個字段的數(shù)據(jù)(方法詳解)

    python更新數(shù)據(jù)庫中某個字段的數(shù)據(jù)(方法詳解)

    這篇文章主要介紹了python更新數(shù)據(jù)庫中某個字段的數(shù)據(jù)方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • Python如何利用struct進行二進制文件或數(shù)據(jù)流

    Python如何利用struct進行二進制文件或數(shù)據(jù)流

    這篇文章主要介紹了Python如何利用struct進行二進制文件或數(shù)據(jù)流問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01

最新評論