Python – チートシート
C++との差分で覚える基本
- 型宣言は無い。bool は True False
- バイト列を扱う場合は x = b’0xdeadbeaf’ と記述する
- 文字列は ”
- f-string : f’hoge{x}’ 文字列内に {} で変数や数式を埋め込める
- リスト : 可変長配列を扱う型、要素の型を問わず格納できる
- 初期化 : x = [0, 3.14, ‘Hello’] x=[] # 空の要素
- 要素の追加 : x.append(1024)
- 要素参照 : x[0] x[-1] インデックスに負数を指定すると末尾からアクセスする -1 が末尾
- 要素の検索
- タプル : 固定長配列
- 初期化 : x = (0, 3.14, ‘Hello’) または x = 0, 3.14, ‘Hello’
- セット: 重複を取り除いて複数の要素を扱う
- 初期化: x = {0, 0, 1, 1} # {0, 1} を保持する
- set() : リスト、タプルをセットに変換できる(重複を取り除ける)
x = set([1, 1, 2, 3, 4, 4]) # {1, 2, 3, 4}
- アンパック代入 : リストやタプルを個別の変数に代入できる。
- 要素数は同じである必要がある
x = [0, 1.24, ‘Hello’]
a, b, c = x - 異なる要素数の場合は代入先に * を付けるとそれがリストになる
x = [0, 1.24, ‘Hello’, 0]
a, b, *c = x # c がリストになり、c = [‘Hello’, 0] となる
- 要素数は同じである必要がある
- 辞書 dict : コロンで区切って key-value pair を定義できる
x = [‘name’ : ‘Taro’, ‘age’ : 32]
print(x[‘name’]) # Taro
print(x[‘age’]) # 32 - 未指定の型 : x = None None を代入すると後で型が決まると言う意味になる。後で型が決まる場合に None を使用する。
- 定数を表す変数は「大文字」で書く。const が存在しないのでコーディング規約的なもの。
PI = 3.14 - 関数 :
- 定義: 処理はインデントして記述する
def hoge(a, b):
print(a + b) - 何もしない関数の定義:処理に pass と書く
def hoge():
pass - デフォルト引数は C++ と同じで一番最後にしか記述できない : def hoge(a, b, c = 3)
- 戻り値:関数の戻り値がある場合は return を使う
def hoge(x, y):
return x + y
x = hoge(1, 3) # x = 4
※戻り値として返す型は複数あってもよいのが C++ と違う点
※Python では return せずとも必ず戻り値がありそれは None が返っている - 型ヒント:定義時に型を指定できる。指定しないと何でも渡せるので C++ 同様に型指定すべき。
def hoge(x : int, y : int) -> int: - キーワード引数 : 呼び出し時に変数名を指定すれば十番を入れ替えてもよい
def hoge(a, b):
print(f’Hello {a}, {b}’)
hoge(b=3, a=1)
- 定義: 処理はインデントして記述する
- 条件文
- a
- ループ文
- eg.
vars = [‘a’, ‘b’]
for var in vars:
print(var) - 末尾からループする
- eg.
- リスト内法表記 C++ にはないやつ。リスト構築を簡単に記述できる
- ラムダ式
listのループ処理でラムダ式を渡す
ファイル入力
- 基本: f = open(‘file_name.txt’)
- モード: b を付加するとバイナリで読み込む
‘r’ ‘w’ ‘rb’ ‘wb’ - クローズ: f.close()
- モード: b を付加するとバイナリで読み込む
- 読み書き関数
- data = f.read()
- f.write(data)
ファイル出力
文字列をセパレータで区切って配列にする
文字列から数値へ変換
バイナリデータをファイルから読み込んで数値へ変換する
- binary から float
- binary から uint64_t
書式制御してファイル出力
書式制御してバッファへ出力
コメントを残す