こんにちは、kurumi-bioです。
ChatGPTと会話しながらPythonを学んでいきます。
環境
前回の振り返り
前回は、Pythonの変数について、 変数名の命名規則、変数の型、変数の再代入などを学びました。 Pythonは変数の型が動的に変わってしまいますが、 型アノテーションで型を明示すると、静的型チェックツールでチェックが可能なことがわかりました。
学習内容
今回は、Pythonの変数の型について、基本型の生成と特徴を学習します。 リスト型、タプル型、セット型、辞書型の操作は次回以降で学習します。
Pythonの変数型
Pythonの変数型をChartGPTに聞いてみました。
前回、型アノテーションで宣言できる型を確認したときは、基本型、モジュール型、ユーザー定義型がありましたが、基本型のみの回答となりました。
◆テストコード
i=10 f=3.14 c=3+2j s="Hello" b=True li=["apple","orange","banana"] tu=("apple","orange","banana") se={"apple","orange","banana"} di={"name":"Alice","age":25,"gender":"gemale"} print("i=", type(i)) print("f=", type(f)) print("c=", type(c)) print("s=", type(s)) print("b=", type(b)) print("li=", type(li)) print("tu=", type(tu)) print("se=", type(se)) print("di=", type(di))
◆実行結果
バイト型とバイト配列型
基本型にはバイト型とバイト配列型があったはずなので、ChatGPTに確認してみました。
◆テストコード
my_bytes=b'\x48\x65\x6c\x6c\x6f' print(type(my_bytes)) print(my_bytes) my_bytearray = bytearray(b'\x48\x65\x6c\x6c\x6f') print(type(my_bytearray)) print(my_bytearray)
◆実行結果
◆テストコード
my_bytes=b'hello' print(type(my_bytes)) print(my_bytes) my_bytes[0]=72 print(my_bytes)
◆実行結果
◆テストコード
my_bytearray = bytearray(b'hello') print(type(my_bytearray)) print(my_bytearray) my_bytearray[0]=72 print(my_bytearray)
◆実行結果
リスト型
◆テストコード
# リストの作成 my_list = [1, 2, 3, 4, 5] # リストの要素を取得 print(my_list[0]) # 1 print(my_list[3]) # 4 # リストの要素を変更 my_list[2] = 'three' print(my_list) # [1, 2, 'three', 4, 5] # リストに要素を追加 my_list.append(6) print(my_list) # [1, 2, 'three', 4, 5, 6] # リストから要素を削除 my_list.remove('three') print(my_list) # [1, 2, 4, 5, 6]
◆実行結果
タプル型
◆テストコード
# タプルの定義 my_tuple = (1, 2, 3, 'four', 'five') # タプルの要素にアクセス print("my_tuple[0]=", my_tuple[0]) # 1 print("my_tuple[3]=", my_tuple[3]) # 'four' # タプルの要素の代入 x, y, z = (1, 2, 3) print("x=", x) # 1 print("y=", y) # 2 print("z=", z) # 3 my_tuple2 = (1, 'two', 3) x2, y2, z2 = my_tuple2 print("x2=", x2) print("y2=", y2) print("z2=", z2)
◆実行結果
セット型
◆テストコード
# セットの定義 my_set = {1, 2, 3, 3, 4, 5, 5, 5} # セットの要素の列挙 for i in my_set: print(i)
◆実行結果
辞書型
◆テストコード
# 空の辞書を作成 empty_dict = {} # キーと値のペアを持つ辞書を作成 my_dict = {'apple': 1, 'banana': 2, 'orange': 3} # 要素の追加 my_dict['grape'] = 4 # 要素の取得 print(my_dict['banana']) # 2 # キーの一覧を取得 print(my_dict.keys()) # dict_keys(['apple', 'banana', 'orange', 'grape']) # 値の一覧を取得 print(my_dict.values()) # dict_values([1, 2, 3, 4]) # キーと値のペアを取得 print(my_dict.items()) # dict_items([('apple', 1), ('banana', 2), ('orange', 3), ('grape', 4)]) # キーの存在確認 print('orange' in my_dict) # True print('peach' in my_dict) # False # 要素の削除 del my_dict['orange'] print(my_dict) # {'apple': 1, 'banana': 2, 'grape': 4}
◆実行結果
相違点
リスト型、タプル型、セット型は、配列オブジェクトですが、 下記の点が異なります。
型名 | type | 記載 | 位置でアクセス | 値の変更 | 値の重複 |
---|---|---|---|---|---|
リスト型 | list | [] | 〇 | 〇 | 〇 |
タプル型 | tuple | () | 〇 | × | 〇 |
セット型 | set | {} | × | 〇 | × |
辞書型 | dict | {} | × | 〇 | × |
残課題
- リスト型、タプル型、セット型、辞書型の操作
- モジュール型とユーザー定義型
- open関数の構文と使い方
- 構文中の":"と";"の意味
最後までご覧いただきありがとうございます