Re:ゼロから始める文系プログラマ

未経験がプログラミングを通して人生を変える

【Python・応用】~BMI・適正体重の計算~


スポンサードリンク
 

f:id:ShotaNukumizu_1000:20210405111435p:plain

おはようございます。Shotaです。

今日も早速、Pythonに関する記事を書いていきます。今日はPythonBMIや適正体重を計算してみましょう。

【目次】

設計

コーディングするにあたって、まず最初に設計を行います。この設計は、自分が作りたいプログラムを作るのには欠かせません。プログラムを作成する際には、設計をして自分がどのようなプログラムを書くべきかを最初に考えましょう。

今回のプログラムの設計は以下の通りです。

《設計》

  • BMIや適正体重を計算する関数を作る

  • 身長や体重の値を入力してもらい、その値を関数に当てはめる

  • 適正体重の場合は、自分の体重と適正体重を比較して条件分岐で異なる結果を表示させる

このようにプログラムを設計しました。BMIや適正体重は単なる四則演算なので、lambdaが使えます。次に、身長や体重の値を入力してそれを関数に当てはめます。入力させるので、組み込み関数のinputが使えます。自分の体重と適正体重を最後に比較して、条件分岐で異なる結果を表示させます。この場合はif~else構文が使えますね。

ではこの設計をベースに、早速コーディングしていきましょう!

コーディング

設計が終了したら、以下のようにコードを作ります。

#BMIや適正体重を計算する関数を作る
bmi = lambda weight, height: round(weight / (height ** 2), 1)
a_weight = lambda height: round((height ** 2) * 22, 1)

#身長や体重の値を入力してもらい、その値を関数に当てはめる。その際値をfloat型に変換
weight = float(input('enter your weight by kg:'))
height = float(input('enter your height by cm:'))
height /= 100 #身長はmに換算する
a = float(bmi(weight, height))
b = float(a_weight(height))

#計算結果を出力する
print(f'Your BMI: {a}')
print(f'Your Appropriate Weight: {b}kg')

#自分の体重と適正体重の差を比較する
if b > weight:
    print(f'あなたの体重は適正体重よりも{round(b-weight, 1)}kg軽い.')

elif b == weight:
    print('あなたの体重は適正体重と同じ.')

else:
    print(f'あなたの体重は適正体重よりも{round(weight-b, 1)}kg重い.')

まず最初に、BMIや適正体重を計算する関数をそれぞれlambdaで作ります。BMIや適正体重は小数点で表記されます。小数同士の割り算は割り切れないことがあるので、小数第一位まで表示するように設定します。

次に、身長や体重の値を入力してもらいその値を関数に代入します。小数同士で計算するので、その際に値をfloat型に変換します。BMIを計算する時、身長はmで計算します。その際、身長の場合はcm単位で値を入力させてその後に100で割り算します。

値を関数に代入したあと、計算結果をprint関数で出力します。

最後に自分の体重と適正体重の差を比較します。

適正体重が自分の体重を下回っている場合は「適正体重より軽い」、適正体重と自分の体重が一致している場合は「適正体重と等しい」と表示します。これら2つの条件に当てはまらない時、「適正体重よりも重い」と表示します。適正体重より軽い、あるいは重い場合は適正体重と自分の体重の差の値を表示します。

では、実行してみましょう。(身長:175cm、体重:61.2kgの場合)

▼実行結果①

enter your weight by kg:61.2
enter your height by cm:175
Your BMI: 20.0
Your Appropriate Weight: 67.4kg
あなたの体重は適正体重よりも6.2kg軽い.

BMI値と適正体重が出力されました。適正体重が自分の体重を上回っていたので、「適正体重よりも軽い」と表示されました。

プログラムが正常に動作するかどうかを確かめるため、別の値を入力して実行します。(身長:168cm、体重:68.5kgの場合)

▼実行結果②

enter your weight by kg:68.5
enter your height by cm:168
Your BMI: 24.3
Your Appropriate Weight: 62.1kg
あなたの体重は適正体重よりも6.4kg重い.

BMI値と適正体重が出力されました。適正体重が自分の体重を下回っていたので、「適正体重よりも重い」と表示されました。

これでプログラムが正常に動作することがわかりました。

Pythonでは、このように「設計」→「コーディング」→「実行」→「検証」という流れでプログラムを書いていきます。