【Python入門講座】2章.変数の使い方「型・宣言・初期化・四捨五入」など

Pythonのサムネイル

☜前の章へ VSCODEでPythonの開発環境を構築
☞次の章へ 計算の基本と四則演算や演算子の使い方


この記事で分かること
  1. 変数の型とは何か
  2. 変数名の付け方のルール
  3. 変数の宣言方法
  4. 変数の基本的な初期化方法
  5. 変数の型アノテーションを使った初期化方法
  6. 変数に値を代入する方法
  7. 変数を出力する方法3パターン
  8. 小数点の四捨五入・切り上げ・切り捨て方法

この章では変数の基本的な扱い方について学ぶことが出来ます。

変数には数値などを格納することができ、この変数同士を使い計算などを行うことができます。

Pythonの変数の型とは

変数の型とは
  • 変数に格納できるデータの種類を指定するもの

変数には、整数や文字列など様々な種類のデータを格納することができます。

変数は格納されるデータの種類によって型の名前が変わります

例えば、整数という種類のデータを変数に格納した場合、その変数は「整数型の変数」または「int型の変数」と呼ばれるようになります

英語で整数のことを「integer」と書くので、その先頭3文字からint型となっています。

プログラミング言語は、「動的型付け言語」と「静的型付け言語」に分かれており、Pythonは動的型付け言語です。

静的型付け言語の場合、変数の初期化時に必ず変数の型を指定する必要がありますが、Pythonなどの動的型付け言語の場合は自動的に型が決定されるため、変数の型を指定する必要がありません

しかし型という概念はプログラミングにとって非常に重要なので確認していきます。

python変数のイメージ

上記の図を見てください。int型の変数には数字の100を格納することができますが、文字のAを格納することはできません。char型には文字のAを格納することができます

このように、変数は型によって格納できるデータが異なります。

※本来であれば自分で型を指定する必要があるのですが、Pythonは自動で型を決定してくれます。自分では型を指定しませんが、内部的には変数のイメージ図のように型が設定されています。

変数には種類があり、型(種類)を指定してあげることで変数に格納できるものが変化します

  • 変数には種類がある
  • 変数の型を指定することで格納できるデータの種類が変わる

以下の表はPythonの変数の型の一例です。

種類データ型サイズ値の範囲
文字列str∞(利用可能メモリサイズ)
整数型int∞(利用可能メモリサイズ)
浮動小数点型float84.94065645841246544e-324~1.79769313486231570e+308
表:Pythonのデータ型
  • str(ストリング)型:str型の変数には「こんにちは」などの文字列を格納することができる変数の型です。
  • int(イント)型:int型は整数型なので、11、334、9428などのように小数点などを含まない数値を格納することが出来る変数の型です。
  • float(フロート)型:float型は浮動小数点型なので、2.5、0.009などの小数点が含まれる数値を格納することが出来る変数の型です。

Pythonの変数名の付け方のルール

  • 変数名にはアルファベット、数字、_(アンダーバー)を使用できる
num_1
  • 一文字目に数字は使用できない
1num
  • 大文字と小文字は区別される
num
Num
  • 予約語(Pythonに登録されている単語のこと)は使用できない
予約語一覧
FalseNoneTrueandas
assertasyncawaitbreakclass
continuedefdelelifelse
exceptfinallyforfromglobal
ifimportinislambda
nonlocalnotorpassraise
returntrywhilewithyield
表:Pythonの予約語

予約語で変数を宣言するとエラーになります。予約語以外の単語をしようするようにしましょう。

使用はできますが、使用を避けた方が良い単語として、組み込み関数名があります。
組み込み関数とは、Pythonに登録されている関数のことです。

関数とは便利な機能を提供してくれるものです。

組み込み関数はPythonの公式ページで確認できます。

組み込み関数
Python インタプリタには数多くの関数と型が組み込まれており、いつでも利用できます。それらをここにアルファベット順に挙げます。,,,, 組み込み関数,,, A, abs(), aiter(), all(), anext(), any(), ascii(),, B, bin(), bool(), breakpoint...

Pythonで変数を宣言する方法

変数の宣言方法
  • 変数名 = None
name = None

nameが変数名でNoneはnameには特定の値ないことを表しています。

Pythonで変数を宣言のみ行うには、Noneを使います

基本的に左に変数名を書き、右に値を書き、間に=(イコール)を書きます。

Pythonの変数の基本的な初期化方法

※上記の青い文字から読みたい項目へ移動することができます

Pythonの文字列型(str)変数の初期化方法

文字列型(str)変数の初期化方法
  • 変数名 = “123あいうえお”
  • 変数名 = ‘123かきくけこ’

文字列を変数に格納したい場合、文字列を”(ダブルクォーテーション)または'(シングルクォーテーション)で囲みます

変数に値を格納することを代入と言います。

word_1 = "123あいうえお"
word_2 = '123かきくけこ'

print(word_1)
print(word_2)

出力結果

出力結果 123あいうえお 123かきくけこ
変数の出力方法
  • print(変数名または文字列、数値などの値)

データを出力したい場合はprint()関数を使います。

先ほど組み込み関数という単語が出てきましたが、print()関数は組み込み関数です。たったこれだけの記述で出力という機能を提供してくれます。

変数とは、箱のようなものです。変数には数値や文字列などのデータを格納することができます。

word_1とword_2を変数と言います
このように、変数の宣言と同時に、変数に値を代入することを初期化と言います

Pythonの整数型(int)変数の初期化方法

整数型(int)変数の初期化方法
  • 変数名 = 123

整数を変数に格納したい場合、整数を右側に書きます。整数を”(ダブルクォーテーション)などで囲む必要はありません。

num = 123

print(num)

出力結果

出力結果123

Pythonの浮動小数点型(float)変数の初期化方法

浮動小数点型(float)変数の初期化方法
  • 変数名 = 3.24

小数を変数に格納したい場合、小数を右側に書きます。小数を”(ダブルクォーテーション)などで囲む必要はありません。

dec = 3.24

print(dec)

出力結果

出力結果3.24

Pythonの型アノテーションを使った変数の初期化方法

Pythonの変数には型ヒントというものを付与することができ、型ヒントを付与するために型アノテーションを変数の初期化時に加えます。

型ヒントが付与されると、VSCODEやIDE(統合開発環境)が型を認識してくれます。

アノテーションとは、プログラム中の注釈のことです。
型アノテーションとは、変数の型に関する注釈のことです。

型アノテーションを加えた文字列型(str)変数の初期化方法
  • 変数名: str = “123あいうえお”
  • 変数名: str = ‘123かきくけこ’

文字列型変数に型アノテーションを加える場合、変数名の右に:(コロン)を書き、:(コロン)の右にスペースを入れ、strという変数の型を書きます。

str以外の型の指定したい場合は、strをintなどに変更します。

word_1: str = "123あいうえお"
word_2: str = "123かきくけこ"

print(word_1)
print(word_2)

出力結果

出力結果 123あいうえお 123かきくけこ

この場合「: str」が型アノテーションです
このように型アノテーションを加えることで型ヒントを付与することができます

型アノテーションを加えるメリット
  • 型が分からないということを防いでくれる
  • 他人がソースコードを見た時に理解しやすい
  • VSCODE(エディタ)やIDE(統合開発環境)が間違いを教えてくれる

型アノテーションを加えると、変数の型などが分からなくなることを防ぐことができます。プログラムが大規模になった時に型が分からないと、何がどのような役割をしているのかが分からなくなる恐れがあるため、有用です。

複数人で開発する時に、ソースコードに型アノテーションを加えることで他者がプログラムの意味を理解しやすくなります

そして型ヒントを付与すると、VSCODE(エディタ)やIDE(統合開発環境)が型を認識してくれて、間違いを指摘してくれます

VSCODEに型ヒントを認識してもらうためには、「Mypy Type Checker」という拡張機能をインストールする必要があります

拡張機能Mypy Type Checkerのインストール

拡張機能を選択し、「Mypy Type Checker」と入力し、インストールしましょう。
特に設定は必要ないですが、エラーが表示されない場合は、VSCODEを再起動してください。

Pythonのmypy type checkerを使用した静的型チェック

str型の変数に数値を格納しようとしているため注意してくれています。このように間違いをしてもらうことで予期せぬエラーを防ぐことが出来るというメリットがあります。

自動で間違いを指摘してくれる機能のことを静的解析と言います。

このように型アノテーションを加えることには様々なメリットがあります。

Pythonで変数に値を代入する方法

変数の代入方法
  • 変数名 = 値
word = "あいうえお"

print(word)

word = "かきくけこ"

print(word)

出力結果

出力結果 あいうえお かきくけこ

このように初期化した変数に後から他の値を代入することができます。

word_1 = "あいうえお"

print(f"変数word_1の値は: {word_1}")

word_2 = "かきくけこ"

print(f"変数word_2の値は: {word_2}")

word_1 = word_2

print(f"変数word_1の値は: {word_1}")

出力結果

変数word_1の値は: あいうえお 変数word_2の値は: かきくけこ 変数word_1の値は: かきくけこ

このように変数に他の変数の値を代入することもできます。

Pythonで変数を出力する方法3パターン

変数の出力の3パターン
  • print(f”1:変数wordの値は: {word}”)
  • print(“2:変数wordの値は:”, word)
  • print(“3:変数wordの値は: ” + word)
word = "あいうえお"

print(f"1:変数wordの値は: {word}")
print("2:変数wordの値は:", word)
print("3:変数wordの値は: " + word)

出力結果

1:変数wordの値は: あいうえお 2:変数wordの値は: あいうえお 3:変数wordの値は: あいうえお

1番目の出力方法は、先頭にfを書き、表示したい変数名を{}で囲むことで任意の場所に変数の値を出力することができます。

2番目の出力方法は、,(カンマ)で区切られた順番に表示する方法です。

3番目の出力方法は、+を使い文字列を連結して表示するほうほうです。

Pythonの小数点の四捨五入・切り上げ・切り捨て

※上記の青い文字から読みたい項目へ移動することができます

小数点を四捨五入する方法

小数点を四捨五入する方法
  • round(number, 小数点の位)
number = 1.235

rounded_number = round(number, 2)

print(rounded_number)

出力結果

1.24

Pythonで小数点を四捨五入するためには、round関数を使用します。

(左側,右側)の左側に、四捨五入したい値を入力し、右側に四捨五入したい小数点の位を入力します。

小数点を切り上げる方法

小数点を切り上げる方法
  • math.ceil(number)
import math

number = 1.235

rounded_up_number_1 = math.ceil(number)
print(rounded_up_number_1)

rounded_up_number_2 = math.ceil(number * 100) / 100
print(rounded_up_number_2)

出力結果

2 1.24

小数点を切り上げるには、math.ceil()関数を使用します。

math.ceil()関数を使用するためには、冒頭に「import math」と書く必要があります。特殊な関数を使用する場合、importが必要になります。例えるならスマホアプリをインストールするようなものです。

math.ceil(number)というように書くと、小数点以下が切り上げられますが、小数点以下の桁数を指定して切り上げることはできません

小数点以下の桁数を指定したい場合の手順は以下の通りです。

  1. (number * 100) 「1.235 * 100 = 123.5」
  2. math.ceil(number * 100) 「123.5 → 124」
  3. math.ceil(number * 100) / 100 「124 / 100 → 1.24」

小数点を切り捨てる方法

小数点を切り捨てる方法
  • math.floor(number)
import math

number = 1.235

rounded_down_number_1 = math.floor(number)
print(rounded_down_number_1)

rounded_down_number_2 = math.floor(number * 100) / 100
print(rounded_down_number_2)

出力結果

1 1.23

小数点を切り捨てるには、math.floor()関数を使用します。

math.floor()関数を使用するためには、冒頭に「import math」と書く必要があります

math.floor(number)というように書くと、小数点以下が切り捨てられますが、小数点以下の桁数を指定して切り捨てることはできません

小数点以下の桁数を指定したい場合の手順は以下の通りです。

  1. (number * 100) 「1.235 * 100 = 123.5」
  2. math.floor(number * 100) 「123.5 → 123」
  3. math.floor(number * 100) / 100 「124 / 100 → 1.23」

小数点の計算で発生する誤差について

小数点の計算結果は誤差が生じるため注意が必要です。

import math

number = 1.235

rounded_down_number_1 = math.floor(number)
print(rounded_down_number_1)

rounded_down_number_2 = math.floor(number * 100) / 100
print(format(rounded_down_number_2, '.20f'))

出力結果

1 1.22999999999999998224

先ほど、小数点以下の桁数を指定した切り捨ての結果は1.23でした。

この結果を小数点第20位まで表示してみると、「1.22999999999999998224」と表示されました。

なぜこのようになるのかというと、コンピュータは10進数を2進数に変換しますが、10進数を2進数で表現できずに2進数の桁が無限になる場合があります

桁が無限になると場合、コンピュータは無限の桁数を計算することはできないため、一定の桁数で切り捨てることになります。

それが誤差が生じる原因です。その誤差のことを丸目誤差と言います。


練習問題

  1. 変数 numAを宣言し、10を代入しましょう
  2. 変数 decAを宣言し、10.5 を代入しましょう
  3. 変数alfAを宣言し、あいうえおを代入しましょう
  4. 変数numA、decA、alfAをそれぞれコンソールに表示しましょう
# 変数の宣言と初期化
num_a = 10
dec_a = 10.5
alf_a = "あいうえお"

# 変数の表示
print("num_a:", num_a)
print("dec_a:", dec_a)
print("alf_a:", alf_a)

出力結果

num_a: 10 dec_a: 10.5 alf_a: あいうえお
  1. 変数numBを宣言し、100で初期化しましょう
  2. 変数decBを宣言し、105.005 で初期化しましょう
  3. alfAを宣言し、かきくけこで初期化しましょう
  4. 変数numB、decB、alfBをそれぞれコンソールに表示しましょう
# 変数の宣言と初期化
num_b = 100
dec_b = 105.005
alf_b = "かきくけこ"

# 変数の表示
print("num_b:", num_b)
print("dec_b:", dec_b)
print("alf_b:", alf_b)

出力結果

num_b: 100 dec_b: 105.005 alf_b: かきくけこ
  1. numAにnumBを代入しましょう
  2. decAにdecBを代入しましょう
  3. alfAにalfBを代入しましょう
  4. 変数numA、decA、alfAをそれぞれコンソールに表示しましょう
# 変数の宣言と初期化
num_a = 10
dec_a = 10.5
alf_a = "あいうえお"

# 変数の表示
print("num_a:", num_a)
print("dec_a:", dec_a)
print("alf_a:", alf_a)

# 別の変数の宣言と初期化
num_b = 100
dec_b = 105.005
alf_b = "かきくけこ"

# 別の変数の表示
print("num_b:", num_b)
print("dec_b:", dec_b)
print("alf_b:", alf_b)

# 変数の代入
num_a = num_b
dec_a = dec_b
alf_a = alf_b

# 代入後の変数の表示
print("num_a:", num_a)
print("dec_a:", dec_a)
print("alf_a:", alf_a)

出力結果

num_a: 10 dec_a: 10.5 alf_a: あいうえお num_b: 100 dec_b: 105.005 alf_b: かきくけこ num_a: 100 dec_a: 105.005 alf_a: かきくけこ

☜前の章へ VSCODEでPythonの開発環境を構築
☞次の章へ 計算の基本と四則演算や演算子の使い方