- 作者: 鈴木たかのり,清原弘貴,嶋田健志,池内孝啓,関根裕紀
- 出版社/メーカー: 技術評論社
- 発売日: 2017/09/09
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
一覧はこちら
第1章 Pythonの動向
・Pythonの設計思想……バッテリー付属(必要な機能が標準ライブラリとして揃っている)、シンプルで読みやすいコード
・Python2系とPython3系には互換性がない
Python2系で書かれている既存のコードを改修する場合と、Python2系でしか動かないパッケージを使用する場合はPython2でいい
Python2のサポートは2020年で終了するため、それ以外の場合はPython3系を使う
第2章 最低限知っておきたいPython言語の基本
#関数の定義 def func_name (arg): print(arg) func_name("Hello World") #Hello World #キーワード引数 def print_func (msg="Keyword"): print(msg) print_func() #Keyword print_func("Hello World") #Hello World #for文 for i in range(1, 101): #1から100までループ print(i) #1, 2, ... 100 #三重クォート print("""Hello World""") #Hello # #World #文字列の繰り返し print("msg" * 5) #msgmsgmsgmsgmsg #文字列からの取り出し str = "python" print(str[1]) #y print(str[2:5]) #tho print(str[-1]) #n #文字列の有無の判定 print("t" in "python") #True print("k" in "python") #False #リスト内包表記 list = [str(i) for i in range(1, 11)] print(list) #['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'] #with文 with open("test.txt", encoding="utf-8") as f: test_str = f.read() #インポート import inpy #モジュール全体 from inpy import function #特定の関数のみ import long_long_long_module_name as alies #asで別名をつけることができる
・Pythonではブロック構造をインデントで表す
・キーワード引数……関数の引数にデフォルト値を指定できる
関数呼び出し時に引数を指定すればその値が、指定しなければデフォルト値が引数として使用される
・関数呼び出し時に引数名を指定すると、引数を指定する順序を無視できる
・for文はシーケンス型のオブジェクトを指定する
・三重クォートを使うことで、改行を含む文字列を一度に定義できる
・インデックスで負の数を指定すると、後ろから数えてくれる
・リスト内包表記……for文による繰り返し処理を、リストの定義時に使用できる
・タプル……イミュータブルなリスト
()を使用して定義する
・辞書(dict)……他言語で言うマップ
波括弧{}を使用して定義する
・集合(set)……順序を持たないリスト
波括弧で定義する
・ファイルをpythonで操作するとき、with文を使用するとファイルのオープンとクローズを自動でやってくれる
・インポートをすることで、別ファイル(モジュール)や別ファイルの特定の関数を使用できる
・正規表現を使用するためには正規表現モジュール(re)を使用する必要がある
第3章 開発環境とチーム開発
#カレントディレクトリにvenv環境を作成 python -m venv envname #有効化 envname\Scripts\activate.bat #無効化 deactivate #パッケージのインストール (envname) pip install package_name
#unittestモジュール #spam.pyに関数を作成 def spam(): #spamを返却する return "ham" #test.pyにテストコードを作成 import unittest class Test(unittest.TestCase): #TestCaseクラスを継承するクラスを作成 def test_spam(self): #test_で始まる関数を定義 import spam value = spam.spam() self.assertEqual("spam", value)
#unittestで単体テスト python -m unittest discover #coverageで網羅率の測定 coverage run -m unittest discover #coverageからunittestを実行 coverage report #カバレージの測定結果を表示 #flake8で静的コード解析 flake8 python.py
・venv……プロジェクトごとにインストールするパッケージを切り替えることができる
・docstring……ファイル・クラス・関数などの説明
定義の次の行に三重クォートのコメントで記述する
・doctest……docstringに動作確認のコードを記述できる
・unittestモジュール……ユニットテストを記述する標準ライブラリ
・coverage……コードカバレージ(網羅率)を測定するパッケージ
・Sphinx……ドキュメントを生成してくれる