課時8 了不起的分支和迴圈2

2021-09-09 06:18:25 字數 2987 閱讀 1426

目錄

一、課堂小練習

二、懸掛else

三、條件表示式(三元操作符) ​

四、斷言

五、課後題

現在來考考大家,按照100分制,90分以上成績為a,80到90為b,60到80為c,60以下為d,寫乙個程式,當使用者輸入分數,自動轉換為abcd的形式列印。

score = int(input("請輸入成績:"))

if 100 >= score >= 90:

print("a")

if 90 >= score >= 80:

print("b")

if 80 >= score >= 60:

print("c")

if 60 >= score >= 0:

print("d")

if score < 0 or score > 100:

print("輸入錯誤!")

score = int(input("請輸入成績:"))

if 100 >= score >= 90:

print("a")

else:

if 90 >= score >= 80:

print("b")

else:

if 80 >= score >= 60:

print("c")

else:

if 60 >= score >= 0:

print("d")

else:

print("輸入錯誤!")

score = int(input("請輸入成績:"))

if 100 >= score >= 90:

print("a")

elif 90 >= score >= 80:

print("b")

elif 80 >= score >= 60:

print("c")

elif 60 >= score >= 0:

print("d")

else:

print("輸入錯誤!")

三種方法若都對99進行成績判斷,法一在第乙個if語句後輸出「a」之後,還會進行接下來的if迴圈,直到程式結束。而法二和法三,在第乙個if語句判斷之後,便結束比較。可見雖然是很簡單的例子,但就輸入99來說,假設第一次判斷會消耗乙個cpu的時間,那麼第一種方法比第二和第三種方法多消耗了400%的時間!!!

python強制使用縮排,將解決懸掛else的問題

if ( hi > 2):

if (hi > 7):

printf("好棒!")

else:

printf("且")

例如,雖然else很想和外層的if匹配,但事實上按照c語言的就近匹配原則這個else是屬於內層if的。在python中強制使用縮排,所以在python中製造出懸掛else的問題是不可能的。

x, y = 4, 5

if x < y:

small = x

else:

small = y

三元操作符

a = x if 條件 else y (表示當條件為true的時候,a的值賦值為x,否則賦值為y。

assert這個關鍵字我們稱之為「斷言」,當這個關鍵字後邊的條件為的時候,程式自動崩潰並丟擲assertionerror的異常。

我們可以用assert來檢查程式,在程式中置入檢查點,當需要確保程式中的某個條件一定為真才能讓程式正常工作的話。

測試題:

0. if not (money < 100): 上邊這行**相當於?

1. assert 的作用是什麼?

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

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

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

答案0. if  money >= 100:

1.assert這個關鍵字我們稱之為「斷言」,當這個關鍵字後邊的條件為的時候,程式自動崩潰並丟擲assertionerror的異常。

我們可以用assert來檢查程式,在程式中置入檢查點,當需要確保程式中的某個條件一定為真才能讓程式正常工作的話。

2.x,y,z = z,x,y

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

動動手: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

答案0.

1.

007 008 了不起的分支迴圈

in 是成員資格符 a in asdwrr true標題出處 魚c論壇 score int input 請輸入你的成績 while score 100 elif score 80 and score 60 print c elif score 90 and score 100 print a eli...

小甲魚 007 009了不起的分支和迴圈

分支 是否做某事 迴圈 持續做某事 python可以有效避免c中的懸掛else if x y small x else small y assert 4 3,錯了,4 3 為斷言失敗新增備註或說明 python assert 3 4,錯了,4 3 while 條件 迴圈體for 目標 in 表示式 ...

第007 008講 了不起的分支迴圈1 2

標答出處 魚c論壇 零基礎入門學習python 基礎題 if not money 100 上邊這行 相當於?if money 100 assert 的作用是什麼?assert斷言是宣告其布林值必須為真的判定,如果發生異常就說明表達示為假。也就是說assert斷言語句為raise if not,用來測...