Pythonの変数とデータ型は、プログラムを書く上で非常に重要な基礎となります。ここでは、変数の宣言方法、命名規則、データ型の分類について説明し、主要なデータ型である bool
、int
、float
、complex
、str
、list
について詳しく見ていきます。
変数とは
変数とは、プログラム中でデータを一時的に保持するための名前付きの入れ物のようなものです。
変数に値を割り当てることで、その値をプログラムの他の部分で再利用することができます。
コンピュータのメモリに格納されたデータに名前を付けてアクセスできるようにする仕組みが「変数」です。
例
x = 10
y = 5
z = x + y
print(z) # 15が出力される
上記のコードでは、変数 x
と y
にそれぞれ 10
と 5
という値を代入し、z
には x + y
の結果が代入されています。
このように、変数を使ってデータを保存し、その後の処理で再利用します。
変数の仕組み
- 名前: 変数には名前を付けて、そのデータにアクセスできるようにします。この名前を「識別子」と呼びます。
- 値: 変数には実際のデータ、つまり「値」を格納します。例えば、
x = 10
では変数x
に値10
が代入されています。 - メモリのアドレス: 変数が保持している値は、コンピュータのメモリのどこかに格納されています。変数を使うことで、メモリの複雑なアドレスを意識せず、値にアクセスすることができます。
変数の利点
変数を使うことで次のような利点があります:
- 再利用可能: 一度変数に値を代入すれば、その変数名を使って何度でもその値を使用できます。
- 可読性の向上: 値そのものではなく、名前付きの変数を使うことでプログラムがわかりやすくなります。
- 柔軟性: 変数の値を後で変更できるので、動的な処理が可能になります。
変数の重要な概念
- 変数の宣言: Pythonでは、変数の宣言時にデータ型を指定する必要はなく、値を代入するだけで変数が自動的に作成されます。例えば、
x = 10
という式を実行すると、Pythonは自動的にx
に整数型(int
)の値10
を代入します。 - データ型の自動決定: 変数にどのようなデータ型が割り当てられるかは、代入された値によって自動的に決まります。
- 例えば、
x = 10
ではx
は整数(int
)として扱われますが、y = 3.14
とすればy
は浮動小数点数(float
)になります。
- 例えば、
- 可変性: Pythonでは、変数の値を後から変更することができます。これを「可変性」といいます。例えば、
x = 10
とした後にx = 20
とすれば、変数x
の値は20
に更新されます。 - 動的型付け: Pythonは「動的型付け」という特徴を持っています。これは、変数にどのようなデータ型の値でも自由に代入できるという意味です。最初に整数を代入した変数に、次に文字列やリストなどを代入することも可能です。
x = 10 # xは整数型
print(x) # 10が表示される
x = "Hello" # xに文字列を代入
print(x) # Helloが表示される
変数の型については後程詳しく説明します。
print()
関数
print()
は、変数や決められた内容をコンソール(画面)に表示するための関数です。主にプログラムの結果やメッセージを出力する際に使われます。
print(表示したい内容)
例:
print("こんにちは、Python!")
改行せずに出力する
print()
関数は、デフォルトで出力の後に改行しますが、end
パラメータを使うことで改行せずに出力することが可能です。
print("Hello", end=" ")
print("World!")
input()
関数
input()
は、ユーザーからの入力を受け取るための関数です。
ユーザーが何かを入力するまでプログラムの実行が一時停止し、入力された内容は文字列として返されます。
変数 = input(入力時に表示するメッセージ)
例:
name = input("あなたの名前は何ですか? ")
print("こんにちは、", name, "さん!")
入力されたデータを数値として扱う
input()
関数は、ユーザーが入力したデータを常に文字列として扱います。
そのため、数値として使用する場合は、int()
や float()
を使って文字列を数値に変換する必要があります。
age = input("あなたの年齢を教えてください: ")
age = int(age) # 文字列を整数に変換
print("あなたは", age, "歳です")
print()
と input()
を組み合わせた例
以下の例では、print()
と input()
を組み合わせて、ユーザーから数値を入力させ、簡単な計算結果を表示します。
# ユーザーから2つの数値を入力
num1 = input("最初の数値を入力してください: ")
num2 = input("2つ目の数値を入力してください: ")
# 文字列を整数に変換
num1 = int(num1)
num2 = int(num2)
# 2つの数値を足して結果を表示
result = num1 + num2
print("結果は", result, "です")
このプログラムでは、ユーザーが2つの数値を入力し、それらを足し算して結果を表示します。
入力された値は最初文字列ですが、int()
関数で整数に変換してから計算を行います。
変数の宣言
Pythonでは、変数を使用するために特別な宣言文は必要ありません。変数に値を代入することで、その変数が初めて定義されます。Pythonは動的型付け言語なので、変数に代入される値に応じて自動的にデータ型が決まります。
例
x = 10 # 整数型(int)
y = 3.14 # 浮動小数点数型(float)
name = "Alice" # 文字列型(str)
識別子の命名規則
変数名(識別子)には以下のルールがあります:
- 英字(A-Z、a-z)、数字(0-9)、アンダースコア(_)を使用できる。
- 変数名は数字で始めてはいけない。
- 大文字と小文字は区別される。
- 予約語(Pythonのキーワード)は変数名に使えない。
例
my_var = 100 # 有効な変数名
myVar = 200 # 大文字小文字は区別される
_underscore_var = 300 # 有効な変数名
2nd_var = 400 # 無効な変数名(数字で始まっている)
変数の破棄(削除)
変数を破棄(削除)したい場合は、del
キーワードを使います。これにより、その変数はメモリから削除され、以後その変数を使用しようとするとエラーが発生します。
例
x = 10
del x # 変数xを削除
# print(x) # エラー: 変数xは定義されていない
定数
Pythonには定数の概念がありませんが、慣習的に、定数として扱いたい変数はすべて大文字で命名します。Pythonでは値を変更できてしまうため、あくまで「変更しないつもり」という意味で定数の名前を大文字にします。
PI = 3.14159 # 定数として扱う(値を変更しないつもり)
データ型の分類
Pythonにはさまざまなデータ型があり、基本的なデータ型は次の通りです:
- bool(ブール型): 真偽値を表す型
True
または False
の2つの値を取ります。条件式の結果やフラグに使用されます。
is_valid = True
is_done = False
- int(整数型): 整数を表す型
整数を表すデータ型です。Pythonでは桁数に制限がなく、非常に大きな整数も扱うことができます。
x = 100
y = -50
- float(浮動小数点数型): 実数(小数)を表す型
実数(小数点を含む数)を表します。一般的に小数点以下の計算に使います。
pi = 3.14159
g = 9.81
- complex(複素数型): 実部と虚部を持つ複素数を表す型
複素数を表す型です。実部と虚部の2つの成分を持ちます。虚数部は j
を使って表現します。
z = 2 + 3j # 2が実部、3jが虚部
- str(文字列型): 文字列を表す型
文字列を表すデータ型です。シングルクォート('
)またはダブルクォート("
)で囲んで表現します。
name = "Alice"
greeting = 'Hello, world!'
- list(リスト型): 複数の値を順序付けて保持する型
リストは、複数の値を保持できるコレクション型です。リスト内の要素は変更可能(ミュータブル)で、任意の型を含むことができます。[]
でリストを作成します。
numbers = [1, 2, 3, 4, 5]
mixed_list = [10, "Hello", 3.14, True]
リスト内の要素は、インデックス(0から始まる番号)を使ってアクセスできます。
print(numbers[0]) # 1が表示される
numbers[2] = 100 # 3番目の要素を100に変更
型の確認方法
Pythonでは、変数の型(データ型)を確認するために、type()
関数を使います。この関数を使うと、指定した変数や値のデータ型を返してくれます。
type()
関数の基本的な使い方は次のとおりです:
type(変数)
この関数に変数を渡すと、その変数のデータ型が表示されます。
例
# 変数に値を代入
x = 10 # 整数型(int)
y = 3.14 # 浮動小数点数型(float)
name = "Alice" # 文字列型(str)
is_valid = True # ブール型(bool)
# 変数のデータ型を確認
print(type(x)) # <class 'int'>
print(type(y)) # <class 'float'>
print(type(name)) # <class 'str'>
print(type(is_valid)) # <class 'bool'>
出力例
<class 'int'>
<class 'float'>
<class 'str'>
<class 'bool'>
課題1
次の指示に従って、プログラムを作成してください。
問題
- リスト
my_list
を作成し、データ5
、"apple"
、3.14
、False
を格納。 - リストの2番目の要素を
"orange"
に変更。 - リストの最後に複素数
2 + 3j
を追加。 - すべての要素を
print()
で表示し、それぞれの要素のデータ型を表示。
出力例
5 <class 'int'>
orange <class 'str'>
3.14 <class 'float'>
False <class 'bool'>
(2+3j) <class 'complex'>
解答例はこちらをクリック
# リストの作成
my_list = [5, "apple", 3.14, False]
# 2番目の要素を"orange"に変更
my_list[1] = "orange"
# リストに複素数 (2+3j) を追加
my_list.append(2 + 3j)
# 各要素とそのデータ型を表示
for item in my_list:
print(item, type(item))
課題2
前回の問題をユーザーからの入力に基づき、結果を出力するように改造してください。
- 変数
height
に身長入力してもらいます。 - 変数
weight
に体重を入力してもらいます。 - これらの変数を使ってBMI(体重 / 身長^2)を計算し、その結果を
print()
関数で表示してください。
解答はこちらをクリック
# 身長を入力してもらう(メートル単位)
height = input("身長をメートル単位で入力してください (例: 1.75): ")
# 体重を入力してもらう(キログラム単位)
weight = input("体重をキログラム単位で入力してください (例: 70): ")
# 入力されたデータを浮動小数点数に変換
height = float(height)
weight = float(weight)
# BMIを計算
bmi = weight / (height ** 2)
# BMIの結果を表示
print("あなたのBMIは", bmi, "です")
次回はこちら