###### 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
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up