Python 変数とデータ型
Pythonでは、データは様々な型で表現されます。データ型は、データがどのような種類の値を表しているかを示します。主なデータ型には、以下のものがあります。
- int(整数)
- float(浮動小数点数)
- str(文字列)
- bool(真偽値)
- list(リスト)
- tuple(タプル)
- dictionary(辞書)
- set(集合)
変数は、データを格納するために使用されます。変数は、値に名前を付け、必要に応じて値を変更できます。Pythonでは、変数に値を代入するには、変数名に値を割り当てる単純な代入演算子「=」を使用します。
例えば、以下のようにして、変数「x」に整数値「5」を割り当てることができます。
x = 5
変数名は、英数字とアンダースコア(_)の組み合わせで構成されます。変数名は、数字で始めることはできません。Pythonでは、変数名は大文字と小文字を区別します。
変数に割り当てられた値のデータ型は、Pythonによって自動的に判別されます。変数のデータ型を明示的に指定することもできます。
例えば、以下のようにして、変数「name」に文字列「John」を割り当て、変数「age」に整数値「25」を割り当てることができます。
name = "John"
age = 25
これらの変数に割り当てられた値のデータ型は、それぞれ「str」と「int」です。
変数を使用することで、プログラムはより柔軟性を持ち、より複雑な計算や操作を行うことができます。変数とデータ型について理解することは、Pythonの基本的なコーディングにおいて非常に重要です。
int(整数)
整数とは、正の整数、負の整数、0を含む数のことです。Pythonのint型は、任意の大きさの整数を表現することができます。これは、Pythonが自動的に必要な桁数を確保するためです。
int型を使用する際には、単純に整数値を変数に割り当てるだけです。
例えば、以下のようにして、変数「x」に整数値「5」を割り当てることができます。
x = 5
また、Pythonでは、算術演算子を使用してint型の値を操作することができます。算術演算子には、加算(+)、減算(-)、乗算(*)、除算(/)などがあります。
例えば、以下のようにして、変数「x」と「y」に整数値を割り当て、それらの値を加算して、変数「z」に割り当てることができます。
x = 5
y = 3
z = x + y
print(z)
この場合、変数「z」には、値「8」が割り当てられます。
int型は、Pythonで頻繁に使用されるデータ型の1つであり、数学的な演算や計算を行うために必要です。
やってみよう
- int型の変数を三つ用意して合計してみましょう。
- 加算(+)以外の四則演算を試してみましょう。
float(浮動小数点数)
浮動小数点数とは、小数点以下に桁数がある数のことです。Pythonのfloat型は、任意の桁数の小数を表現することができます。ただし、浮動小数点数の精度は有限であり、誤差が生じる可能性があります。
float型を使用する際には、単純に小数値を変数に割り当てるだけです。
例えば、以下のようにして、変数「x」に小数値「3.14」を割り当てることができます。
x = 3.14
また、Pythonでは、算術演算子を使用してfloat型の値を操作することができます。
例えば、以下のようにして、変数「x」と「y」に浮動小数点数を割り当て、それらの値を乗算して、変数「z」に割り当てることができます。
x = 2.5
y = 1.5
z = x * y
print(z)
この場合、変数「z」には、値「3.75」が割り当てられます。
float型は、Pythonで頻繁に使用されるデータ型の1つであり、小数点以下の精度が必要な数値計算に使用されます。ただし、精度に関する問題に注意する必要があります。
str(文字列)
文字列とは、文字や数字、記号などの任意の文字のシーケンスのことです。Pythonのstr型は、ダブルクォートまたはシングルクォートで囲まれたテキスト文字列を表現することができます。
str型を使用する際には、単純に文字列を変数に割り当てるだけです。
例えば、以下のようにして、変数「name」に文字列「John」を割り当てることができます。
name = "John"
Pythonでは、文字列に対して多数の操作を行うことができます。文字列の操作には、文字列の結合、文字列の置換、文字列のスライシング、文字列の長さの取得などが含まれます。
例えば、以下のようにして、変数「first_name」と「last_name」に文字列を割り当て、それらの文字列を結合して、変数「full_name」に割り当てることができます。
first_name = "John"
last_name = "Doe"
full_name = first_name + " " + last_name
print(full_name)
この場合、変数「full_name」には、値「John Doe」が割り当てられます。
str型は、Pythonで頻繁に使用されるデータ型の1つであり、テキスト処理や文字列操作に使用されます。
文字列操作
※これらの操作は無理に覚える必要はありません。必要な時に検索すれば大丈夫です。
連結
文字列同士を「+」演算子で連結することができます。
str1 = "Hello"
str2 = "World"
str3 = str1 + " " + str2
print(str3) # "Hello World"
置換
文字列中の一部を別の文字列に置換するには、replace()メソッドを使用します。
str1 = "apple"
str2 = str1.replace("a", "b")
print(str2) # "bpple"
分割
文字列を指定した区切り文字で分割するには、split()メソッドを使用します。
str1 = "apple,banana,orange"
list1 = str1.split(",")
print(list1) # ["apple", "banana", "orange"]
大文字・小文字の変換
文字列を全て大文字にするには、upper()メソッドを使用します。
文字列を全て小文字にするには、lower()メソッドを使用します。
str1 = "Hello World"
str2 = str1.upper()
str3 = str1.lower()
print(str2) # "HELLO WORLD"
print(str3) # "hello world"
文字列の先頭・末尾の空白の削除
文字列の先頭と末尾にある空白文字を削除するには、strip()メソッドを使用します。
str1 = " Hello World "
str2 = str1.strip()
print(str2) # "Hello World"
特定の位置の文字を取得
文字列中の特定の位置の文字を取得するには、インデックスを指定します。
str1 = "Hello"
char1 = str1[0] # 最初の文字を取得
char2 = str1[1] # 2番目の文字を取得
print(char1) # "H"
print(char2) # "e"
長さを取得
文字列の長さを取得するには、len()関数を使用します。
str1 = "Hello World"
length = len(str1)
print(length) # 11
フォーマット
文字列内に変数や値を埋め込むには、文字列内に{}を置き、format()メソッドで文字列を作成します。
strname = "John"
age = 30
greeting = "My name is {}, and I am {} years old.".format(name, age)
print(greeting) # "My name is John, and I am 30 years old."
検索
文字列内の特定の文字列があるかどうかを検索するには、in演算子を使用します。
str1 = "Hello World"
if "World" in str1:
print("Found") # "Found"と出力される
bool(真偽値)
真偽値とは、真と偽の2つの値のことです。Pythonのbool型は、条件式の結果が真か偽かを表現するために使用されます。条件式は、比較演算子や論理演算子などの演算子を使用して評価されます。
bool型を使用する際には、条件式を変数に割り当てることができます。
例えば、以下のようにして、変数「x」に比較演算子を使用した条件式を割り当てることができます。
x = 5 > 3
この場合、条件式「5 > 3」が真であるため、変数「x」には真偽値「True」が割り当てられます。
bool型は、制御フロー構文(if文、for文、while文など)の条件式や、関数の戻り値として使用されます。また、論理演算子を使用して複数の条件式を組み合わせることもできます。
例えば、以下のようにして、変数「x」と「y」に比較演算子を使用した条件式を割り当て、論理演算子を使用してこれらの条件式を組み合わせた条件式を評価することができます。
x = 5 > 3
y = 2 < 1
z = x and not y
print (z)
この場合、変数「z」には、条件式「x and not y」が評価され、結果として真偽値「True」が割り当てられます。
bool型は、Pythonで頻繁に使用されるデータ型の1つであり、条件式の評価や制御フロー構文の制御に使用されます。
list(リスト)
Pythonのlist(リスト)は、複数の値を順序付きで格納するために使用されるデータ型です。
作成
リストは、角かっこ「[ ]」で囲まれた複数の要素から構成されます。要素は、カンマで区切られます。例えば、以下のようにして、数値や文字列などの要素を含むリストを作成することができます。
numbers = [1, 2, 3, 4, 5]
fruits = ['apple', 'orange', 'banana']
print(numbers)
print(fruits)
空のリストを作成するには、角括弧「[]」を使用します。
以下は、空のリストを作成する例です。
my_list = []
この例では、空のリスト「my_list」を作成しています。
要素の取得
リスト内の要素を取得するには、要素のインデックスを指定します。リストの最初の要素のインデックスは0で、次の要素は1、2と続きます。
リストのインデックスを使用して、リスト内の要素を取得する例です。
fruits = ['apple', 'orange', 'banana']
print(fruits[0]) # apple
print(fruits[1]) # orange
print(fruits[2]) # banana
この例では、変数「fruits」にリストが割り当てられ、インデックスを使用してリスト内の要素を取得しています。
また、リストのインデックスに負の値を指定することもできます。負のインデックスを指定する場合、リストの末尾から逆順に要素を指定します。つまり、最後の要素のインデックスは-1、最後から2番目の要素のインデックスは-2、最後から3番目の要素のインデックスは-3となります。
以下は、負のインデックスを使用して、リスト内の要素を取得する例です。
fruits = ['apple', 'orange', 'banana']
print(fruits[-1]) # banana
print(fruits[-2]) # orange
print(fruits[-3]) # apple
また、リストのスライシングと呼ばれる機能を使って、リスト内の一部の要素を取り出すことができます。
numbers = [1, 2, 3, 4, 5]
some_numbers = numbers[1:4]
print(some_numbers) # [2, 3, 4]
ループを利用して全要素を取得することも可能です。
my_list = [1, 2, 3, 4, 5]
# リストの全要素をループで取得
for item in my_list:
print(item)
このようにすると、リストの全要素が順番に item に代入され、 print 関数で表示されます。
ループの中で、リストのインデックス番号も取得したい場合は、 enumerate() 関数を使用して、以下のように書くことができます。
my_list = [1, 2, 3, 4, 5]
# リストの全要素とインデックス番号を取得
for index, item in enumerate(my_list):
print(f"Index {index}: {item}")
このようにすると、リストの要素とインデックス番号が順番に item と index に代入され、 print 関数で表示されます。
リストは、Pythonで非常に頻繁に使用されるデータ型の1つであり、多くの場合、配列やデータの集合を扱う際に使用されます。
要素数の取得
組み込み関数「len()」を使用します。len()関数は、リスト内の要素数を返します。
以下は、リストの要素数を取得する例です。
fruits = ['apple', 'orange', 'banana']
print(len(fruits)) # 3
この例では、len()関数を使用して、リスト「fruits」内の要素数を取得しています。結果は「3」と表示されます。
注意点として、len()関数は、リストの他にも、文字列、タプル、辞書など、他のPythonのオブジェクトの要素数を取得するために使用できます。
操作
リストは、要素の追加、削除、変更などが可能です。
※これらの操作は無理に覚える必要はありません。必要な時に検索すれば大丈夫です。
追加
末尾
要素を追加するには、「append」メソッドを使用します。
numbers = [1, 2, 3, 4, 5]
numbers.append(6)
print(numbers) # [1, 2, 3, 4, 5, 6]
先頭
リストの先頭に要素を追加するには、組み込み関数の「insert()」を使用します。
「insert()」関数は、リストの指定された位置に要素を挿入することができます。リストの先頭に要素を追加するためには、位置0に要素を挿入します。
以下は、リストの先頭に要素を追加する例です。
my_list = [1, 2, 3, 4, 5]
my_list.insert(0,0)
print(my_list) # [0, 1, 2, 3, 4, 5]
この例では、リスト「my_list」に5つの要素を追加した後、0を位置0に挿入しています。結果として、要素0がリストの先頭に追加されたリスト「[0, 1, 2, 3, 4, 5]」が表示されます。
指定位置
リストの指定位置に要素を追加するには、組み込み関数の「insert()」を使用します。
「insert()」関数は、リストの指定された位置に要素を挿入することができます。
以下は、リストの指定位置に要素を追加する例です。
my_list =[1, 2, 3, 4, 5]
my_list.insert(2, 'new')
print(my_list) # [1, 2, 'new', 3, 4, 5]
この例では、リスト「my_list」に5つの要素を追加した後、'new'を位置2に挿入しています。結果として、'new'がリストの2番目に追加されたリスト「[1, 2, 'new', 3, 4, 5]」が表示されます。
削除
一つの要素を値指定
「remove」メソッドを使用します。
numbers = [1, 2, 3, 4, 5]
numbers.remove(3)
print(numbers) # [1, 2, 4, 5]
一つの要素をインデックス指定
要素のインデックスを指定して「del」キーワードを使用します。以下は、インデックスを使用してリストから要素を削除する例です。
fruits = ['apple', 'orange', 'banana']
del fruits[1] # インデックス1の要素「orange」を削除する
print(fruits) # ['apple', 'banana']
複数の要素
複数の要素を削除することもできます。以下は、複数のインデックスを指定してリストから要素を削除する例です。
この例では、リスト「fruits」のインデックス1にある要素「orange」を削除しています。
fruits = ['apple', 'orange', 'banana', 'grape', 'kiwi']
del fruits[1:4] # インデックス1から4未満までの要素を削除する
print(fruits) # ['apple', 'kiwi']
この例では、「fruits」のインデックス1から4未満までの要素を削除しています。
注意点として、要素を削除するとリストの要素数が減少するため、インデックスが変化する可能性があります。要素を削除する場合は、必要に応じてインデックスを再度確認してから削除してください。
全ての要素
リストの内容を全て削除するには、組み込み関数の「clear()」を使用します。
以下は、リストの内容を全て削除する例です。
my_list = [1, 2, 3, 4, 5]
my_list.clear()
print(my_list) # []
この例では、リスト「my_list」に5つの要素を追加した後、全ての要素を削除しています。結果として空のリスト「[]」が表示されます。
変更
要素を変更するには、要素のインデックスを指定して代入します。
numbers = [1, 2, 3, 4, 5]
numbers[2] = 10
print(numbers) # [1, 2, 10, 4, 5]
結合
リストを結合するには、「+」演算子を使用するか、「extend()」メソッドを使用します。
「+」演算子を使用する場合は、結合したい2つのリストを「+」演算子で連結することができます。以下は、2つのリストを「+」演算子で結合する例です。
list1 = [1, 2, 3]
list2 = [4, 5, 6]
concatenated_list = list1 + list2
print(concatenated_list) # [1, 2, 3, 4, 5, 6]
この例では、リスト「list1」と「list2」を「+」演算子で結合して、「concatenated_list」という新しいリストを作成しています。
「extend()」メソッドを使用する場合は、リストを引数に渡して呼び出すことで、指定したリストを呼び出し元のリストに追加することができます。以下は、2つのリストを「extend()」メソッドで結合する例です。
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list1.extend(list2)
print(list1) # [1, 2, 3, 4, 5, 6]
この例では、リスト「list1」と「list2」を「extend()」メソッドで結合して、「list1」を更新しています。
tuple(タプル)
Pythonのタプル(tuple)は、複数の値を格納するためのデータ型の1つで、リストと同様に複数の要素をまとめて扱うことができます。
タプルは、丸括弧「()」を使って作成されます。タプルの要素は、カンマで区切られます。
以下は、タプルを作成する例です。
fruits = ('apple', 'orange', 'banana')
タプルはリストと異なり、一度作成するとその要素を変更することができません。ただし、タプル内の要素自体は変更可能な場合があります。
タプルの要素を参照するには、リストと同様にインデックスを使用します。また、スライスを使用して部分的なタプルを取得することもできます。
以下は、タプルの要素を参照する例です。
fruits = ('apple', 'orange', 'banana')
print(fruits[0]) # apple
print(fruits[1]) # orange
print(fruits[2]) # banana
タプル(tuple)の要素数を取得するには、組み込み関数「len()」を使用します。
以下は、タプルの要素数を取得する例です。
fruits = ('apple', 'orange', 'banana')
print(len(fruits)) # 3
この例では、len()関数を使用して、タプル「fruits」の要素数を取得しています。結果は「3」と表示されます。
注意点として、len()関数は、タプルの他にも、リスト、文字列、辞書など、他のPythonのオブジェクトの要素数を取得するために使用できます。
タプルはリストよりも軽量で、不変であるため、読み取り専用のデータや、コード内で変更してはいけない設定値など、変更しないことが予想されるデータを扱う場合に適しています。
dictionary(辞書)
Pythonの辞書(dictionary)は、キーと値をペアにして複数の値を格納するためのデータ型です。リストやタプルとは異なり、インデックスの代わりにキーを使って要素をアクセスすることができます。
作成
中括弧 {} 内にキーと値のペアをコロン : で区切って指定します。例えば、以下のように書くことができます。
my_dict = {"key1": "value1", "key2": "value2", "key3": "value3"}
この場合、 "key1" がキーで "value1" が対応する値です。同様に、"key2" がキーで "value2" が対応する値となっています。キーは文字列や数値など、任意の不変オブジェクトを使用することができます。値には、文字列、数値、リスト、辞書、タプル、真偽値など、Pythonで扱えるほとんどのオブジェクトを使用することができます。
また、空の辞書を作成する場合は、中括弧 {} を使用します。
my_dict = {}
要素の取得
dictionary(辞書)の要素を取得するには、キーを指定して辞書から値を取り出します。以下のように書くことができます。
my_dict = {"key1": "value1", "key2": "value2", "key3": "value3"}
# キー "key1" に対応する値を取得
value = my_dict ["key1"]
print(value) # "value1" が表示される
このようにすると、 value に "key1" に対応する "value1" が代入されます。
ただし、存在しないキーを指定すると KeyError が発生します。これを回避するために、辞書から値を取得する前に、キーが辞書に含まれているかどうかを調べることができます。以下のように、in キーワードを使用して調べることができます。
my_dict = {"key1": "value1", "key2": "value2", "key3": "value3"}
# キー "key4" が辞書に含まれているかどうかを調べる
if "key4" in my_dict:
value = my_dict["key4"]
print(value)
else:
print("key4 not found in my_dict")
この場合、 "key4" は辞書に含まれていないため、 else ブロックが実行されて "key4 not found in my_dict" が表示されます。
ループを利用して全要素を取得することも可能です。
my_dict = {"key1": "value1", "key2": "value2", "key3": "value3"}
# 辞書の全要素をループで取得
for key, value in my_dict.items():
print(key, value)
このようにすると、辞書の全要素が順番に key と value に代入され、 print 関数で表示されます。
items() メソッドは、辞書のキーと値のペアをタプルで返します。それぞれのタプルが for ループ内で key, value という2つの変数に代入されます。
辞書のキーだけを取得したい場合は、 keys() メソッドを使用します。
my_dict = {"key1": "value1", "key2": "value2", "key3": "value3"}
# 辞書の全キーをループで取得
for key in my_dict.keys():
print(key)
辞書の値だけを取得したい場合は、 values() メソッドを使用します。
my_dict = {"key1": "value1", "key2": "value2", "key3": "value3"}
# 辞書の全値をループで取得
for value in my_dict.values():
print(value)
要素数の取得
dictionary(辞書)の要素数を取得するには、 len() 関数を使います。例えば、以下のようになります。
my_dict = {"key1": "value1", "key2": "value2", "key3": "value3"}
# 辞書の要素数を取得
length = len(my_dict)
print(length) # 3 が表示される
このようにすると、辞書の要素数が length に代入され、 print 関数で表示されます。
辞書の要素数は、辞書に含まれるキーと値のペアの数と同じです。空の辞書の場合、要素数は 0 になります。
操作
辞書は、要素の追加、削除、変更などが可能です。
※これらの操作は無理に覚える必要はありません。必要な時に検索すれば大丈夫です。
追加と変更
dictionary(辞書)に要素を追加するには、既存のキーと値のペアを更新するか、新しいキーと値のペアを追加する必要があります。キーと値のペアを辞書に追加するには、以下のように書きます。
my_dict = {"key1": "value1", "key2": "value2"}
# 新しいキーと値のペアを追加する
my_dict["key3"] = "value3"
print(my_dict)
このコードでは、辞書 my_dict に新しいキーと値のペア {"key3": "value3"} を追加しています。 print() 関数を使用して、更新された辞書を出力しています。
もし、キーが辞書に存在しない場合、新しいキーと値のペアが追加されます。もし、キーが辞書に存在する場合、対応する値が更新されます。
削除
一つの要素
Pythonの辞書(dictionary)から要素を削除するには、 delステートメントを使用します。このステートメントを使用すると、指定したキーに対応するキー-値のペアが削除されます。
以下は、辞書から要素を削除する例です。
my_dict = {"key1": "value1", "key2": "value2", "key3": "value3"}
# キー "key2" に対応するキー-値のペアを削除する
del my_dict["key2"]
print(my_dict)
このコードでは、キー key2 に対応するキー-値のペアを削除しています。辞書のキー key2 が存在しない場合は、KeyError が発生します。print() 関数を使用して、更新された辞書を出力しています。
全ての要素
Pythonの辞書(dictionary)からすべての要素を削除するには、clear()メソッドを使用します。このメソッドを呼び出すと、辞書内のすべてのキー-値のペアが削除されます。
以下は、辞書からすべての要素を削除する例です。
my_dict = {"key1": "value1", "key2": "value2", "key3": "value3"}
# すべての要素を削除する
my_dict.clear()
print(my_dict)
このコードでは、clear()メソッドを使用して辞書内のすべてのキー-値のペアを削除しています。print()関数を使用して、空の辞書を出力しています。
Pythonを効率的に習得したい方へ
当サイトの情報を電子書籍用に読み易く整理したコンテンツを250円またはKindle Unlimited (読み放題) で提供中です。
プログラミング未経験の新入社員向けに利用している教材で、プログラミングの基本的な事項を中心に紹介しています。
オブジェクト指向や、Python特有のライブラリを利用した統計解析や機械学習といった事項は初期のプログラミング学習の観点からは難解であり、習得の障害となるために取り扱っておりません。
プログラミングやPythonの未経験者や学習に挫折したことのある方に特におすすめです。
体系的に学びたい方は是非ご検討ください。
本書はChatGPTの提示した内容を修正/調整して作成しています。