Python:変数ってなに?(変数と型 int / float / str / boolなど)
="pill" href="/posts/python/">Python記事一覧音声
目次
変数とは?基本の考え方と使い分けの基準
今回できるようになることは、変数の意味と int/float/str/bool の使い分けがわかり、簡単な演算と表示ができるようになることです。
変数とは、値(データ)に名前を付けて扱う箱(参照)です。型とは、その箱に入るデータの種類を表し、int(整数)、float(小数)、str(文字列)、bool(真偽値)などがあります。
使い分けは、数値計算なら int/float、テキストなら str、条件判定なら bool を選ぶのが基本です。型が異なると演算や結合で失敗しやすいため、必要に応じて int()/float()/str() で明示的に変換すると要チェックしやすくなります。
- 計算の精度が必要な場合は float を基準に選びます。
- 桁や順序を扱う場合は int を基準に選びます。
- 出力や結合では str、真偽判定では bool を基準に選びます。
実践:最小コードと実行方法
最小コードは次のとおりです。
# vars_demo.py
a = 10 # int
b = 3.5 # float
name = "Alice" # str
is_active = True # bool
sum_val = a + b # int + float -> float
greet = "User: " + name # str concatenation
check = (a > 5) and is_active
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段ステップアップとして、入力を受け取って型変換まで行う処理を関数化すると再利用性が上がります。さらに例外処理を入れておくと、不正な入力が混ざっても処理が止まりにくくなります。
def read_int(prompt="数値を入力してください: "):
while True:
s = input(prompt)
try:
return int(s)
except ValueError:
print("整数として解釈できませんでした。もう一度入力してください。")
def read_float(prompt="小数を入力してください: "):
while True:
s = input(prompt)
try:
return float(s)
except ValueError:
print("小数として解釈できませんでした。もう一度入力してください。")
使い分けの基準として、表示はstrに変換し、計算は数値型で扱い、条件分岐はboolで扱うと整理しやすいです。
注意(ここだけ)
- 変数名は英字またはアンダースコアで始める必要があります。また、組み込み名(例:
list、str、int)を変数名にして上書きすると標準の振る舞いに影響しやすいため、要チェックとして避けたい例です。
要約
- 変数は値に名前を付ける箱のようなもので、int・float・str・boolは用途に応じて使い分けできます。
- 型が違うと演算や結合がうまくいかないため、type()で確認しつつ、必要に応じて明示的に変換するとよいです。
- 最小コード例で、加算・文字列結合・真偽値の基本操作と出力を学べます。
- デバッグではprintとtype()で確認し、必要ならloggingも使うと効率よく状況を追えます。
- よくあるミスは型の不一致と組み込みの名前の上書きで、エラーメッセージを読みながら変換や名前変更で直せます。