# Python - 条件分岐(if...else)Exercise ###### tags: `Python練習題目` :::info スライド見れるようにしましたので確認してみてください。 同じく見れない場合は、ここで教えてください! ::: **例**:宝くじが当たっているかどうかを判断するプログラムを作成してください。当たりの番号を表す変数「winningNum」を使ってプログラムを作成してください。 ``` winningNum=7777777 入力例1: Tell me your Lotto numbers:131450 出力例1: Such a pity! you miss the lottery jackpot again. 入力例2: Tell me your Lotto numbers:7777777 出力例2: Congratulations for winning the lottery! ``` :::info code: ```python= winningNum=7777777 num=int(input("Tell me your Lotto numbers:")) if num==winningNum: print("Congratulations for winning the lottery!") else: print("Such a pity! you miss the lottery jackpot again.") ``` 答え: ![](https://i.imgur.com/9mKUIXg.png) ::: -------------------------------------------- ## 門1:獲得した称号の一覧 プロディーサーの名前とレベルを入力すると、 今まで獲得した称号を表示するプログラムを作成してください。 **条件** すべてのテストケースにおいて、以下の条件をみたします。 ・0 ≦ レベル | 称号 | 獲得条件 | 画像 | | -------- | -------- | -------- | | 765プロライブ劇場所属| 初期| ![](https://i.imgur.com/IrgB4Sh.png)| | 売出し中プロデューサー| プロデューサーLv50|![](https://i.imgur.com/xmDkSDU.png)| | ベテランプロデューサー | プロデューサーLv100 |![](https://i.imgur.com/uZShmNO.png)| | 有名プロデューサー |プロデューサーLv200 |![](https://i.imgur.com/tYiySeZ.png)| ``` **入力例1:** What's Your Name? :Ed Sheeran Please Enter Your Level :163 **出力例1:** Ed Sheeran ! Your Achievement Titles are shown below: 765プロライブ劇場所属:獲得済み 売出し中プロデューサー:獲得済み ベテランプロデューサー:獲得済み 有名プロデューサー:未獲得 **入力例2:** What's Your Name? :幽 Please Enter Your Level :0 **出力例2:** 幽 ! Your Achievement Titles are shown below: 765プロライブ劇場所属:獲得済み 売出し中プロデューサー:未獲得 ベテランプロデューサー:未獲得 有名プロデューサー:未獲得 ``` :::success 今のコードでは40を入力すると、獲得しないはずの売り出し中プロデューサーが獲得済みになるので、もう少し判断式を考えてみましょう! また、200を入力すると場合も考えてみましょう。 code: ```python= ''' name=str(input("What's Your Name? :")) level=int(input("Please Enter Your Level :")) if level ==0: print("{} ! Your Achievement Titles are shown below:".format(name)) print("765プロライブ劇場所属:獲得済み") print("売出し中プロデューサー:未獲得") print("ベテランプロデューサー:未獲得") print("有名プロデューサー:未獲得") elif level <= 99: print("{} ! Your Achievement Titles are shown below:".format(name)) print("765プロライブ劇場所属:獲得済み") print("売出し中プロデューサー:獲得済み") print("ベテランプロデューサー:未獲得") print("有名プロデューサー:未獲得") elif level <= 199: print("{} ! Your Achievement Titles are shown below:".format(name)) print("765プロライブ劇場所属:獲得済み") print("売出し中プロデューサー:獲得済み") print("ベテランプロデューサー:獲得済み") print("有名プロデューサー:未獲得") elif level > 200: print("{} ! Your Achievement Titles are shown below:".format(name)) print("765プロライブ劇場所属:獲得済み") print("売出し中プロデューサー:獲得済み") print("ベテランプロデューサー:獲得済み") print("有名プロデューサー:獲得済み") ''' #正しい答え name=input("What's Your Name? :") level=int(input("Please Enter Your Level :")) print(name,"! Your Achievement Titles are shown below:") if level >=0: print("765プロライブ劇場所属:獲得済み") else: print("765プロライブ劇場所属:未獲得") if level >= 50: print("売出し中プロデューサー:獲得済み") else: print("売出し中プロデューサー:未獲得") if level >= 100: print("ベテランプロデューサー:獲得済み") else: print("ベテランプロデューサー:未獲得") if level >= 200: print("有名プロデューサー:獲得済み") else: print("有名プロデューサー:未獲得") ``` 結果: ![](https://i.imgur.com/kIwMtYM.png) ::: ## 問2:季節 1. ユーザーに月数を入力させることが出来る 2. 入力した月数を下の表にそって該当季節を出力する | 月数(月) | 季節 | 出力 | | -------- | -------- | -------- | | 4、5、6 | 春 | Spring | | 7、8、9 | 夏 | Summer | | 10、11、12 | 秋 | Autumn | | 1、2、3 | 冬 | Winter | ``` 入力1 Please input month: 7 出力1 Summer 入力2 Please input month: 2 出力2 Winter 入力3 Please input month: 8 出力3 Summer 入力4 Please input month: 12 出力4 Autumn ``` :::success 楠楠,辛苦了!!! 数字の範囲を意識すればコードをもっと簡潔にできますよ code: ```python= ''' month=int(input("Please input month:")) if month <=3: print("Winter") elif month <=6: print("Spring") elif month <=9: print("Summer") elif month >=10: print("Autumn") ''' # ↑のコードも十分正しいですよ by先生 #正しい答え month=int(input("Please input month:")) if month <4: print("Winter") elif month <7: print("Spring") elif month <10: print("Summer") else: print("Autumn") ``` 結果: ![](https://i.imgur.com/8pgwv1x.png) ::: ## 問3:某先生は最終成績を出す際に次のルールに沿って再計算を行うことがあります 1. 成績はA、B、Cがあり、これらを平均した数値が最終成績になる - Aは授業態度成績 - Bは抜き打ちテストの平均成績 - Cは期末試験の成績 2. 最終成績が合格点以下(60点未満)だった場合、成績Aを次の公式で修正し新たな成績Aにする - 新たな成績A = (math.sqrt(旧成績A))*10 上記のルールに従って次のプログラムを作成してください。 1. 成績A、成績B、成績Cを入力出来るようにする 2. これらの平均が合格点かどうか判断し、合格であればそのまま平均点と合格を次の様に表示「XX point :Pass」 3. もし不合格の場合、前述の方法にて「成績A」のみを再計算して再度平均点を算出し、合格か不合格を次の様に表示「XX point :Failure」 補足:尚XXのポイントの小数点は切り上げて表示させること ``` 入力と表示例: Please input examA: 10 Please input examB: 80 Please input examC: 60 58 point: Failure Please input examA: 36 Please input examB: 60 Please input examC: 60 60 point: Pass Please input examA: 60 Please input examB: 80 Please input examC: 100 80 point: Pass ``` :::success ``` 11行目までのコードはOKですね! 但し、修正した成績はもう一度60以上であるかを判断する必要があるので書いてみましょう! そして、表示する際の変数も気を付けてくださいね。 到11行的程式碼是沒問題的。 但是我們必須判斷修正過後的成績是否為60以上,所以在寫看看吧! 然後再顯示時也要注意一下變數喔。 ``` **追記by先生:** 修正したコードは正しく不合格の人を表示できたのでvery good! でも、23行目と28行目のifはそれぞれ独立しているので、もし60、80、100を入力すると、「80 point: Pass」は二回も出力されてしまうので、また解答で確認してみましょう! code: ```python= ''' import math examA=int(input("Please input examA:")) examB=int(input("Please input examB:")) examC=int(input("Please input examC:")) point=int((examA+examB+examC)//3) if point >= 60: print("{} point: Pass".format(math.ceil(examA))) elif point <= 59: newA=(math.sqrt(examA))*10 Point=int((newA+examB+examC)//3) print("{} point: Failure".format(math.ceil(newA))) ''' #正しい答え import math examA=int(input("Please input examA:")) examB=int(input("Please input examB:")) examC=int(input("Please input examC:")) avg=((examA+examB+examC)/3) if avg >= 60: print("{} point: Pass".format(math.ceil(avg))) else: examA=math.sqrt(examA)*10 avg=((examA+examB+examC)/3) if avg >= 60: print("{} point: Pass".format(math.ceil(avg))) else: print("{} point: Failure".format(math.ceil(avg))) ``` 結果: ![](https://i.imgur.com/Khe9pMN.png) ::: ## 問4:BMI 健康のために肥満度をチェックするプログラムを作ってください。 名前と身長と体重を入力して肥満度(BMI=体重(kg)÷身長(m)の二乗)を計算するプログラムを作成し、判定基準に従って、18.5未満→やせ、18.5〜25未満→標準、25〜30未満→肥満、30以上→高度肥満という判定を返すプログラムを作ってください。 ``` 入力例1: 名前を入力してください:月ノ美兎 身長(m)を入力して下さい:1.51 体重(kg)を入力して下さい:42 出力例1: 月ノ美兎さんのBMIは18.42なので、痩せ 入力例2: 名前を入力してください:ジャイアン 身長(m)を入力して下さい:1.57 体重(kg)を入力して下さい:70 出力例2: ジャイアンさんのBMIは28.40なので、肥満 ``` :::success 作為慣例,我們通常會把import寫在最上面唷! 慣例として我々はよくインポートを一番上に書きますよ! code: ```python= import math name=input("名前を入力してください:") height=float(input("身長(m)を入力して下さい:")) weight=int(input("体重(kg)を入力して下さい:")) BMI=(weight/math.pow(height,2)) if BMI < 18.5: print("{}さんのBMIは{:.2f}なので、痩せ".format(name,BMI)) elif BMI <24: print("{}さんのBMIは{:.2f}なので、標準".format(name,BMI)) elif BMI <29: print("{}さんのBMIは{:.2f}なので、肥満".format(name,BMI)) elif BMI <=30: print("{}さんのBMIは{:.2f}なので、高度肥満".format(name,BMI)) ``` 結果: ![](https://i.imgur.com/wE5CKBJ.png) ::: ## 問5:買い物 某アイドル公式ショップがイベントを開催していて、次の表にそって即時キャッシュバックが発生します。 もし今回15000円を持って押しのグッズを買うとしましょう。 次の条件を満たすプログラムを作成してください。 1. 小計(円)を入力出来るようにすること(<15000) 2. 表を参考にして判断させ、支払いが済んだ後キャッシュバックされたお金も即時持って帰り所持金に加算する 3. 買い物が済んだ時の残金を次のように表示させること「xxxxx yen」(xxxxx は所持金額) | 小計(円) | キャッシュバック(円) | | -------- | -------- | | 3000~5999 | 300 | | 6000~9999 | 800 | | 10000~ | 1500 | ``` 入力例1: Please input pay:15000 出力例1: money: 1500 入力例2: Please input pay:9000 出力例2: money: 6800 入力例3: Please input pay:4500 出力例3: money: 10800 入力例4: Please input pay:2100 出力例4: money: 12900 入力例5: Please input pay:9999 出力例5: money: 5801 ``` :::info code: ```python= pay=int(input("Please input pay:")) if pay <= 2999: money=15000-pay print("money:{}".format(money)) elif pay <= 5999: money=15000-pay+300 print("money:{}".format(money)) elif pay <=9999: money=15000-pay+800 print("money:{}".format(money)) elif pay >= 10000: money=15000-pay+1500 print("money:{}".format(money)) ``` 結果: ![](https://i.imgur.com/FLDnrRM.png) ::: ## スライドの練習1 :::info code: ```python= money=int(input("Please enter money:")) if money >= 500: print("カプチーノ") if money >= 600: print("モカ") if money >= 380: print("エスプレッソ") if money >= 560: print("ラテ") if money >= 470: print("アメリカーノ") ``` 結果: ![](https://i.imgur.com/T1q2VXR.png) ::: ## スライドの練習2 :::info code: ```python= score=int(input("score:")) if score >= 90: print("Grade is: A") else: if score >=80: print("Grade is: B") else: if score >=70: print("Grade is: C") else: if score >=60: print("Grade is: D") else: print("Grade is: F") ``` ```python= score=int(input("score:")) if score <= 59: print("Grade is: F") elif score <= 69: print("Grade is: D") elif score <= 79: print("Grade is: C") elif score <= 89: print("Grade is: B") elif score <= 99: print("Grade is: A") ``` 結果: ![](https://i.imgur.com/dDEfYP0.png) ![](https://i.imgur.com/mi5WJTK.png) ::: ## スライドの練習3 :::info code: ```python= year=int(input("西暦を入力してください:")) if year % 400 ==0: print("leap year") elif year % 100 ==0: print("Normal year") elif year % 4 ==0: print("leap year") ``` 結果: :::