Python3.6.3チュートリアル写経20171113
5.5. 辞書型~6.1.1. モジュールをスクリプトとして実行する をやった。 以下メモ。
- 辞書のキーにできるのは、イミュータブルな型だけ。すなわち、文字列、数値、タプル。
- dict(ペアのリスト) (ペアのリスト->辞書)の逆は my_dict.items() (辞書->ペアのリスト)
- キーのリスト: list(my_dict.keys())
- 値のリスト: list(my_dict.values())
In [1]: fruits = {'apple': 3, 'banana': 2, 'peach': 4} In [2]: for k, v in fruits.items(): ...: print(k, v) ...: apple 3 banana 2 peach 4
シーケンスの生成の仕方
- ソートされたシーケンス: sorted(シーケンス型)
- 逆順にしたシーケンス: reversed(シーケンス型)
- インデックス(0-origin)とのペアにされたシーケンス: enumerate(シーケンス型)
- タプルにされたシーケンス: zip(シーケンス型, シーケンス型, ...)
- 型変換: list(シーケンス型), set(シーケンス型), tuple(シーケンス型)
論理演算子は、not, or, and
- モジュールは、モジュール名.py というファイルに、関数を定義することで作成する
- モジュールのインポートの仕方、「import モジュール名」と「from モジュール名 import シンボル名」
- 前者は、インポート先のシンボルテーブルにモジュール名しか入らないため、モジュール名.関数名 で関数を参照する
- 後者は、インポート先のシンボルテーブルにimportの後ろのシンボルが入るため、シンボルをモジュール名無しで参照できる。「import モジュール名 *」という書き方は可読性を低くするので非推奨
- モジュールの最後にスクリプトとして実行するプログラムが書ける(実行コマンド: $ python fib.py 50)
def fib(n): """Write Fibonacci series up to n.""" a, b = 0, 1 while b < n: print(b, end=' ') a, b = b, a+b print() def fib2(n): """Return Fibonacci series up to n.""" result = [] a, b = 0, 1 while b < n: result.append(b) a, b = b, a+b return result if __name__ == "__main__": import sys fib(int(sys.argv[1]))