1. 程式人生 > >學習筆記-小甲魚Python3學習第八講:了不起的分支和循環2

學習筆記-小甲魚Python3學習第八講:了不起的分支和循環2

false 成績 pytho 問題 成員 報錯 nsh abc 語法

按照100分制,90分以上成績為A,80到90為B,60到80為C,60以下為D,寫一個程序,當用戶輸入分數,自動轉換為ABCD的形式打印。

使用if 條件:...elif 條件:...else...循環

fenshu0 = input('請輸入你的分數:')

fenshu = int(fenshu0)

if (fenshu > 90) and (fenshu <= 100):

print('你的分數在A檔.')

elif (fenshu > 80) and (fenshu <= 90):

print('你的分數在B檔.')

elif (fenshu > 60) and (fenshu <= 80):

print('你的分數在C檔,.')

elif (fenshu >= 0) and (fenshu <=60):

print('你的分數在D檔.')

else:

print('錯誤的輸入!')


python可以有效避免“懸掛else”,代碼縮進按嚴格標準處理


條件表達式(三元操作符),語法:x if 條件 else y

例:

x,y = 4,5

if x< y:

small = x

else:

small = y

可改進為:

x,y = 4,5

small = x if x < y else y


斷言(assert)

當assert這個關鍵字後面的條件為假的時候,程序自動崩潰並拋出AssertionError的一場。當需要確保程序中的某個條件一定為真才能讓程序正常工作的時候,可以在條件中置入assert檢查點。

舉例:

>>> assert 3 > 4

Traceback (most recent call last):

File "<pyshell#22>", line 1, in <module>

assert 3 > 4

AssertionError


---------------分隔符,哈哈哈----------------------

二、課後作業:

0.if not (money<100):這行代碼相當於?

if money >= 100:


1.assert的作用是什麽?

assert稱為斷言,可以判斷一條語句是否成立,如果出錯會報AssertionError的錯誤。當需要確保一個程序中的條件能夠正確運行時,可以在條件中插入一個檢查點。如果報錯說明此條件有問題


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

x,y,z = z,x,y


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

沒整明白,後續學習


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

python有一個成員資格運算符:in。用於檢查一個值是否在序列中,如果在序列中返回true,否則返回false。


---------------分隔符,哈哈哈-------------------

三、動動手:

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

score = int(input('請輸入一個分數:'))

if 90 < score <= 100:

print('A')

elif 80 < score <= 90:

print('B')

elif 60 < score <= 80:

print('C')

elif 0 <= score <= 60:

print('D')

else:

print('錯誤的輸入!')


1.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)

學習筆記-小甲魚Python3學習第八講:了不起的分支和循環2