Python:変数ってなに?(変数と型 int / float / str / boolなど)
音声
目次
変数とは?基本の考え方と使い分けの基準
今回できるようになることは、変数の意味と int/float/str/bool の使い分けがわかり、簡単な演算と表示ができるようになることです。
変数とは、値(データ)に名前を付けて扱う箱(参照)です。型とは、その箱に入るデータの種類を表し、int(整数)、float(小数)、str(文字列)、bool(真偽値)などがあります。
使い分けは、数値計算なら int/float、テキストなら str、条件判定なら bool を選ぶのが基本です。型が異なると演算や結合で失敗しやすいため、必要に応じて int()/float()/str() で明示的に変換すると要チェックしやすくなります。
- 小数を扱うなら float を基準に選びます。
- 桁や順序を扱う場合は int を基準に選びます。
- 出力や結合では str、真偽判定では bool を基準に選びます。
- ※Pythonは型を書かなくても、代入した値から自動で型が決まります。型を確認したいときは type() を使います。
実践:最小コードと実行方法
最小コードは次のとおりです。
# vars_demo.py
# 変数 (型の例)
a = 10 # int: 整数
b = 3.5 # float: 小数
name = "Alice" # str: 文字列
is_active = True # bool: True/False
# 使ってみる(計算・連結・条件)
sum_val = a + b # int + float → float(小数が混ざると結果はfloat)
greet = "User: " + name # str + str → 文字列をつなぐ
check = (a > 5) and is_active # 条件の結果はbool(True/False)
# 表示して確認
print("sum_val =", sum_val)
print("greet =", greet)
print("check =", check)
print("sum_val type:", type(sum_val)) # 型の確認
このコードは数値の加算、文字列の結合、真偽値の組み合わせを行い、最後に値と型を表示します。
実行方法は次のとおりです。
- ファイル名を vars_demo.py として保存します。
- ターミナルで
python vars_demo.pyを実行します。 - または VSCode でファイルを開き、Run(実行)を押して実行します。
# 実行コマンド例
python vars_demo.py
確認とデバッグ(type確認・print・logging)
途中結果を確かめるには、print()で値を表示し、type(変数)で型を確認すると分かりやすいです。実行中に想定どおりの値になっているかを追うことで、原因の切り分けが早くなります。
(最初は不要ですが)出力を状況に応じて切り替えたい場合は、loggingモジュールを使うとレベル管理ができます。たとえばlogging.basicConfig(level=logging.DEBUG)を設定し、logging.debug()で詳細ログを出す運用にすると、開発時と本番時で出力を調整しやすくなります。
コード例
# 変数を作る
sum_val = 13.5
greet = "User: Alice"
check = True
# 値を表示する
print("sum_val =", sum_val)
print("greet =", greet)
print("check =", check)
# 型を表示する
print("sum_val type:", type(sum_val))
実行結果
sum_val = 13.5
greet = User: Alice
check = True
sum_val type: <class 'float'>
値の追跡はprintが手早く、型の確認はtype()が確実です。必要になった段階でloggingを導入すると、出力の整理がしやすくなります。
ポイントとして、短いコードではprintが最短ですが、規模が大きくなるほど出力が散らかりやすいので、状況に応じてloggingへ寄せると保守しやすいです。
よくあるミスと1段ステップアップ
よくあるミスとして、文字列と数値を+で結合しようとしてTypeErrorになることがあります。この場合は、str()で数値を文字列に変換するか、フォーマット文字列のf"{val}"で結合すると解決しやすいです。
また、計算結果が期待した型にならないことも起こりやすいです。たとえば、整数同士の割り算でも結果がfloatになるため、必要に応じてint()で変換したり、round()で丸めたりすると意図に合いやすいです。
1段ステップアップとして、入力を受け取って型変換まで行う処理を関数化すると再利用性が上がります。さらに例外処理を入れておくと、不正な入力が混ざっても処理が止まりにくくなります。
# input()で入力した値は、すべてstr型として扱われます。
# そのため、数値として扱いたい場合は、int()やfloat()で変換する必要があります。
# なので、入力値を数値に変換できるまで繰り返す関数を作成します。
# 入力を int に変換できるまで繰り返し、成功したら int を返す
def read_int(prompt="整数を入力してください: "):
while True:
s = input(prompt)
try:
return int(s)
except ValueError:
print("整数として解釈できませんでした。もう一度入力してください。")
# 入力を float に変換できるまで繰り返し、成功したら float を返す
# ※ "10" のような入力も float("10") -> 10.0 でOK
def read_float(prompt="数値を入力してください(整数/小数): "):
while True:
s = input(prompt)
try:
return float(s)
except ValueError:
print("数値として解釈できませんでした。もう一度入力してください。")
# 実行例
x = read_int()
y = read_float()
print("read_int ->", x, type(x)) # 期待される型: int
print("read_float->", y, type(y)) # 期待される型: float
使い分けの基準として、表示はstrに変換し、計算は数値型で扱い、条件分岐はboolで扱うと整理しやすいです。
注意(ここだけ)
- 変数名は英字またはアンダースコアで始める必要があります。また、組み込み名(例:
list、str、int)を変数名にして上書きすると標準の振る舞いに影響しやすいため、要チェックとして避けたい例です。
要約
- 変数は値に名前を付ける箱のようなもので、int・float・str・boolは用途に応じて使い分けできます。
- 型が違うと演算や結合がうまくいかないため、type()で確認しつつ、必要に応じて明示的に変換するとよいです。
- 最小コード例で、加算・文字列結合・真偽値の基本操作と出力を学べます。
- デバッグではprintとtype()で確認し、必要ならloggingも使うと効率よく状況を追えます。
- よくあるミスは型の不一致と組み込みの名前の上書きで、エラーメッセージを読みながら変換や名前変更で直せます。