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)
    • 末尾からループする
  • リスト内法表記 C++ にはないやつ。リスト構築を簡単に記述できる
  • ラムダ式

listのループ処理でラムダ式を渡す

ファイル入力

  • 基本: f = open(‘file_name.txt’)
    • モード: b を付加するとバイナリで読み込む
      ‘r’ ‘w’ ‘rb’ ‘wb’
    • クローズ: f.close()
  • 読み書き関数
    • data = f.read()
    • f.write(data)

ファイル出力

文字列をセパレータで区切って配列にする

文字列から数値へ変換

バイナリデータをファイルから読み込んで数値へ変換する

  • binary から float
  • binary から uint64_t

書式制御してファイル出力

書式制御してバッファへ出力