1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        小白學Python,分享下我自己的學習筆記【二】

        共 3192字,需瀏覽 7分鐘

         ·

        2021-12-26 03:38

        大家好,我又來啦!第二次給螞蟻老師投稿了,上次作為初級小白整理了最基礎概念部分的學習筆記,不僅找到了很好學習方法,自信心還倍增。這一個周又向前邁了一大步,學習了計算機的流程控制中關于各種結構,以及里面的幾種循環(huán),并且通過分類能夠區(qū)分它們之間的相似和不同處。也整理了流程控制語句break和continue、的用法和它們之間的區(qū)別、內置函數(shù)range的使用,以及它們跟各種循環(huán)的搭配使用,嵌套等使用。

        程序的組織結構(計算機的流程控制)

        任何簡單或復雜的算法都可以由順序結構、選擇結構和循環(huán)結構這三種基本結構組成。程序的組織結構包含以下三種:

        1.順序結構

        2.選擇結構:if語句

        3.循環(huán)結構:while語句、for in語句

        順序結構

        程序從上到下順序地執(zhí)行代碼,中間沒有任何的判斷和跳轉,知道程序結束 例:“把大象放進冰箱一共分幾步”

        例:“把大象放進冰箱一共分幾步”

        print('1.把大象門打開')
        print('2.把大象放進冰箱')
        print('3.把冰箱門關上')
        1.把大象門打開
        2.把大象放進冰箱
        3.把冰箱門關上

        選擇結構

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

        1.單分支結構

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

        語法結構:if 條件表達式:

            條件執(zhí)行式  例:
        money=1000???#余額
        s=int(input('請輸入取款金額'))??#取款金額
        請輸入取款金額600
        if?money>=?s:???#判斷余額是否充足,這是條件表達式
        ????money=money-s??#只有條件為True,才會執(zhí)行
        ????print('取款成功,余額為:',money)
        取款成功,余額為:400
        2.雙分支結構

        二選一執(zhí)行

        中文語義:如果......不滿足......就...... ? (二選一執(zhí)行)

        語法結構:if條件表達式:

            條件執(zhí)行體1

        else:


        條件執(zhí)行體2 例:從鍵盤輸入一個整數(shù),編寫程序讓計算機判斷是奇數(shù)還是偶數(shù)
        num=int(input('請輸入一個整數(shù)'))
        請輸入一個整數(shù)8
        if?num%2==0:???????????????#條件判斷,如果是偶數(shù)和2的余數(shù)為0,奇數(shù)和2的余數(shù)為1. 二選一執(zhí)行。
        ????print(num,'是偶數(shù)')?????
        else:
        ????print(num,'是奇數(shù)')
        8 是偶數(shù)
        3.多分支結構

        多選一執(zhí)行,常用于解決連續(xù)的區(qū)間段問題

        中文語義:身高在180以上嗎?不是

            身高在170-180之間嗎?不是

        身高在160-170之間嗎?不是


        身高在150-160之間嗎?不是

        身高在150以下嗎?是

        語法結構:if 條件表達式1:? (條件表達式的為True,就不會往下繼續(xù)執(zhí)行了,條件表達式1為False,就會繼續(xù)往下執(zhí)行2)

              條件執(zhí)行體1

        elif條件表達式2:

        條件執(zhí)行體2

        elif條件表達式N:

        條件執(zhí)行式N

        [else:] (方括號的else是可以省略的,可寫可不寫)

        條件執(zhí)行體N+1 例:從鍵盤錄入一個整數(shù)成績90-100 A 80-89 B 70-79 C 60-69 D 0-59 E 小于0或大于100 為非法數(shù)據(不在范圍內)
        score=int(input('輸入一個成績:'))?
        輸入一個成績:98
        if?score>=90?and?score<=100:
        ????print('A級')
        elif?score>=80?and?score<=89:
        ????print('B級')
        elif?score>=70?and?score<=79:
        ????print('C級')
        elif?score<=60?and?score<=69:
        ????print('D級')
        elif?score>=0?and?score<=59:
        ????print('E級')
        else:
        ????print('對不起,成績有誤,不在有限范圍')
        A級
        4.嵌套if

        語法結構:

        if 條件表達式1:#外分支結構條件表達式

        if 內層條件表達式1:#內分支結構條件表達式,只有外分支結構的條件表達式1為True,才能執(zhí)行此行

        內存條件執(zhí)行體1 #內分支結構條件執(zhí)行式

        else:

        內存條件執(zhí)行體2

        else:條件執(zhí)行體 #外分支結構的條件執(zhí)行式,當外分支結構的條件表達式為False的時候,執(zhí)行此行

        例:會員 ? ?>=200 ?8折

             >=100  9折

        不打折

        非會員 ? >=200 9折

             不打折

        例1:會員

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

        例2:非會員

        answer=input('您是會員嗎?y/n')
        money=float(input('請輸入您的購物金額'))
        您是會員嗎?y/nn
        請輸入您的購物金額300
        if?answer=='y':??????#是會員
        ????if?money>=200:
        ????????print('打8折,付款金額為:',money*0.8)
        ????elif?mone>=100:
        ????????print('打9折,付款金額為:',money*0.9)
        else:???????????????#非會員
        ????if?money>=200:
        ????????print('打9.5折,付款金額:',money*0.95)
        ????else:
        ????????print('不打折,付款金額:',money)??
        打9.5折,付款金額: 285.0
        5.條件表達式

        條件表達式是 :if......else的簡寫

        語法結構:X if 判斷條件 else Y

        運算法則:如果判斷條件的布爾值為True,條件表達式的返回值為X,否則條件表示的返回值為False

        例:從鍵盤錄入兩個整數(shù),比較兩個整數(shù)的大小

        num_a=int(input('請輸入一個整數(shù)'))
        num_b=int(input('請輸入一個整數(shù)'))
        請輸入一個整數(shù)10
        請輸入一個整數(shù)20
        if?num_a>=num_b:
        ????print(num_a,'大于等于',num_b)
        else:
        ????print(num_a,'小于',num_b)
        10 小于 20

        條件表達式的寫法(簡化代碼),也就是if......else的簡寫寫法如下:

        print(str(num_a)+'大于等于'+str(num_b)??if?num_a>=num_b?else??str(num_a)+'小于'+str(num_b))

        10小于20
        6.pass語句

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

        什么時候使用:先搭建語法結構,還沒想好代碼怎么寫的時候

        哪些語句一起使用:

        if語句的條件執(zhí)行體

        for-in語句的循環(huán)體

        定義函數(shù)時的函數(shù)體
        answer=input('您是會員嗎?y/n')????#判斷是否是會員
        if?answer=='y':
        ????pass????????#沒想好是會員的時候代碼怎么寫,先用pass搭建語法結構,這樣語法不會報錯??
        else:
        ????pass???????#沒想好是會員的時候代碼怎么寫,先用pass搭建語法結構,這樣語法不會報錯?
        您是會員嗎?y/ny

        循環(huán)結構

        反復做同一件事情的情況,稱為循環(huán)

        循環(huán)結構的流程圖

        循環(huán)的分類:while

            for-in

        while循環(huán)語法機構:

         while 條件表達式:

        條件執(zhí)行式(循環(huán)體)

        選擇機構的if與循環(huán)結構while的區(qū)別:if是判斷一次,條件為True執(zhí)行一行 while是判斷N+1次,條件為True執(zhí)行N次

        #例:while 循環(huán)
        a=1
        #判斷條件表達式
        while?a<10:???????
        ????#執(zhí)行條件執(zhí)行體
        ????print(a)
        ????a+=1
        1
        2
        3
        4
        5
        6
        7
        8
        9

        while循環(huán)的執(zhí)行流程

        四部循環(huán)法:

        初始化變量

        條件判斷

        條件執(zhí)行體(循環(huán)體)

        改變變量 (初始化變量與條件判斷的變量與改變的變量為同一個)

        while循環(huán)的執(zhí)行流程

        例:計算0到4之間的累加和

        sum=0?????????????????#用于存儲累加和
        a=0???????????????????#1.初始化標量
        while?a<5:???????????#2.條件判斷
        ????sum+=a???????????#3.條件執(zhí)行體(循環(huán)體)
        ????a+=1?????????????#4.改變變量
        print('和為',sum)????
        和為 10

        例:計算0-100之間的偶數(shù)和

        sum=0
        a=1
        while?a<=100:
        ????if?a%2==0:????????#替代代碼??偶、奇數(shù)?if?bool(a%2)==0:?????if?not?bool?(a%2):?
        ????????sum+=a
        ????a+=1
        print('1-100之間的偶數(shù)和',sum)
        1-100之間的偶數(shù)和 2550

        for-in 循環(huán)

        in表達從(字符串、序列等)中依次取值,又稱為遍歷

        for-in遍歷的對象必須是可迭代對象

        for-in 語法結構

        for 自定義變量  in 可迭代對象:

        循環(huán)體

        for-in的執(zhí)行圖

        循環(huán)體內不需要訪問自定義變量,可以將自定義變量替代為下_線
        for?item?in?'Python':
        ????print(item)
        P
        y
        t
        h
        o
        n
        for?i?in?range(10):
        ????print(i)
        0
        1
        2
        3
        4
        5
        6
        7
        8
        9

        如果在循環(huán)中不需要使用自定義變量,可將自定義變量寫為“_”

        for?_?in?range(5):????
        ????print('我愛學習')
        我愛學習
        我愛學習
        我愛學習
        我愛學習
        我愛學習

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

        sum=0???#用于儲存偶數(shù)和
        for?a?in?range(1,101):
        ????if?a%2==0:
        ????????sum+=a
        print('1-100之間偶數(shù)和:',sum)
        1-100之間偶數(shù)和: 2550

        流程控制語句break

        用于結束循環(huán)結構,通常與分支結構if一起使用

        for ...in ... :

        ......                

        if ... :

        break

        while(條件):

        ......                

        if ... :

        break

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

        例1.(for ... in...)輸入三次不正確就結束循環(huán)

        for?item?in?range(3):
        ????pwd=input('請輸入密碼:')?
        ????if?pwd=='888':
        ????????print('密碼正確')
        ????????break
        ????else:
        ????????print('密碼不正確')????
        請輸入密碼:999
        密碼不正確
        請輸入密碼:777
        密碼不正確
        請輸入密碼:666
        密碼不正確
        2.(for?...?in...)輸入正確就結束循環(huán)
        for?item?in?range(3):
        ????pwd=input('請輸入密碼:')?
        ????if?pwd=='888':
        ????????print('密碼正確')
        ????????break
        ????else:
        ????????print('密碼不正確')
        請輸入密碼:888
        密碼正確

        例3.用(while)輸入三次不正確就結束循環(huán)

        a=0????????????????????????????#自定義變量
        while?a<3:????????????????????#條件判斷
        ????pwd=input('請輸入密碼:')??#條件執(zhí)行體(循環(huán)體)
        ????if?pwd=='888':
        ????????print('密碼正確')
        ????????break
        ????else:
        ????????print('密碼不正確')
        ????a+=1??????????????????????#改變變量
        請輸入密碼:777
        密碼不正確
        請輸入密碼:999
        密碼不正確
        請輸入密碼:666
        密碼不正確

        例4.用(while)輸入正確就結束循環(huán)

        a=0????????????????????????????#自定義變量????????
        while?a<3:????????????????????#條件判斷
        ????pwd=input('請輸入密碼:')??#條件執(zhí)行體(循環(huán)體)
        ????if?pwd=='888':
        ????????print('密碼正確')
        ????????break
        ????else:
        ????????print('密碼不正確')
        ????a+=1?????????????????????#改變變量
        請輸入密碼:888
        密碼正確

        流程控制語句continue

        用于結束當前循環(huán),進入下一次循環(huán),通常與分支結構中的if一起使用

        for ... in ...:

        ......

        if ... :

        continue

        ...

        while(條件):

        ......

        if ... :

        continue

        ...

        例:要求輸出1到50之間所有5的倍數(shù),5,10,15,20.....

        for?item?in?range(1,51):
        ????if?item%5!=0:
        ????????continue
        ????print(item)
        5
        10
        15
        20
        25
        30
        35
        40
        45
        50

        else語句

        與else語句配合使用的三種情況( if ?,else ?,while )

        if......:

        .....

        else:

        ......

        if條件表達式不成立時執(zhí)行else

        while......:

        ......

        else:

        ......

        for......:

        ......

        else:

        ......

        與while,for搭配使用,沒有碰到break時執(zhí)行else

        例1:與for搭配使用時,遇到break

        for?item?in?range(3):
        ????pwd=input('請輸入密碼:')?
        ????if?pwd=='888':
        ????????print('密碼正確')
        ????????break
        ????else:
        ????????print('密碼不正確')
        else:????????????????????????????????#這里的else是和for搭配使用的
        ????print('對不起,三次密碼均錯誤')
        請輸入密碼:888
        密碼正確
        for?item?in?range(3):
        ????pwd=input('請輸入密碼:')?
        ????if?pwd=='888':
        ????????print('密碼正確')
        ????????break
        ????else:
        ????????print('密碼不正確')
        else:????????????????????????????????#這里的else是和for搭配使用的
        ????print('對不起,三次密碼均錯誤')
        請輸入密碼:777
        密碼不正確
        請輸入密碼:666
        密碼不正確
        請輸入密碼:999
        密碼不正確
        對不起,三次密碼均錯誤

        例2.與while搭配使用時,遇到break

        a=0
        while?a<3:
        ????pwd=input('請輸入密碼')
        ????if?pwd=='888':
        ????????print('密碼正確')
        ????????break
        ????else:
        ????????print('密碼不正確')
        ????a+=1
        else:
        ????print('對不起,三次密碼均錯誤')
        請輸入密碼888
        密碼正確
        a=0
        while?a<3:
        ????pwd=input('請輸入密碼')
        ????if?pwd=='888':
        ????????print('密碼正確')
        ????????break
        ????else:
        ????????print('密碼不正確')
        ????a+=1
        else:
        ????print('對不起,三次密碼均錯誤')
        請輸入密碼777
        密碼不正確
        請輸入密碼999
        密碼不正確
        請輸入密碼666
        密碼不正確
        對不起,三次密碼均錯誤

        嵌套循環(huán)

        循環(huán)結構中又嵌套了另外的完整的循環(huán)結構,其中內層循環(huán)作為外層循環(huán)的循環(huán)體執(zhí)行

        例:輸出一個三行四咧的矩形

        for?i?in?range(1,4):???????????#行數(shù),執(zhí)行三次,一次是一行
        ????for?i?in?range(1,5):???????#列數(shù),一行中執(zhí)行4次輸出
        ????????print('*',end='\t')?????#輸出的是*,不換行輸出
        ????print()

        *	*	*	*	
        * * * *
        * * * *
        for?i?in?range(1,10):
        ????for?j?in?range(1,i+1):
        ????????print(i,'*',j,'=',i*j,end='\t')
        ????print()
        1 * 1 = 1	
        2 * 1 = 2 2 * 2 = 4
        3 * 1 = 3 3 * 2 = 6 3 * 3 = 9
        4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16
        5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25
        6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36
        7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49
        8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64
        9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81

        二重循環(huán)中的break和continue

        二重循環(huán)中的break和contiue用于控制本層循環(huán)

        流程控制語句break與continue在二重循環(huán)中的使用

        例:

        for?i?in?range(5):??????????#代表外層循環(huán)中要執(zhí)行5次
        ????for?j?in?range(1,10):???
        ????????if?j%2==0:
        ????????????break
        ????????print(j)
        1
        1
        1
        1
        1
        for?i?in?range(5):
        ????for?j?in?range(1,10):
        ????????if?j%2==0:
        ????????????continue
        ????????print(j,end='\t')
        ????print()
        1	3	5	7	9	
        1 3 5 7 9
        1 3 5 7 9
        1 3 5 7 9
        1 3 5 7 9

        內置函數(shù)range()

        內置函數(shù):不需要加任何前綴,可以直接使用的函數(shù)(print,input都屬于內置函數(shù))

        range()函數(shù)

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

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

        1.range(stop):創(chuàng)建一個[0,stop)之間的整數(shù)序列,步長為1
        2.range(start,stop):創(chuàng)建一個[start,stop)之間的整數(shù)序列,步長為1
        3.range(start,stop,step):創(chuàng)建一個[start,stop)之間的整數(shù)序列,步長為step

        返回值是一個迭代器對象

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

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

        1.第一種創(chuàng)建方式:只有一個參數(shù)(小括號中只給了一個數(shù))

        a=range(10)
        print(a)?????
        range(0, 10)
        print(list(a))????#用于查看range對象中的整數(shù)序列,默認從0開始,默認相差1稱為步長,list是列表的意思
        [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

        2.第二種創(chuàng)建方式:給了兩個參數(shù)(小括號中給了兩個數(shù))

        a=range(1,10)?????#指定了起始值,從1開始,到10結束(不包括10),默認步長1
        print(list(a))
        [1, 2, 3, 4, 5, 6, 7, 8, 9]

        3.第三種創(chuàng)建方式:給了三個參數(shù)(小括號中給了三個數(shù))

        a=range(1,10,2)
        print(list(a))???#指定了起始值,從1開始,到10結束(不包括10),指定了步長2
        [1, 3, 5, 7, 9]

        判斷指定的整數(shù),在序列中是否存在 ? in與not in

        print(10?in?a)
        False
        print(9?in?a)
        True
        print(10?not?in?a)
        True
        print(9?not?in?a)
        False

        對象的布爾值

        python一切皆對象,所有的對象都有一個布爾值

        獲取對象的布爾值,使用內置函數(shù)bool()

        測試對象的布爾值,以下對象的布爾值為False,其它對象的布爾值均為True

        print(bool(False))
        False
        print(bool(0))???#數(shù)字0
        False
        print(bool(0.0))??
        False
        print(bool(None))??
        False
        print(bool(''))???#長度為零的空字符串
        False
        print(bool(""))???#長度為零的空字符串
        False
        print(bool([]))????#空列表
        False
        print(bool(list()))??#空列表
        False
        print(bool())?????#空元組
        False
        print(bool(tuple()))???#空元組
        False
        print(bool({}))??#空字典
        False
        print(bool(dict()))??#空字典
        False

        對象的布爾值對執(zhí)行的影響,例:

        age=int(input('請輸入您的年齡:'))??#輸入的0的布爾值為False
        請輸入您的年齡:0
        if?age:
        ????print(age)
        else:
        ????print('年齡為:',age)????????#因為布爾值是False,所以執(zhí)行了else
        年齡為: 0


        ?最后,依然是推薦螞蟻老師的《零基礎學Python》的系列課程:



        瀏覽 43
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            申鹤被到爽高潮痉挛视频 | 免费黄色片视频 | 51妺妺嘿嘿午夜成人A片 | 国产欧美一区二区三区四区 | 操美女免费视频 | 操逼片一 | 国产传媒在线观看 | 一块操欧美 | 深爱五月激情网 | 色骚网|