本記事の目的
タイトルの通り、本の内容を読むとすぐ忘れるため備忘録。
1章
- C,C++,Javaは静的型付け言語、Perl,Python,Rubyは動的。
- 対話型インタプリタにimport thisと打つと詞が出てくる
2章
| 型名 | 説明 | 例 | ミュータブル |
|---|---|---|---|
int |
整数 | x = 42 |
❌ |
float |
浮動小数点数 | y = 3.14 |
❌ |
str |
文字列 | s = "hello" |
❌ |
bool |
真偽値 | flag = True |
❌ |
list |
可変の配列 | nums = [1, 2, 3] |
✅ |
tuple |
不変の配列 | point = (10, 20) |
❌ |
dict |
キーと値のペア(連想配列) | person = {"name": "Alice", "age": 25} |
✅ |
set |
集合(重複なし) | unique = {1, 2, 3} |
✅ |
frozenset |
不変の集合 | fs = frozenset([1, 2, 3]) |
❌ |
bytes |
バイト列(不変) | b = b"hello" |
❌ |
bytearray |
バイト列(可変) | ba = bytearray(b"hello") |
✅ |
NoneType |
値なしを表す型 | value = None |
❌ |
-
データの値はリテラル値か変数で指定する。
-
変数は名前であって場所ではない。だから動的型付けが可能。
-
isinstance(obj, 型) は、オブジェクト obj が指定した型(またはそのサブクラス)かどうかを判定する関数です。
- 判定結果は True または False。
- 複数の型をタプルで渡して「いずれかの型か」を判定することもできる。
使用例
# 単一の型を判定
isinstance(5, int) # True
isinstance("hello", int) # False
# 複数の型をまとめて判定
isinstance("hello", (str, int)) # True(strに該当)
isinstance(3.14, (str, int)) # False(floatなのでどちらでもない)
isinstance(10, (float, int)) # True(intに該当)
3章
- pythonは自動的にキャスト
4章
- PEP8は、4個のスペースのインデント推奨
- 改行はバックスラッシュ
- セイウチ演算子(代入演算子、:=)を使えば代入とテストワンステップ
5章
- スライスを使えば、部分文字列を取り出せる。先頭オフセットは含まれるが、末尾オフセットは含まれない。
9章 関数
- 関数を呼び出すときに関数に渡す値は実引数(argument)。関数を呼び出すときは、関数内の対応する仮引数(parameter)にコピーされる。
- 関数のdocstringはhelp()関数を呼び出せば表示される。
10章 オブジェクトとクラス
- オブジェクトは、データとコードを含むカスタムデータ構造。Pythonに含まれるものは、数値から関数まで全てオブジェクト。
- 今まで誰も作ったことのない新しいオブジェクトを作るときは、オブジェクトの内容を規定するクラスを作らなければならない。オブジェクトがプラスチックの箱とすると、クラスは鋳型。
- PEP8では常にインスタンスメソッドの第一引数はselfを使うと定められている。
sonota
- redisはデータ構造サーバ
- ネットワーキングのパターンは、一般的にはリクエスト/レスポンス、またのなをクライアント/サーバ。ロードバランサの先にあるWebサーバのように、ワーカーにデータを送るプッシュも一般的。プッシュの逆は、プル。
- RPCはローカルマシンのRPC関数を呼び出す。
- クッキーはステートレスなHTTPのかわりに状態を管理するために使われている方法の一つ。
- WSGIはpythonウェブアプリケーションとウェブサーバ間のAPI
- bottleとflaskはウェブフレームワーク・
- Djangoは、データベースの典型的なCRUD操作(作成、読み出し、更新、削除)のためのWebページを自動作絵制するORM(Object Related Mapping)コードを組み込んでいる。
- そのほかの「フレームワークとして、fastapiは、同期、非同期呼び出しともに処理可能。
途中で眠くなってきたのでその他に気になるところを書いた。聞いたことはあるが意味はわからなかった単語の意味を知ることができよかった。