PYTHON程式語言的學習-條件判斷與迴圈

條件判斷

在 Python 語言中,就提供了 if 、 else 、 elif 這三種語法來協助我們實現各種條件判斷和流程控制。
  1. if 敘述
  2. 當程式流程在進行的過程,需要根據某個條件來決定是否執行接下來的動作時,就需要用到 if 敘述:
    if condition: statement 例如:
    a=6
    b=10
    if( a < b ):
        print('a is less than b')
    
    a=6; b=6
    if( a == b):
        print('a is equal to b')
    
    a=6; b=3
    if( a != b):
        print('a is NOT equal to b')
    '''
    statement 前方有四個空格,這個動作叫縮排(indentation)。在 Python 中要去判斷「哪些程式碼屬於某層級之下」,
    使用縮排判斷。只要在同一層縮排就是屬於上方「:」下的內容。
    因此縮排在 Python 中是十分重要的。根據 Python的協定 PEP8 的規定,在 Python 中我們會使用「四個空格」來縮排。
    '''
    
    a is less than b
    a is equal to b
    a is NOT equal to b
    



  3. if-else敘述
  4. if 敘述還可以搭配 else 來使用,讓程式在 if 條件不成立時,便去執行 else 底下所定義的動作;也就是當判斷條件成立時做某事,判斷條件不成立時就做另外一件事。其語法如下: if condition: statement1 for True condition else: statement2 for False condition 例如:
    score = int(input("score:"))
    if (score >= 60):
        print("pass!")
    else:
        print("fail")
    
    
    a=6; b=8
    if( a == b):
        print('a is equal to b')
    else:
        print('a is not equal to b')
    
    
    a = input("a: ")
    b = input("b: ")
    if (a > b):
        print("max: ", a)
    else: 
        print("max: ", b)
    
    a is less than b
    a is equal to b
    a is NOT equal to b
    score:34
    fail
    a is not equal to b
    a: 3
    b: 6
    max:  6
    



  5. if-elif-else敘述
  6. 有的時候需要判斷的可能狀況有很多種時,這時候就可以使用 if-elif-else 結構來描述我們的需求。語法如下:
    if condition1:
        statement1 for True Condition1
    elif condition2 :
        statement2 for True Condition2
    elif condition3 :
        statement3 for True Condition3
    else:
        statements for Each Condition False
    # Note: elif 的個數是沒有限制的,可以依照自己的需求而定。
    
    例如:
    score = int(input("score:"))
    if (score >= 90):
        print("Your grade = A")
    elif (80 <= score < 90):
        print("Your grade = B")
    elif (70 <= score < 80):
        print("Your grade = C")
    elif (60 <= score < 70):
        print("Your grade = D")
    else:
        print("fail")
    
    score:96
    Your grade = A
    score:65
    Your grade = D
    



  7. 巢狀if敘述。
  8. 當我們要在判斷條件中安排更進一步的判斷條件時,就需要用到巢狀 if 結構了。所謂的巢狀 if 敘述是指在 if-else 敘述當中,還有另一組 if-else 敘述,例如:
    SID = input('SID=')
    year = int(SID[1:3])
    print(SID,SID[1:3],year)
    if year < 8:
        print("Graduated")
    elif year <= 11 and year >= 8:
        if year == 11:
            print("Freshman")
        elif year == 10:
            print("Sophomore")
        elif year == 9:
            print("Junior")
        elif year == 8:
            print("Senior")
    else:
        print("Not Registered Yet")
    
    SID=S11210028
    S11210028 11 11
    Freshman
    SID=S10210030
    S10210030 10 10
    Sophomore
    SID=S09210036
    S09210036 09 9
    Junior
    SID=S08210024
    S08210024 08 8
    Senior
    SID=S07210017
    S07210017 07 7
    Graduated
    SID=S12210005
    S12210005 12 12
    Not Registered Yet
    








    迴圈

    1. 單層 for-loop
    2. Python 的 for-loop 語法有三個需要注意的重點:初始值、終止值,以及每次執行迴圈後控制變數遞增或是遞減的變化。 在 Python 程式語言中,range()函式可以很有效率地協助我們創建一個整數序列,用法為 (起始值, 終止值, 遞增(減)值),例如:
      range(10):產生從0到9的整數序列。
      range(1, 11):產生從1到10的整數序列(未指定遞增值的情況下,其遞增值預設為1)。
      range(0, 10, 2):產生從0, 2, 4, 6, 8的整數序列(遞增值為2)。
      sequences = [0, 1, 2, 3, 4, 5]
      for i in sequences:
          print(i)
      
      theBeatles = ['John Lennon', 'Paul McCartney', 'Ringo Starr', 'George Harrison']
      for i in range(len(theBeatles)):
          print(theBeatles[i])
      
      theBeatles = ['John Lennon', 'Paul McCartney', 'Ringo Starr', 'George Harrison']
      for beatle in theBeatles:
          print (beatle)
      
      0
      1
      2
      3
      4
      5
      John Lennon
      Paul McCartney
      Ringo Starr
      George Harrison
      John Lennon
      Paul McCartney
      Ringo Starr
      George Harrison
      



    3. 巢狀for-loop
    4. L=['Taipei','Taichung','Kaoshung']
      for j in L:
          for i in range(5):
              print(j,i)
      
      Taipei 0
      Taipei 1
      Taipei 2
      Taipei 3
      Taipei 4
      Taichung 0
      Taichung 1
      Taichung 2
      Taichung 3
      Taichung 4
      Kaoshung 0
      Kaoshung 1
      Kaoshung 2
      Kaoshung 3
      Kaoshung 4
      



    5. break 和 continue
    6. 迴圈的結束分為規則的結束和不規則的結束。 規則的結束方式是當迴圈的判斷條件不再符合時,迴圈自然結束;而不規則的迴圈結束則是在迴圈自然結束前,我們已經得到想要的運算結果,利用強制中斷的方式來結束迴圈。 Python 提供了兩個指令,用來強制迴圈流程中斷或跳過迴圈中的某些敘述: break:中斷迴圈的執行並跳脫迴圈結構,繼續執行迴圈外的敘述。 continue:不會讓迴圈結束;只跳過迴圈內 continue 後面的剩餘敘述,接著繼續執行下一次的迴圈運作。 也就是說,當程式執行到迴圈結構內的 break 敘述時,break 敘述會中斷迴圈的執行,並且跳出迴圈結構,開始向下執行迴圈結構外的敘述。 因此,對於巢狀迴圈,若最內圈執行到 break 敘述時,則只會使最內圈的迴圈結束,而不是跳脫到整個巢狀迴圈結構外。
      for i in "Hey Jude":
          if i == "u":
              break
          print(i)
      print('====================')
      for i in "Hey Jude":
          if i == "u":
              continue
          print(i)
      
      H
      e
      y
       
      J
      ====================
      H
      e
      y
       
      J
      d
      e
      



    7. while loops
    8. 原則上,透過 for-loop 敘述可以處理的問題大概都可以改用 while-loop 來處理;但即使兩者之間的特性如此類似,其適用範圍還是有一點差別的。 一般而言,for-loop 比較適用在「已知迴圈數」的問題,而 while-loop 則適用在「無法預知迴圈數」的問題上。 當程式需要不斷地重覆某些運算,一直到出現指定的特殊狀況時才停止,這種情形就比較適合用 while-loop 來實現。 while-loop 在執行其內部敘述之前,都會先檢查條件判斷式,如果其判斷值為真 (True),則執行迴圈內部的敘述;否則就結束 while-loop。
      i = 1
      while i <= 10:
          print(i, end=" ")
          i = i + 1
      
      1 2 3 4 5 6 7 8 9 10 
      


      sum = 0
      i = 1
      while i <= 10:
          sum = sum + i
          i = i + 1
      print(sum, end= " ")
      
      55
      



    9. while loop - 3
    10. score=1
      while score > 0:    
          score = int(input("student's score:"))
          if (score >= 90):
              print("Your grade = A")
          elif (80 <= score < 90):
              print("Your grade = B")
          elif (70 <= score < 80):
              print("Your grade = C")
          elif (60 <= score < 70):
              print("Your grade = D")
          else:
              print("fail") 
      
      student's score:95
      Your grade = A
      student's score:90
      Your grade = A
      student's score:85
      Your grade = B
      student's score:80
      Your grade = B
      student's score:79
      Your grade = C
      student's score:70
      Your grade = C
      student's score:65
      Your grade = D
      student's score:60
      Your grade = D
      student's score:59
      fail
      student's score:-1
      fail