前言#
新年快乐呀!随着春节假期来到尾声,大家的生活也逐渐回归正常,这段时间一直闲的没事,亲戚也很少走,我就写了我一直想写的 BMI 计算。
什么是 BMI#
身体质量指数,是 BMI(Body Mass Index)指数,简称体质指数,是国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。
计算公式为:BMI = 体重 ÷ 身高 2。(体重单位:千克;身高单位:米。)
BMI 由 19 世纪中期的比利时通才凯特勒最先提出
摘自 百度百科
BMI 在不同国家中,有不同的标准,其中 International Normal Standard 为 20 – 25,此次我才用了 PRC Standard (中国标准),其中 PRC Normal Standard 为 18.5 – 23.9。
输出预览#
其中带 #的部分是我的解释,正式运行是没有的
こんにちは!お会いできて嬉しいです。お名前は何ですか?
マグネット # 我输入的值
わかりました!マグネット。あなたのBMIと分類(成人)を計算しましょう。
体重(kg)を入力してください
42 # 我输入的值
身長(m)を入力してください
1.65 # 我输入的值
こんにちは、マグネット!あなたのBMIは15.426997245179065です。
ああ!マグネット!あなたは低体重で、BMIは基準を下回っています。
基準は中国から来ています
終了するにはEnterを押してください
全部代码#
############################
### 日付 2022年1月24日 ###
### 著者 マグネット ###
### 名前 BMI計算 <——>
### 施設 iPad ###
### 言語 Python ###
############################
#歓迎画面
print("こんにちは!お会いできて嬉しいです。お名前は何ですか?") # 字串符
the_name = input()
print(f"\nわかりました!{the_name}。あなたのBMIと分類(成人)を計算しましょう。") # 字串符
#入力値
print("\n体重(kg)を入力してください")
weight = input()
print("\n身長(m)を入力してください")
height = input()
#値を変換
your_weight = float(weight)
your_height = float(height)
#計算
number = your_weight/(your_height*your_height)
the_number = float(number)
#数値を得る
print(f"\nこんにちは {the_name}!あなたのBMIは {the_number} です。\n") # 字串符
#分析
if the_number < 18.5:
print(f"ああ!{the_name}!あなたは低体重で、BMIは基準を下回っています。")
elif 18.5 <= the_number <= 23.9:
print(f"{the_name}、あなたのBMIは正常です。")
elif 23.9 < the_number <= 27.9:
print(f"{the_name}、あなたは過体重で、BMIは基準を超えています。")
elif 27.9 < the_number <= 32:
print(f"{the_name}、あなたは太りすぎで、BMIは基準を大きく上回っています。")
else:
print(f"{the_name}、あなたは基準を大幅に超えています。体重を減らしてください。")
print("\n基準は中国から来ています")
x = input('終了するにはEnterを押してください')
代码分析#
分析说明#
コード分析では、各行のコードが使用しているタイプやその用途、使用方法について具体的に説明します。行数にはコメントが占める行数も含まれます。
注释#
Python では、コメントは井号(#)で示されます。井号の後の内容は Python インタプリタによって無視されます。本プログラムの第 1-8 行、第 12 行、第 17 行、第 23 行、第 25 行はすべてコメントです。
例 #1
#歓迎画面
print("こんにちは!お会いできて嬉しいです。お名前は何ですか?")
Python インタプリタは最初の行を無視し、2 行目を実行します。
こんにちは!お会いできて嬉しいです。お名前は何ですか?
コメントの役割は?
コメントを書く主な目的は、コードが何をするのか、どのようにするのかを説明することです。開発中は、各部分がどのように協力して機能するかを理解していますが、時間が経つといくつかの詳細を忘れることがあります。もちろん、コードを調べることで各部分の動作を確認できますが、コメントを書くことで、自然言語でこのコードの概要を明確に示すことができ、後でこのコードを書くときに多くの時間を節約できます。
現在、大多数のソフトウェアは共同で作成されており、作成者は同じ会社の複数の従業員である可能性があり、同じオープンソースプロジェクトの開発者である可能性もあります。協力を容易にするために、コメントは不可欠であり、プログラムの最初からコメントを書くことをお勧めします。
ユーザー入力#
ほとんどのプログラムは最終ユーザーの問題を解決することを目的としており、そのためにはユーザーからの情報を取得する必要があります。したがって、ユーザー入力は非常に重要であり、Python ではinput()
関数を使用することで効果的に問題を解決できます。本プログラムでは、第10行
、第14行
、第16行
、第37行
でこの関数を使用しています。
例 #1
# 基本的なinput()の使い方
Message = input("こんにちは、世界")
print(Message)
このコードを実行すると、次の内容が表示されます。
こんにちは、世界
実行後、プログラムはユーザーの入力を待ち、ユーザーが Enter を押すと続行します。入力値は変数Message
に割り当てられ、次のprint(Message)
が入力された内容をユーザーに表示します:
こんにちは、世界ImMagneto
ImMagneto
正式なプログラムでは、上記の方法はあまり使用されず、より明確な方法が使用され、ユーザーに提供する情報の種類を正確に示すことができます。
例 #2
name = input("お名前を入力してください:")
print(f"\nこんにちは{name}!")
実行と対話の後、次のようになります:
お名前を入力してください:マグネット
こんにちはマグネット!
このプログラムでは、分離された書き方を使用して、文をより明確にしています。
例 #3
print("こんにちは!お会いできて嬉しいです。お名前は何ですか?")
the_name = input()
print(f"\nわかりました!{the_name}。あなたのBMIと分類(成人)を計算しましょう。")
print()
とinput()
を組み合わせることで、コードがより明確で視覚的になります。
こんにちは!お会いできて嬉しいです。お名前は何ですか?
マグネット
わかりました!マグネット。あなたのBMIと分類(成人)を計算しましょう。
ユーザー向けの内容には変化はありませんが、大規模プロジェクトの開発では良い書き方です。このような書き方はバグの発生を効果的に減少させ、指定された場所でのみユーザーが書いた内容を呼び出すことができます。
整数と文字列を浮動小数点数に変換する#
必要な計算と表示を行うために、整数と文字列を浮動小数点数に変換する必要があります。そのために、関数float()
を導入する必要があります。
float () メソッドの構文
class float([x])
ここで x は整数または文字列を表し、実行後に浮動小数点数が返されます。
例 #1
>>>float(1)
1.0
>>> float(112)
112.0
>>> float(-123.6)
-123.6
>>> float('123') # 文字列
123.0
本プログラムでは、浮動小数点数を計算する必要があり、明確な書き方を遵守するために分離された書き方を採用しています。
例 #2
#計算
number = 51.2/(1.6*1.6)
the_number = float(number)
#数値を得る
print(f"あなたのBMIは {the_number} です。")
最終的な出力は次のようになります。
あなたのBMIは 20.351562499999996 です。
浮動小数点数は無限小数に遭遇すると、切り捨てを行います。
ユーザーが入力した値も直接計算できず、浮動小数点数に変換する必要があります。幸運なことに、ユーザーが入力した値も整数と文字列であるため、float()
関数を使用して変換できます。
例 #3
#入力値
print("\n体重(kg)を入力してください")
weight = input()
print("\n身長(m)を入力してください")
height = input()
#値を変換
your_weight = float(weight)
your_height = float(height)
#計算
number = your_weight/(your_height*your_height)
the_number = float(number)
#数値を得る
print(f"\nあなたのBMIは {the_number} です。")
実行後は次のようになります:
体重(kg)を入力してください
51.2
身長(m)を入力してください
1.6
あなたの BMI は 20.351562499999996 です。
if-elif-else 文#
2 つ以上の異なる状況をチェックする必要がある場合、if-elif-else
構造を使用できます。これは、各条件テストを順にチェックし、合格した条件テストに出会うまで続きます。テストが合格すると、その後のコードが実行され、残りのif-elif-else
文の下のコードはスキップされます。説明を簡単にするために、直接例を挙げることが役立ちます。
例 #1
私たちが必要とする要件:
BMI 値が 18.5 未満の場合、基準値を下回っていることを伝えます。
BMI 値が 18.5 以上 23.9 以下の場合、基準値に達していることを伝えます。
BMI 値が 23.9 より大きく 27.9 以下の場合、基準値を超えていることを伝えます。
数学の範囲を通じて、これらの値の範囲は(-∞,27.9]
であり、これらの値の外側のすべての値は、基準を大幅に超えているため、これを伝える必要があります。
これらの要件に基づいて、必要なif-elif-else
文は次のようになります:
#分析
if the_number < 18.5:
print(f"あなたは低体重で、BMIは基準を下回っています。")
elif 18.5 <= the_number <= 23.9:
print(f"あなたのBMIは正常です。")
elif 23.9 < the_number <= 27.9:
print(f"あなたは過体重で、BMIは基準を超えています。")
elif 27.9 < the_number <= 32:
print(f"あなたは太りすぎで、BMIは基準を大きく上回っています。")
else:
print(f"あなたは基準を大幅に超えています。体重を減らしてください。")
前のif-elif
は(-∞,27.9]
の範囲内のすべての数を含んでいるため、else
は(27.9,+∞)
のみを含み、基準を大幅に超えている部分です。
次に、値が 20 であると仮定しましょう。
the_number = 20
if the_number < 18.5:
print(f"あなたは低体重で、BMIは基準を下回っています。")
elif 18.5 <= the_number <= 23.9:
print(f"あなたのBMIは正常です。")
elif 23.9 < the_number <= 27.9:
print(f"あなたは過体重で、BMIは基準を超えています。")
elif 27.9 < the_number <= 32:
print(f"あなたは太りすぎで、BMIは基準を大きく上回っています。")
else:
print(f"あなたは基準を大幅に超えています。体重を減らしてください。")
その結果、次の内容が得られます:
あなたのBMIは正常です。
if-elif-else
文と Python の特性により、この部分の内容は自然言語に非常に近いため、翻訳方法は非常に適用可能です。具体的な翻訳はここでは示しません。
尾声#
1 年前、私は多くの友人たちと、数行のコードで他の人の数百行のタスクを完了できる大神たちについて議論しました。彼らは非常に強力です。皆さんもそのような大神になるためには十分な積み重ねが必要です。私はそのような人々の存在を否定するつもりはありませんし、彼らの強さを否定するつもりもありませんが、私の認識では、本当に優れたプログラミング能力は、自分が書いた内容を明確に示し、どの部分が何をしているのかを明確かつ簡潔に伝えることができることです。一筆で完了するのではなく、これがプログラミングの意義です。もちろん、適度に短縮することで自分の意図をより良く表現することもできます。自然言語の成語のように、この号のタイトルが「未来を見据えた BMI 計算」と呼ばれるのもそのためです。未来のプログラミングでは、明確なコードだけが存在するでしょう。そのため、私はコードを分析する際、常に規範的で明確な書き方を行っています。これは未来を見据えているためです!
この文は Mix Space によって xLog に同期更新されています。元のリンクは https://fmcf.cc/posts/technology/Python_Notes_3