python operator和Branching and cycling

憂鬱,灑脫發表於2019-05-13

operator

  • Python 的 floor 除法現在使用 “//” 實現,那 3.0 // 2.0 您目測會顯示什麼內容呢?
    • 地板除結果都是整數
  • a < b < c 事實上是等於?
    • a<b and b<c
  • 不使用 IDLE,你可以輕鬆說出 5 ** -2 的值嗎
    • 5**(-2)
    • 冪運算操作符比其左側的一元操作符優先順序高,比其右側的一元操作符優先順序低。
  • 如何簡單判斷一個數是奇數還是偶數?
    • 取餘%, if(a%2) "是奇數" else "是偶數"
  • not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9
    • (not 1) or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8 and 9)
    • == 0 or 0 or 4 or 6 or 9
    • == 4
  • 還記得我們上節課那個求閏年的作業嗎?如果還沒有學到“求餘”操作,還記得用什麼方法可以“委曲求全”代替“%”的功能呢
  • 請寫一個程式列印出 0~100 所有的奇數。
  • 我們說過現在的 Python 可以計算很大很大的資料,但是......真正的大資料計算可是要靠剛剛的硬體滴,不妨寫一個小程式碼,讓你的計算機為之崩潰?
  • 愛因斯坦曾出過這樣一道有趣的數學題:有一個長階梯,若每步上2階,最後剩1階;若每步上3階,最後剩2階;若每步上5階,最後剩4階;若每步上6階,最後剩5階;只有每步上7階,最後剛好一階也不剩。
  • 答案:github.com/LiuJiYangYa…

Branching and cycling分支與迴圈

  • if not (money < 100): 上邊這行程式碼相當於?
    • if money >= 100:
  • assert 的作用是什麼?
    • assert這個關鍵字我們稱之為“斷言”,當這個關鍵字後邊的條件為假的時候,程式自動崩潰並丟擲AssertionError的異常。 什麼情況下我們會需要這樣的程式碼呢?當我們在測試程式的時候就很好用,因為與其讓錯誤的條件導致程式今後莫名其妙地崩潰,不如在錯誤條件出現的那一瞬間我們實現“自爆”。 一般來說我們可以用Ta再程式中置入檢查點,當需要確保程式中的某個條件一定為真才能讓程式正常工作的話,assert關鍵字就非常有用了。
  • 假設有 x = 1,y = 2,z = 3,請問如何快速將三個變數的值互相交換?
    • x, y, z = z, y, x
  • 猜猜 (x < y and [x] or [y])[0] 實現什麼樣的功能?
    • 這其實是 Python 的作者還沒有為 Python 加入三元操作符之前,Python 社群的小夥伴們靈活的使用 and 和 or 搭配來實現三元操作符的功能,這裡邊有涉及到列表和切片的知識
  • 你聽說過成員資格運算子嗎?
    • Python 有一個成員資格運算子:in,用於檢查一個值是否在序列中,如果在序列中返回 True,否則返回 False
>>> name = '小甲魚'
>>> '魚' in name
True
>>> '肥魚' in name
False
複製程式碼
  • 視訊中小甲魚使用 if-elif-else 在大多數情況下效率要比全部使用 if 要高,但根據一般的統計規律,一個班的成績一般服從正態分佈,也就是說平均成績一般集中在 70~80 分之間,因此根據統計規律,我們還可以改進下程式以提高效率。
  • Python 的作者在很長一段時間不肯加入三元操作符就是怕跟 C 語言一樣搞出國際亂碼大賽,蛋疼的複雜度讓初學者望而生畏,不過,如果你一旦搞清楚了三元操作符的使用技巧,或許一些比較複雜的問題反而迎刃而解。
  • 請寫下這一節課你學習到的內容:格式不限,回憶並複述是加強記憶的好方式!
  • 打飛機小遊戲的設計框架
  • 條件表示式(三元操作符)
x, y = 4, 5
if x < y:
    small = x
else:
    small = y
# 改
small = x if x < y else y
複製程式碼
  • 斷言(assert)
    • assert這個關鍵字我們稱之為“斷言”,當這個關鍵字後邊的條件為假時,程式自動崩潰並丟擲AssertionError的異常。當這個關鍵字後邊的條件為真時,程式無影響。
  • 答案:github.com/LiuJiYangYa…

相關文章