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

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

 更新時(shí)間: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),文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

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

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

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

2.程序流程圖

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

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

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

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

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

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

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

1.單分支 if

中文語(yǔ)義:如果......就......

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

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

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

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

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

2.雙分支 if…else

中文語(yǔ)義:如果......不滿足......就......

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

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

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

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

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

3.多分支 if…elif…else

中文語(yǔ)義:如果......就......如果......不滿足......就......

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

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

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

代碼:

num = int(input('從鍵盤輸入一個(gè)成績(jī):'))
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的使用

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

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

例:商場(chǎng)消費(fèi)

會(huì)員:
    >=200    8折
    >=100    9折
    <100     不打折
非會(huì)員: 
    >=200    9.5折
    <100     不打折

代碼:

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

5.三元表達(dá)式

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

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

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

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


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

6.pass語(yǔ)句

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

def fun(a, b):
    pass

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

pass語(yǔ)句與哪些語(yǔ)句一起使用:

  • if語(yǔ)句的條件執(zhí)行體
  • for-in語(yǔ)句的循環(huán)體
  • 定義函數(shù)def時(shí)的函數(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語(yǔ)言的循環(huán)結(jié)構(gòu)包括兩種:遍歷循環(huán)無(wú)限循環(huán)。遍歷循環(huán)使用保留字forin依次提取遍歷結(jié)構(gòu)各元素進(jìn)行處理;無(wú)限循環(huán)使用保留字while根據(jù)判斷條件執(zhí)行程序

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

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

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

代碼:

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

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

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

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

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

'''內(nèi)置函數(shù) range(start(開始)未指定從0開始, stop(結(jié)束), step(步長(zhǎng))未指定步長(zhǎng)為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表達(dá)從(字符串、序列等)中依次取值,又稱為遍歷
  • for-in遍歷的對(duì)象必須是可迭代對(duì)象

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

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

for-in的執(zhí)行圖

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

'''for in 語(yǔ)法結(jié)構(gòu)'''
# for 自定義變量 in 可迭代對(duì)象:
#    循環(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) 計(jì)算1-100之間的偶數(shù)和

# 使用for循環(huán) 計(jì)算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ù)  這個(gè)數(shù)的個(gè)位上的三次方 + 十位上的三次方 + 百位上的三次方  = 這個(gè)數(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.無(wú)限循環(huán)while

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

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

四步循環(huán)法:

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

計(jì)算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)有兩個(gè)輔助循環(huán)控制的保留字:breakcontinue。

4.1break

break用來(lái)跳出最內(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('請(qǐng)輸入密碼:')
    if a == pwd:
        print('密碼正確')
        break
    else:
        print('密碼錯(cuò)誤,請(qǐng)重新輸入密碼')

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

4.2continue

continue語(yǔ)句用來(lái)結(jié)束當(dāng)次循環(huán),即跳出循環(huán)體中下面尚未執(zhí)行的語(yǔ)句,但不跳出當(dāng)前循環(huán),進(jì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 語(yǔ)句
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:打印一個(gè)三行四列矩形

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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解用python計(jì)算階乘的幾種方法

    詳解用python計(jì)算階乘的幾種方法

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

    如何利用Python獲取文本中的電話號(hào)碼實(shí)例代碼

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

    Python中的引用和拷貝淺析

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

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

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

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

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

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

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

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

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

    python logging日志模塊以及多進(jìn)程日志詳解

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

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

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

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

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

最新評(píng)論