---
# System prepended metadata

title: Python - 条件分岐（if...else）Exercise
tags: [Python練習題目]

---

# 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)|


```
**入力例１：**
What's Your Name? :Ed　Sheeran

Please Enter Your Level :163
**出力例１：**
Ed　Sheeran ! Your Achievement Titles are shown below:
765プロライブ劇場所属:獲得済み
売出し中プロデューサー:獲得済み
ベテランプロデューサー:獲得済み
有名プロデューサー:未獲得

**入力例２：**
What's Your Name? :幽

Please Enter Your Level :0

**出力例２：**
幽 ! 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 |

```
入力１
Please input month: 7
出力１
Summer
入力２
Please input month: 2
出力２
Winter
入力３
Please input month: 8
出力３
Summer
入力４
Please input month: 12
出力４
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以上→高度肥満という判定を返すプログラムを作ってください。

```
入力例１：
名前を入力してください：月ノ美兎

身長(m)を入力して下さい：1.51

体重(kg)を入力して下さい：42
出力例１：
月ノ美兎さんのBMIは18.42なので、痩せ

入力例２：
名前を入力してください：ジャイアン

身長(m)を入力して下さい：1.57

体重(kg)を入力して下さい：70
出力例２：
ジャイアンさんの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 |



```
入力例１：
Please input pay:15000
出力例１：
money: 1500

入力例２：
Please input pay:9000
出力例２：
money: 6800

入力例３：
Please input pay:4500
出力例３：
money: 10800

入力例４：
Please input pay:2100
出力例４：
money: 12900

入力例５：
Please input pay:9999
出力例５：
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)

:::




## スライドの練習１
:::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)
:::

## スライドの練習２
:::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)

:::

## スライドの練習３
:::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")
```
結果：

:::
