1. 程式人生 > >小甲魚《零基礎學習Python》課後筆記(七、八):了不起的分支和迴圈1

小甲魚《零基礎學習Python》課後筆記(七、八):了不起的分支和迴圈1

測試題

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

if money >= 100

1.assert的作用是什麼?

assert這個關鍵字我們稱之為“斷言”,當這個關鍵字後邊的條件為假的時候,程式自動崩潰並丟擲AssertionError的異常。

什麼情況下我們會需要這樣的程式碼呢?當我們在測試程式的時候就很好用,因為與其讓錯誤的條件導致程式今後莫名其妙地崩潰,不如在錯誤條件出現的那一瞬間我們實現“自爆”。

一般來說我們可以用Ta再程式中置入檢查點,當需要確保程式中的某個條件一定為真才能讓程式正常工作的話,assert關鍵字就非常有用了。

格式 : assert+空格+要判斷語句+逗號+雙引號“報錯語句”

  >>> assert 5 > 6, "錯誤"  
  Traceback (most recent call last):  
    File "<pyshell#49>", line 1, in <module>  
      assert 5 > 6, "錯誤"  
  AssertionError: 錯誤  

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

x, y, z = z, y, x

  >>> x =1  
  >>> y = 2  
  >>> z = 3  
  >>> x,y,z = z, y, x  
  >>> z  
  1  
  >>> y  
  2  
  >>> x  
  3  

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

這其實是 Python 的作者還沒有為 Python 加入三元操作符之前,Python 社群的小夥伴們靈活的使用 and 和 or  搭配來實現三元操作符的功能。

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

in。用於檢查一個值是否在序列中,在就返回True,否則返回False。

  >>> name = 'allen'  
  >>> 'a' in name  
  True  
  >>> 'all' in name  
  True  
  >>> 'All' in name  
  False 

動動手

0.視訊中小甲魚使用ifelif else在大多數情況下效率要比全部使用if要高,但根據一般的統計規律,一個班的成績一般服從正態分佈,也就是說平均成績一般集中在70~80分之間,因此根據統計規律,我們還可以改進以下程式以提高效率。

題目備忘:按照100分制,90分以上成績為A,80到90位為B,60到80為C,60以下為D,寫一個程式,當用戶輸入分數時,自動裝換為ABCD形式列印。

  number = input('請輸入你的成績:')  
  grade = int(number)  
  if 100 >= grade >= 90:  
      print('A')  
  elif 90 > grade >= 80:  
      print('B')  
  elif 80 > grade >= 60:  
      print('C')  
  elif 60 > grade >= 0:  
     print('D')  
  else:  
     print('輸入錯誤!')  

1.Python的作者在很長一段時間不肯加入三元操作符就是怕跟C語言一樣搞出國際亂碼大賽,蛋疼的複雜度讓初學者望而生畏,不過,如果你一旦搞清楚了三元操作符的使用技巧,或許一些比較複雜的問題反而迎刃而解。

請將以下程式碼修改為三元操作符實現:

  x, y, z = 6, 5, 4  
  if x < y:  
      samll = 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)