【Python學習筆記Day08】2.6 分支與循環二

1. 問題——分數等級問題

按照100分制,90分以上成績爲A,80-90分成績爲B,70-80分之間爲C,60-70分之間爲D,60分一下爲E,當輸入用戶的分數,判斷ABCDE打印輸出

1.1 方法一使用if

cpu代碼效率執行低

score = int(input("請輸入用戶的一個分數:"))

if 90<= score <= 100:
    print("A")

if 80<= score < 90:
    print("B")

if 70<= score < 80:
    print("C")

if 60<= score < 70:
    print("D")

if 0<= score < 60:
    print("E")

if score <0 or score > 100:
    print("輸入錯誤!")

第一種判斷完第一個之後,還需要執行後續的判斷,浪費cpu的時間

1.2 方法二 if … else
score = int(input("請輸入用戶的一個分數:"))
if 90<= score <= 100:
    print("A")
else:
    if 80<= score < 90:
        print("B")
    else:        
        if 70<= score < 80:
            print("C")
        else:
            if 60<= score < 70:
                print("D")
            else:
                if 0<= score < 60:
                    print("E")
                else:
                    print("輸入錯誤!")
1.3 方法三 if elif
score = int(input("請輸入用戶的一個分數:"))
if 90<= score <= 100:
    print("A")
elif 80<= score < 90:
    print("B")
elif 70<= score < 80:
    print("C")
elif 60<= score < 70:
    print("D")
elif 0<= score < 60:
    print("E")
else:
    print("輸入錯誤!")

判斷完第一個條件時,如果成立,則直接退出

針對第三個程序,根據一般的統計規律,70-80的分數一般比較集中,因此根據統計規律,
可以將70-80的範圍內的條件放在最前面,以達到cpu高效的利用。

2.python可以有效的避免懸掛else,

#懸掛else

    if()
        if()
            printf();
    else
        printf();

C語言的的語法會有懸掛的錯誤,在python中不會存在,因爲python是通過縮進來控邏輯塊的

3.條件表達式(三元操作符)

三元操作符可以將一個條件判斷語句改爲一條語句
格式爲:變量名 = 等式一 (if 條件) else 等式二

x,y = 4, 5
if x<y:
    small = x
else:
    small = y

上面的例子可以改爲:

small = x if x<y else y

4. assert 斷言語句

當這個關鍵詞後的條件爲假的時候,程序自動崩潰並拋出AssertionError的異常

assert 3>4 #會提示AssertiongError
一般來說,我們可以用Ta在程序中置入檢查點,當需要確保程序中的某一個條件一定爲真才能讓程序正常工作時,assert關鍵測就非常有用了

例如,當一個程序接口只希望輸入爲數字,但輸入其他無效時,即可以使用斷言assert語句
一般用於測試程序

#################################################################################################

5. 練習題:

5.1 if not(test < 100):相當於

#if test >= 100:

5.2 假設有x =1, y = 2, z = 3, 情快速交換三個變量的值:
x = 1
y = 2
z = 3
print(x,y,z)
x,y,z = z,x,y
print(x,y,z)

運行結果:
在這裏插入圖片描述

5.3 以下表達式實現什麼功能

(x<y and [x] or [y])[0] 實現了什麼功能?
#這是三元操作符,涉及到切片和列表的知識
#靈活使用and 和 or 搭配使用三元操作符

5.4 成員資格運算符:in

#python 有一個成員資格運算符:in
#用於檢查是否在列表裏,如果在序列中,則返回True,否則返回False
#經常用於for in中

name = 'weivid'
print('we' in name) #True
print('wvi' in name) #Flase
print('h' in name) #False

運行結果:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章