<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 3192字,需瀏覽 7分鐘

           ·

          2021-12-26 03:38

          大家好,我又來啦!第二次給螞蟻老師投稿了,上次作為初級小白整理了最基礎概念部分的學習筆記,不僅找到了很好學習方法,自信心還倍增。這一個周又向前邁了一大步,學習了計算機的流程控制中關于各種結構,以及里面的幾種循環(huán),并且通過分類能夠區(qū)分它們之間的相似和不同處。也整理了流程控制語句break和continue、的用法和它們之間的區(qū)別、內置函數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 例:從鍵盤輸入一個整數,編寫程序讓計算機判斷是奇數還是偶數
          num=int(input('請輸入一個整數'))
          請輸入一個整數8
          if?num%2==0:???????????????#條件判斷,如果是偶數和2的余數為0,奇數和2的余數為1. 二選一執(zhí)行。
          ????print(num,'是偶數')?????
          else:
          ????print(num,'是奇數')
          8 是偶數
          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 例:從鍵盤錄入一個整數成績90-100 A 80-89 B 70-79 C 60-69 D 0-59 E 小于0或大于100 為非法數據(不在范圍內)
          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

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

          num_a=int(input('請輸入一個整數'))
          num_b=int(input('請輸入一個整數'))
          請輸入一個整數10
          請輸入一個整數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)體

          定義函數時的函數體
          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之間的偶數和

          sum=0
          a=1
          while?a<=100:
          ????if?a%2==0:????????#替代代碼??偶、奇數?if?bool(a%2)==0:?????if?not?bool?(a%2):?
          ????????sum+=a
          ????a+=1
          print('1-100之間的偶數和',sum)
          1-100之間的偶數和 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之間的偶數和

          sum=0???#用于儲存偶數和
          for?a?in?range(1,101):
          ????if?a%2==0:
          ????????sum+=a
          print('1-100之間偶數和:',sum)
          1-100之間偶數和: 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的倍數,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):???????????#行數,執(zhí)行三次,一次是一行
          ????for?i?in?range(1,5):???????#列數,一行中執(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

          內置函數range()

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

          range()函數

          用于生成一個整數序列

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

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

          返回值是一個迭代器對象

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

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

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

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

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

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

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

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

          判斷指定的整數,在序列中是否存在 ? 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一切皆對象,所有的對象都有一個布爾值

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

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

          print(bool(False))
          False
          print(bool(0))???#數字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
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久久天天躁日日躁狠狠躁 | 国产伦子伦一级A片免费看老牛 | 国内一级毛片 | 亚洲黄色在线电影 | 青青草视频色版 |