###### tags: `chapter 5` `Python` # 5-3 巢狀結構 # 假設今天給定一個問題:成績排名在第一名的同學,如果他的總平均超過90分,那頒發20000元獎學金,否則只有15000元。 這個問題需要比對每一個同學的成績,可以拆成兩個地方來看,分別是`這位同學是不是第一名`以及`他的總平均有沒有超過90分`。 你會怎麼實作呢?? ```python=3.7 score, rank = 91, 1 if score >= 90 and rank == 1 : print("獲得20000元!") else : print("獲得15000元!") ``` 這樣子寫對嗎? 如果實際設計測資去跑這段程式碼,你會發現,除了第一名以外的所有同學都可以拿到15000元哦~ ~~(yeah!!)~~。 為甚麼會這樣是因為在同時判斷分數大於90分以及排名等於1的時候會無法過濾掉根本就沒有領獎資格的學生(第2名之後的),因此我們要用到接下來要介紹的==巢狀結構==。 `巢狀結構`指的是`if`裡面再包入一個`if`,~~其實不是一個多重要的名稱~~,但可以幫助我們解決更多的問題,有了巢狀結構的概念,我們可以這樣解決上述的問題。 ```python=3.7 if rank == 1 : if score >= 90 : print("獲得20000元!") else : print("獲得15000元!") else: print("沒有獎學金可以拿QAQ!") ``` 轉換為流程圖的話是這個樣子:  `巢狀結構`的寫法讓我們在第一個`if`就過濾掉了第1名以外的所有學生,因此不用怕其他學生有辦法拿到獎學金。
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.