Python:変数について(実数編)

Python

Pythonの変数で数値を扱う際、整数実数とに分けて考えねばなりません。
本記事では、実数(じっすう)を使ったスクリプトを紹介します。

まず、実数の定義です。
実数とは、小数点以下を含む数です。ちなみに1.0も実数

【実数の例】0.5、12.125、-59.8、6.77777….

実数型変数の簡単なサンプル

実行イメージ

3.75
3.3333333333333335

ファイル名:10_hensu_jissu.py

# 実数型変数を使ってみる
x = 1.25
y = 3
print(x * y)

z = 10 / 3
print(z)

解説

変数xには実数の1.25を、yには整数の3をそれぞれ代入しました。
掛け算の結果は実数として表示されます。

3.75

整数同士の割り算の場合、値によっては割り切れず実数として計算されます。

z = 10 / 3

すこし簡単すぎたかもしれません。
次のサンプルもご覧ください。

実数の利用例

実行イメージ

世界が100人の村だったら、日本人は 1.6385324675324675人

世界がもし100人の村だったらという絵本が以前ヒットしました。人口データは2019年の統計をもとに計算してみました。

ファイル名:11_hensu_sekai.py

# 世界が100人の村だったら日本人は何人いるか計算する

sekai = 7700000000 # 世界人口: 77億人
nihon = 126167000 # 日本の人口: 1億2616万7000人

murabito = nihon * 100 / sekai
print("世界が100人の村だったら、日本人は " + str(murabito) + "人")

解説

6行目の割合を計算する式がポイントです。

murabito = nihon * 100 / sekai

変数murabitoに代入している右辺の式は基本的に左から右に計算されます。

実際はこんな感じでPython側で計算を行っています。

式の計算順序

途中までは整数の計算でしたが、割り算をした時点で実数に変わっています。Pythonの変数は柔軟ですので、最初の値が整数で途中から実数に変わったとしてもきちんと処理してくれます。もちろん途中から数値が文字列に置き換わってもエラーとはなりません。

ちなみに「左から右に計算する」を式を左から右に評価するとプログラミングの世界では言う事があります。

実数の表示桁数を変える

実は、わたしは先ほどの「世界が100人の村だったら」の表示結果に違和感があります。計算結果は正しいのでしょうが、小数点以下の表示が多すぎて見やすいとは言えません。これを小数点以下1桁で表示してみます。

実数の計算結果によっては循環小数になったり、小数点以下が多すぎて分かりにくい場合が出てきます。

print文とformat関数を組み合わせることで、小数点以下の表示桁数を制御できます。

実行イメージ

世界が100人の村だったら、日本人は 1.6人

ファイル名:12_hensu_sekai2.py

# 世界が100人の村だったら日本人は何人いるか計算する(小数点1桁で表示)

sekai = 7700000000 # 世界人口: 77億人
nihon = 126167000 # 日本の人口: 1億2616万7000人

murabito = nihon * 100 / sekai
print("世界が100人の村だったら、日本人は {:.1f}人".format(murabito) )

print文の文字列内に{ }を入れると、そのあとに続くformat関数(ピリオド「.」で文字列と繋げている点に注目)内に入れた変数の内容がその位置に表示されます。

{:.1f}とすれば、小数点以下1桁、{:.2f}とすれば小数点以下2桁という意味になります。

format関数についての解説は長くなりますので、今回はここまでとします。
まずは、Pythonでこういう事も出来ると思ってください。(どうも自分で作ったサンプルの表示が気になったもので…)

以上、Pythonの変数について(実数編)でした。
実数も扱えると応用範囲が広がりますね。

コメント

タイトルとURLをコピーしました