Python入門|変数と型の基礎をやさしく解説
プログラミングを始めたばかりの方にとって、「変数」や「型」は最初にぶつかる壁の一つです。この記事では、Pythonにおける変数の使い方とデータ型の基礎を、具体的なコード例を交えながらやさしく解説します。
変数とは何か
変数とは、データを一時的に保存しておくための「名前付きの箱」のようなものです。プログラムの中で数値や文字列などのデータを扱うとき、変数に入れておくことで何度でも使い回すことができます。
Pythonでは変数の宣言がとてもシンプルです。
# 変数にデータを代入する
name = "田中太郎"
age = 25
height = 170.5
上の例では、nameという変数に文字列「田中太郎」を、ageに整数25を、heightに小数170.5を代入しています。Pythonでは=(イコール)を使って右辺の値を左辺の変数に入れます。
変数の命名ルール
変数名にはいくつかのルールがあります。
# OK: 使える変数名
user_name = "太郎"
score1 = 100
_private = "非公開"
# NG: 使えない変数名
# 1score = 100 # 数字で始めてはいけない
# my-name = "太郎" # ハイフンは使えない
# class = "A" # 予約語は使えない
変数名のポイントは以下の通りです。
- 英数字とアンダースコア(
_)が使える - 数字で始めることはできない
- 大文字と小文字は区別される(
Nameとnameは別の変数) - Pythonの予約語(
if,for,classなど)は使えない
Pythonの基本データ型
Pythonには主に4つの基本的なデータ型があります。それぞれの特徴を見ていきましょう。
int(整数型)
小数点のない数値を扱います。
count = 10
negative = -5
big_number = 1_000_000 # アンダースコアで桁区切りが可能
print(type(count)) # <class 'int'>
float(浮動小数点型)
小数点を含む数値を扱います。
pi = 3.14159
temperature = -2.5
ratio = 1.0 # 小数点をつけるとfloatになる
print(type(pi)) # <class 'float'>
str(文字列型)
文字の並びを扱います。シングルクォートまたはダブルクォートで囲みます。
greeting = "こんにちは"
single = 'シングルクォートでもOK'
multiline = """複数行の
文字列も
書けます"""
print(type(greeting)) # <class 'str'>
bool(ブール型)
真(True)か偽(False)のどちらかを表します。条件分岐などで頻繁に使います。
is_student = True
has_license = False
print(type(is_student)) # <class 'bool'>
型の確認と変換
プログラムを書いていると、変数の型を確認したり、別の型に変換したりする場面が出てきます。
type()で型を確認する
x = 42
y = "hello"
z = 3.14
print(type(x)) # <class 'int'>
print(type(y)) # <class 'str'>
print(type(z)) # <class 'float'>
型変換(キャスト)
異なる型同士の計算や結合をするとき、型を変換する必要があります。
# 文字列を整数に変換
age_str = "25"
age_num = int(age_str)
print(age_num + 5) # 30
# 整数を文字列に変換
score = 100
message = "あなたの点数は" + str(score) + "点です"
print(message) # あなたの点数は100点です
# 整数を浮動小数点に変換
n = 10
f = float(n)
print(f) # 10.0
型変換で注意すべき点があります。
# これはエラーになる
# int("hello") # ValueError: 数値に変換できない文字列
# これもエラーになる
# int("3.14") # ValueError: 小数点を含む文字列は直接intにできない
# 正しくはこう書く
result = int(float("3.14")) # まずfloatに変換してからintに
print(result) # 3
変数の操作と演算
変数に入れたデータは、さまざまな演算で操作できます。
数値の演算
a = 10
b = 3
print(a + b) # 13(加算)
print(a - b) # 7(減算)
print(a * b) # 30(乗算)
print(a / b) # 3.3333...(除算、結果はfloat)
print(a // b) # 3(切り捨て除算)
print(a % b) # 1(余り)
print(a ** b) # 1000(べき乗)
文字列の操作
first = "田中"
last = "太郎"
# 文字列の結合
full_name = first + last
print(full_name) # 田中太郎
# 文字列の繰り返し
line = "-" * 20
print(line) # --------------------
# f文字列(フォーマット文字列)
age = 25
intro = f"私は{first}{last}、{age}歳です。"
print(intro) # 私は田中太郎、25歳です。
f文字列はPython 3.6以降で使える便利な機能です。波括弧{}の中に変数名を書くだけで、文字列の中に値を埋め込めます。
変数の更新
count = 0
count = count + 1 # countを1増やす
print(count) # 1
# 省略記法
count += 1 # 上と同じ意味
print(count) # 2
count -= 1 # 1減らす
count *= 3 # 3倍にする
count /= 2 # 2で割る
初心者がよくやるミスと対策
ミス1: 型の不一致
# エラーになる例
age = 25
# message = "年齢は" + age + "歳" # TypeError
# 正しい書き方
message = "年齢は" + str(age) + "歳"
# または
message = f"年齢は{age}歳"
文字列と数値を+で直接つなげることはできません。str()で変換するか、f文字列を使いましょう。
ミス2: 変数名のタイプミス
user_name = "太郎"
# print(username) # NameError: 'username'は定義されていない
# アンダースコアの有無に注意
print(user_name) # 太郎
Pythonは変数名の大文字・小文字やアンダースコアの有無を厳密に区別します。エラーが出たら、まず変数名のスペルを確認しましょう。
ミス3: 未定義変数の使用
# print(x) # NameError: 'x'は定義されていない
# 変数は必ず代入してから使う
x = 10
print(x) # 10
変数は使う前に必ず値を代入しておく必要があります。
実践的なアドバイス
- 変数名は中身がわかる名前にする(
xよりuser_ageの方がよい) - Pythonでは小文字とアンダースコアを組み合わせた命名(スネークケース)が推奨されている
- 迷ったら
type()で型を確認する癖をつける - f文字列を積極的に使うと、コードが読みやすくなる
まずはPythonのインタラクティブシェル(ターミナルでpythonと入力)を起動して、実際に変数を作ったり型を確認したりしてみましょう。手を動かすことが上達への近道です。