1. 程式人生 > >python Day05 迴圈語句 ,for迴圈語句,break語句,continue語句

python Day05 迴圈語句 ,for迴圈語句,break語句,continue語句

目錄:

迴圈語句,for迴圈語句,break語句,continue語句

for 語句(迴圈語句)

  • 作用:
    用來遍歷可迭代物件的資料元素
  • 語法:
    for 變數列表 in 可迭代物件:
    語句塊1 …
    else:
    語句塊2 …
  • 語法說明:
    可迭代物件每次提供一個元素依次賦值給變數列表中的變數,賦值完畢後執行語句塊1,重複執行此步驟
    當可迭代物件不能夠提供資料時,執行else子句部分的語句塊2. 然後退出迴圈
    else子句部分可以省略(同while語句類似)
    .當在語句內部用break終止迴圈時,else子句部分語句塊2不會執行.

    • 可迭代物件是指能依次獲取資料元素的物件

    • 示例見: for.py

    • 練習:

      寫程式,任意輸入一行字串,列印這個符串內有多少個空格’ ‘(要求用for語句,不能用S.count方法)

    • 思考:

      上題能否用while語句實現?

range函式

  • 作用:

    用來建立一個生成一系列整數的可迭代物件(也叫整數序列生成器)
    
    • 呼叫格式:

      range(stop) 從零開始,每次生成一個整數後加1操作,直到stop為止(不包含stop)
      range(start, stop[,step]) 從start開始,每次生成一個整數後移動step,直到stop為止
      (不包含stop,且step可以為負整數

  • 示例:

    range(4)         # 生成 0 1 2 3
    range(3, 6)      # 生成 3 4 5
    range(1, 10, 2)  # 生成 1 3 5 7 9
    range(5, 0, -2)  # 生成 5 3 1
    range(4, 1)      # 空
    

    見: range.py

    • 請問此程式的列印結果是什麼?說明什麼問題?
      i = 10
      for x in range(1, i):
      print(x) # 請問列印幾行?
      i -= 2
    • for 語句巢狀:

    示意:
    for x in “ABC”:
    for y in “123”:
    print(x + y)
    for x in “ABC”:
    for y in “123”:
    for z in “abc”:
    print(x + y + z)

    • 練習:

      用 for 迴圈巢狀列印如下矩形:
      (輸入一個數n(10以內) 代表矩形的寬度和高度)
      如:
      請輸入: 5
      列印如下:
      1 2 3 4 5
      2 3 4 5 6
      3 4 5 6 7
      4 5 6 7 8
      5 6 7 8 9
      請輸入: 3
      列印如下:
      1 2 3
      2 3 4
      3 4 5

continue 語句

  • 作用:
    用於迴圈語句(while,for語句)中,不再執行本次迴圈內continue之後的語句,重新開始一次新的迴圈
  • 說明:
    1. 在while語句中執行 continue語句,將直接跳轉到while語句的真值表達式處重新判斷迴圈條件
    2. 在for語句中執行continue語句,將會從可迭代物件中取下一個元素,繫結變數後再次進行迴圈
  • 示例見:
    continue_for.py
  • 問題:
    輸入一個開始的整數用begin繫結
    輸入一個結束的整數用end繫結
    列印 begin ~ end之間所有的奇數
    begin = int(input(“請輸入開始的整數: “))
    end = int(input(“請輸入結束的整數: “))
    for i in range(begin, end):
    if i % 2 == 0:
    continue
    print(i)

    • 練習:
      寫一個程式,求1 ~ 100之間所有不能被 5,7,11整除的數的和

迴圈語句總結:

while 語句
for 語句:
字串
range函式
break 語句
continue 語句

列表 list

  1. 列表的定義:
    列表是由一系列元素組成的,元素與元素之間可能沒有任何的關聯關係,但他們之間有先後順序關係
    列表是一種容器
    列表是一種序列
    列表是可以被改變的序列

  2. python3 中的序列:
    字串 str
    列表 list
    元組 tuple
    位元組串 bytes
    位元組陣列 bytearray

  3. 建立空列表的字面值:
    L = [] # L 繫結空列表

  4. 建立非空列表的字面值
    L = [1, 2, 3, 4]
    L = [‘Beijing’, ‘shanghai’, ‘shenzhen’]
    L = [1, ‘two’, 3.3, ‘四’]
    L = [1, 2, [3.1, 3.2, 3.3], 4]

  5. 列表的建構函式 list
    list() # 生成一個空的列表 等同於 []
    list(iterable) # 用可迭代物件建立一個列表

  6. 示例:
    list()
    []
    list(“hello”)
    [‘h’, ‘e’, ‘l’, ‘l’, ‘o’]
    list(range(1, 10, 2))
    [1, 3, 5, 7, 9]

  7. 列表的運算:
    運算子:
    + += * *=

    • 用於拼接列表
      x = [1,2,3]
      y = [4,5,6,7]
      z = x + y # z = [1, 2, 3, 4, 5, 6, 7]
      += 用原列表與右側列表拼接,並用變數繫結新列表
      x = [1,2,3]
      x += [4,5,6] # x = [1,2,3,4,5,6]

      • 生成重複的列表
        x = [1,2] * 3 # x = [1,2,1,2,1,2]
        y = 3 * [5,6] # y = [5,6,5,6,5,6]

      *= 生成重複的列表,並給原變數賦值
      x = [3,4]
      x *= 2 # x = [3,4,3,4]
      y = 3
      y *= [7,8] # y = [7,8,7,8,7,8]

  8. 列表的比較運算:
    運算子:
    < <= > >= == !=
    示例:
    [1,2,3] < [1,2,4] # True
    [1,3] > [1,2,4] # True
    [5] < [5, 0] # True
    [“ABC”, “123”] > [‘abc’, ‘456’] # False
    [1, “two”] > [“two”, 1] # TypeError
    [1, 2] < [3.3, 4] # True
    [1] < [‘2’] # TypeError

  9. 練習:
    用迴圈輸入文字,將每次輸入的文字儲存在一個列表L中,當輸入空行時結束輸入.並列印列表 L 的內容

  10. 課後練習:


    1. 輸入一個Unicode的開始值 用變數begin繫結
      輸入一個………結束值 用變數stop繫結
      列印開始值至結束值之間的所有對應的文字,生成字串並列印
      請輸入開始值: 20013
      請輸入結束值: 20050
      列印:
      中丮丯………..乑乒
    2. 輸入一個整數(代表樹幹的高度)
      列印如下一棵聖誕樹
      輸入:2
      *
      *
      *
      *
      輸入:3
      *
      *
      *
      *
      *
      *
    3. (改進上述程式碼)輸入一個整數(代表樹幹的高度)
      列印如下一棵聖誕樹
      輸入:3
      1
      222
      33333
      *
      *
      *
    4. 輸入一個正整數,列印這個數是否是素數(prime)
      提示:
      素數也叫質數,是隻能被1和自身整數的整數
      如:
      請輸入: 5
      列印:
      5 是素數

      請輸入: 6
      列印:
      6 不是素數

      素數: 2 3 5 7 11 13 17 19 23 …