題目來自:https://blog.csdn.net/qq_44898209/article/details/105328198
測試題:? ?0. if not (money < 1001): 上邊這行代碼相當(dāng)于?? ??
不是(not) money < 10001 也就是money >= 10001
1. assert 的作用是什么崖飘?
如果條件是假的或者不成立,那就直接拋出異常;如果條件為真,那就繼續(xù)
?當(dāng)條件結(jié)果為假的時候,拋出程序異常
assert這個關(guān)鍵字我們稱之為“斷言”碌奉,當(dāng)這個關(guān)鍵字后邊的條件為假的時候,程序自動崩潰并拋出AssertionError的異常寒砖。
什么情況下我們會需要這樣的代碼呢赐劣?當(dāng)我們在測試程序的時候就很好用,因為與其讓錯誤的條件導(dǎo)致程序今后莫名其妙地崩潰哩都,不如在錯誤條件出現(xiàn)的那一瞬間我們實現(xiàn)“自爆”魁兼。
一般來說我們可以用Ta再程序中置入檢查點,當(dāng)需要確保程序中的某個條件一定為真才能讓程序正常工作的話漠嵌,assert關(guān)鍵字就非常有用了咐汞。
2. 假設(shè)有 x = 1,y = 2儒鹿,z = 3化撕,請問如何快速將三個變量的值互相交換?
我的答案:x=z,z=y,y=x
正確答案:x,y,z=z,y,x
3. 猜猜 (x < y and [x] or [y])[0] 實現(xiàn)什么樣的功能约炎??
比較運算符優(yōu)先級大于邏輯運算符植阴,所以先比x和y的大小
當(dāng)x < y時輸出[x]列表中的第一個數(shù)([0]代表輸出列表中的第一個數(shù))
當(dāng)x > y時輸出[y]列表中的第一個數(shù)([0]代表輸出列表中的第一個數(shù))
4. 你聽說過成員資格運算符嗎?
成員運算符 in ?用于檢查一個值是否在序列中章钾,如果在就返回true墙贱,否則返回false
例如:
>>>?name?=?'小甲魚'
>>>?'魚'?in?name
True
>>>?'肥魚'?in?name
False
動動手:
0. 視頻中小甲魚使用 if-elif-else 在大多數(shù)情況下效率要比全部使用 if 要高,但根據(jù)一般的統(tǒng)計規(guī)律贱傀,一個班的成績一般服從正態(tài)分布惨撇,也就是說平均成績一般集中在 70~80 分之間,因此根據(jù)統(tǒng)計規(guī)律府寒,我們還可以改進下程序以提高效率魁衙。
題目備忘:按照 100 分制,90 分以上成績?yōu)?A株搔,80 到 90 為 B剖淀,60 到 80 為 C,60 以下為 D纤房,寫一個程序纵隔,當(dāng)用戶輸入分數(shù),自動轉(zhuǎn)換為ABCD 的形式打印。
因為平均成績一般集中在70-80分捌刮,所以先判斷輸入的成績是否在60-80分之間碰煌,在的話再判斷別的
1. Python 的作者在很長一段時間不肯加入三元操作符就是怕跟 C 語言一樣搞出國際亂碼大賽,蛋疼的復(fù)雜度讓初學(xué)者望而生畏绅作,不過芦圾,如果你一旦搞清楚了三元操作符的使用技巧,或許一些比較復(fù)雜的問題反而迎刃而解俄认。
請將以下代碼修改為三元操作符實現(xiàn):
x,?y,?z?=?6,?5,?4
if?x?<?y:
????small?=?x
????if?z?<?small:
????????small?=?z
elif?y?<?z:
????small?=?y
else:
????small?=?z
答案:代碼目的是找出x,y,z三個里面最小的那個數(shù)
small = x if (x < y and x < z) else (y if y < z else z)