程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python循環結構之for循環

編輯:Python

內容回顧

  • 邏輯運算符回顧
    連接多個條件運算符,and、or、not
    問題:連接多個條件的運算返回的是布爾值還是數據值??

    • 如果所有的條件都是數據值,那麼返回的就是數據值

      print(0 and 2 and 5) # 5
      print(0 or 1 or 3 or 5) # 1
      
    • 如果所有的條件都是表達式,那麼返回的是布爾值

      print(1 < 0 and True and 3 > 1) # False
      print(1 < 0 or True or 3 > 1) # True
      
    • 如果條件既有表達式又有數據值,那麼返回的結果就要看連接的邏輯運算符是and還是or

    • 在遇到邏輯運算符都是and的情況時,從前到後要依次看條件是否都成立,最後一個條件是數據值就返回數據值,如果是表達式,就返回布爾值。

      print(1 and 1 < 2) # True
      print(1 and 3 and True and 56) # 56
      
    • 在遇到邏輯運算符都是or的情況時,從前向後依次看,遇到的第一個條件結果成立的時候,就返回,如果是數據值就返回數據值,如果是表達式就返回布爾值

      print(1 or 1 < 3 or True) # 1
      print(3 > 1 or 1 < 2) # True
      
    • 遇到多種運算符混合使用的時候,需要考慮優先級,()>not>and>or,遇到具體的數據值就返回數據值,遇到表達式,就返回布爾值

      print(1 and 3 > 2 or 5 or False and 3 == 3) # True
      print(1 < 0 and 3 or 5 or False and 3 == 3) # 5
      
    • not的結果返回的只能是布爾值

  • 循環結構之while基本語法

    `while` 條件
    條件成立後執行的子代碼
    
  • while+break

    `while` 條件:
    條件成立後執行的子代碼
    break
    

    break的用法是可以終止循環,如果是多個條件循環嵌套的情況時,break只是終止的他所在的那層循環不會影響其他的循環

  • while+continue

    `while` 條件:
    條件成立後執行的子代碼
    continue`
    

    continue的用法是跳過這次循環,繼續執行下次循環

  • while+else

    `while` 條件:
    條件成立後執行的子代碼
    `else`:
    提前定義好的代碼
    

    else的用法是正常在循環體結束後執行的,不是異常執行,else與while同級

  • while的循環嵌套

    `while` 條件:
    條件成立執行的子代碼
    `whlie` 條件
    條件成立後的子代碼
    

    循環嵌套需要注意代碼的層級關系,代碼的縮進,大循環套小循環,只需要循行同級的關系按照順序結構一次向下執行,如果遇到while、if在做另行判斷

  • 死循環和全局標志位

    死循環:循環體代碼不能是連續的計算機任務,盡量不要去使用。

    全局標志位:為了節省break,在開始定義一個True,結尾再重新定義為False

今日學習任務

  • 循環結構之for循環

    for循環能夠做的事情while循環都可以做到,它可以遍歷到任何序列的項目,例如列表、字典、字符串、元組、集合

    • 通過列表索引迭代,一種執行循環的方式是通過索引,適用於列表、元組和集合

      fruits = ['banana', 'apple', 'mango']
      for i in fruits:
      print('當前水果 : %s' % i)
      """
      當前水果 : banana
      當前水果 : apple
      當前水果 : mango
      """
      
      • 語法結構
       `for` 變量名 `in` 可迭代對象:
      ​ for循環的循環體代碼
      

      • for循環的過程,它會拿到給的數據,從前到後依次取出這個數據的每一個數據值然後賦值給前面的變量i,首先拿出第一個數據值綁定給i進行循環體裡執行,執行結束後他會再次回到for循環裡然後再次拿出第二個數據值進行賦值給i,然後繼續執行循環體代碼,其中i是一個動態綁定的,直到數據裡的數據值全部取完後,它會自動結束

      • 變量名的命名:如果待取名的數據有明確的方向,那麼就要做到見名之意

        常見的命名名字有:i、j、k、item

    • 字典的取值,在for循環中,默認我們只能取到K值

      dict = {'name': 'zhangran', 'age': 23, 'gender': 'women'}
      for i in dict:
      print(i)
      """
      name
      age
      gender
      """
      
    • 字符串的取值,for循環中,字符串的取值為單個字符

      str = 'asdfgh'
      for i in str:
      print(i)
      """
      a
      s
      d
      f
      g
      h
      """
      
  • 擴展知識

  1. for的重要方法----range:它是一個能夠幫我們產生一個包含許多數據值的列表,他總共有三種用法
  • `for` 變量名 in range(數字):
    循環體代碼
    

    當range後面只跟了一個數字,從0開始到范圍值-1結束例如:范圍值為4的時候,結果是0,1,2,3,4

  • `for` 變量名 in range(數字1,數字2):
    循環體代碼
    

    當range後面跟了倆個數字,第一個是起止位置,第二個為終止位置,這時候產生的數據值的特點是”顧頭不顧尾“,即左包含右不包含。例如:(1,6),結果是1,2,3,4,5

  • `for` 變量名 in range(數字1,數字2,間隔數):
    循環體代碼
    

    當range後面跟了三個數字,最後一個數字為數據之間的間隔數(也可理解為等差數列)例如:(1,10,2),結果是1,3,5,7,9
    3. range方法實際操作---網絡爬出

    網絡爬蟲:python代碼模擬網絡請求獲取數據

    base_url = 'https://movie.douban.com/top250?start=%s&filter='
    for i in range(0, 250, 25):
    print(base_url % i)
    """
    https://movie.douban.com/top250?start=0&filter=
    https://movie.douban.com/top250?start=25&filter=
    https://movie.douban.com/top250?start=50&filter=
    https://movie.douban.com/top250?start=75&filter=
    https://movie.douban.com/top250?start=100&filter=
    https://movie.douban.com/top250?start=125&filter=
    https://movie.douban.com/top250?start=150&filter=
    https://movie.douban.com/top250?start=175&filter=
    https://movie.douban.com/top250?start=200&filter=
    https://movie.douban.com/top250?start=225&filter=
    """
    
  • for與其他關鍵字一起使用

    1. for + break

      break強制結束所在的那層for循環

    2. for + continue

      continue跳過這次循環繼續下次循環

    3. for + else

      else配合for一起使用 當for循環沒有被強制結束的情況下 循環體結束之後運行else子代碼


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved