エラノート エラノート

Python入門|変数と型の基礎をやさしく解説

Python 変数 データ型 入門
広告スペース (article-top)

プログラミングを始めたばかりの方にとって、「変数」や「型」は最初にぶつかる壁の一つです。この記事では、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"       # 予約語は使えない

変数名のポイントは以下の通りです。

  • 英数字とアンダースコア(_)が使える
  • 数字で始めることはできない
  • 大文字と小文字は区別される(Namenameは別の変数)
  • 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と入力)を起動して、実際に変数を作ったり型を確認したりしてみましょう。手を動かすことが上達への近道です。

広告スペース (article-bottom)

あわせて読みたい