內(nèi)容來源于網(wǎng)絡(luò),本人只是在此稍作整理,如有涉及版權(quán)問題,歸小甲魚官方所有。
練習(xí)題(來自小甲魚官方論壇)
0. if not (money < 100): 上邊這行代碼相當(dāng)于?
答:if money >= 100:
1. assert 的作用是什么?
答:assert這個關(guān)鍵字我們稱之為“斷言”,當(dāng)這個關(guān)鍵字后邊的條件為假的時候,程序自動崩潰并拋出AssertionError的異常。
什么情況下我們會需要這樣的代碼呢?當(dāng)我們在測試程序的時候就很好用,因?yàn)榕c其讓錯誤的條件導(dǎo)致程序今后莫名其妙地崩潰,不如在錯誤條件出現(xiàn)的那一瞬間我們實(shí)現(xiàn)“自爆”。
一般來說我們可以用Ta再程序中置入檢查點(diǎn),當(dāng)需要確保程序中的某個條件一定為真才能讓程序正常工作的話,assert關(guān)鍵字就非常有用了。
2. 假設(shè)有 x = 1,y = 2,z = 3,請問如何快速將三個變量的值互相交換?
答:x, y, z = z, y, x
3. 猜猜 (x < y and [x] or [y])[0] 實(shí)現(xiàn)什么樣的功能?
答:這其實(shí)是 Python 的作者還沒有為 Python 加入三元操作符之前,Python 社區(qū)的小伙伴們靈活的使用 and 和 or 搭配來實(shí)現(xiàn)三元操作符的功能,這里邊有涉及到列表和切片的知識,這部分知識很快就會講解,迫不及待的朋友可以先稍微預(yù)習(xí)下。
這個式子可以簡化成(x<y and x or y),即x<y為真時輸出x,否則輸出y。但當(dāng)x和y的有值為0(等同于flase)的情況就會判斷失誤。因此改為[x]和[y],這樣[x]和[y]就都為真了,再加上(0),又變成了列表的第一個元素,即復(fù)原為x或y。
一般python的寫法為 x if x<y else y
這樣代碼更易理解。
4. 你聽說過成員資格運(yùn)算符嗎?
答:Python 有一個成員資格運(yùn)算符:in,用于檢查一個值是否在序列中,如果在序列中返回 True,否則返回 False。
例如:
>>> name = '小甲魚'
>>> '魚' in name
True
>>> '肥魚' in name
False
當(dāng)下節(jié)課我們講解 for 語句的時候,你看到 in 會不會就有了更深入的理解?!
編程題
0. 視頻中小甲魚使用 if elif else 在大多數(shù)情況下效率要比全部使用 if 要高,但根據(jù)一般的統(tǒng)計(jì)規(guī)律,一個班的成績一般服從正態(tài)分布,也就是說平均成績一般集中在 70~80 分之間,因此根據(jù)統(tǒng)計(jì)規(guī)律,我們還可以改進(jìn)下程序以提高效率。
題目備忘:按照100分制,90分以上成績?yōu)锳,80到90為B,60到80為C,60以下為D,寫一個程序,當(dāng)用戶輸入分?jǐn)?shù),自動轉(zhuǎn)換為ABCD的形式打印。
答:代碼如下
score = int(input('請輸入一個分?jǐn)?shù):'))
if 80 > score >= 60:
print('C')
elif 90 > score >= 80:
print('B')
elif 60 > score >= 0:
print('D')
elif 100 >= score >= 90:
print('A')
else:
print('輸入錯誤!')
1. Python 的作者在很長一段時間不肯加入三元操作符就是怕跟C語言一樣搞出國際亂碼大賽,蛋疼的復(fù)雜度讓初學(xué)者望而生畏,不過,如果你一旦搞清楚了三元操作符的使用技巧,或許一些比較復(fù)雜的問題反而迎刃而解。
請將以下代碼修改為三元操作符實(shí)現(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
答:small = x if (x < y and x < z) else (y if y < z else z)
2.請寫下這一節(jié)課你學(xué)習(xí)到的內(nèi)容:格式不限,回憶并復(fù)述是加強(qiáng)記憶的好方式!
- if的4種用法:if;if...else;if..elif...elif...elif...else;if嵌套;
- Python可以有效地避免“懸掛else”(縮進(jìn)的使用)
- 條件表達(dá)式(三元操作符)
small = x if x < y else y
(求最小數(shù)) - 斷言(assert):當(dāng)需要確保程序中的某個條件一定為真才能讓程序正常工作時,assert關(guān)鍵字就非常有用了,關(guān)鍵字后的條件為假的時候,程序自動崩潰并拋出AssertionError異常。