1. 程式人生 > >第007、008講:了不起的分支迴圈1&2 | 學習記錄(小甲魚零基礎入門學習Python)

第007、008講:了不起的分支迴圈1&2 | 學習記錄(小甲魚零基礎入門學習Python)

(標答出處: 魚C論壇)
《零基礎入門學習Python》

基礎題:

  1. if not (money < 100): 上邊這行程式碼相當於?

    if money >= 100:

  2. assert 的作用是什麼?

    assert斷言是宣告其布林值必須為真的判定,如果發生異常就說明表達示為假。也就是說assert斷言語句為raise-if-not,用來測試表示式,其返回值為假,就會觸發異常。

  3. 假設有 x = 1,y = 2,z = 3,請問如何快速將三個變數的值互相交換?

    x,y,z=y,z,x

  4. 猜猜 (x < y and [x] or [y])[0] 實現什麼樣的功能?

    if x<y :
    	print x 
    else :
    	print y
    
  5. 你聽說過成員資格運算子嗎?

    in 就是成員資格運算子,用來查詢是否為存在其中。如:
    
    a in ‘abc’
    True	
    

動動手:

  1. 視訊中小甲魚使用 if elif else 在大多數情況下效率要比全部使用 if 要高,但根據一般的統計規律,一個班的成績一般服從正態分佈,也就是說平均成績一般集中在 70~80 分之間,因此根據統計規律,我們還可以改進下程式以提高效率。
    題目備忘:按照100分制,90分以上成績為A,80到90為B,60到80為C,60以下為D,寫一個程式,當用戶輸入分數,自動轉換為ABCD的形式列印。

    因為說是要提高運算效率,而且大部分的人一般集中在70-80分,所以,可以把判定分數是否在70-80分作為第一個判斷條件來提高效率。

    while True :
        grade = input ("請輸入成績:")
        grade = int (grade)
        if grade>=90 :
            print ('A')
        elif grade<90 and grade>=80 :
            print ('B')
        elif grade<80 and grade>=60 :
            print ('C')
        else:
            print ('D')
    
  2. Python 的作者在很長一段時間不肯加入三元操作符就是怕跟C語言一樣搞出國際亂碼大賽,蛋疼的複雜度讓初學者望而生畏,不過,如果你一旦搞清楚了三元操作符的使用技巧,或許一些比較複雜的問題反而迎刃而解。
    請將以下程式碼修改為三元操作符實現:

    x, y, z = 6, 5, 4
    if x < y:
    small = x
    if z < small:
    small = z
    elif y < z:
    small = y
    else:
    small = z
    

    small = x if (x < y and x < z) else (y if y < z else z)

標答:

  1. if not (money < 100): 上邊這行程式碼相當於?

    if money >= 100:

  2. assert 的作用是什麼?

    斷言,當這個關鍵字後邊的條件為假的時候,程式自動崩潰並丟擲AssertionError的異常

  3. 假設有 x = 1,y = 2,z = 3,請問如何快速將三個變數的值互相交換?

      x,y,z = y,z,x
    
  4. 猜猜 (x < y and [x] or [y])[0] 實現什麼樣的功能?

    這其實是 Python 的作者還沒有為 Python 加入三元操作符之前,Python 社群的小夥伴們靈活的使用 and 和 or 搭配來實現三元操作符的功能,這裡邊有涉及到列表和切片的知識,這部分知識很快就會講解,迫不及待的朋友可以先稍微預習下

  5. 你聽說過成員資格運算子嗎?

    in,用於檢查一個變數是否在序列中,如果在返回True,否則返回False

動動手:

  1. 視訊中小甲魚使用 if elif else 在大多數情況下效率要比全部使用 if 要高,但根據一般的統計規律,一個班的成績一般服從正態分佈,也就是說平均成績一般集中在 70~80 分之間,因此根據統計規律,我們還可以改進下程式以提高效率。
    題目備忘:按照100分制,90分以上成績為A,80到90為B,60到80為C,60以下為D,寫一個程式,當用戶輸入分數,自動轉換為ABCD的形式列印。

     score = int(input ('請輸入分數\n'))
     if 90<=score<=100:
         print("A")
     elif 80<=score<90:
         print("B")
     elif 70<=score<80:
         print('C')
     else:
         print('D')
    
  2. Python 的作者在很長一段時間不肯加入三元操作符就是怕跟C語言一樣搞出國際亂碼大賽,蛋疼的複雜度讓初學者望而生畏,不過,如果你一旦搞清楚了三元操作符的使用技巧,或許一些比較複雜的問題反而迎刃而解。
    請將以下程式碼修改為三元操作符實現:

     x, y, z = 6, 5, 4
     if x < y:
         small = x
         if z < small:
             small = z
     elif y < z:
         small = y
     else:
         small = z
     small = x if (x < y and x < z) else (y if y < z else z)