Python

Pythonは豊富な標準ライブラリが付属していることから“Batteries Included”と呼ばれている 1

Style Guide

Docstring

def func(arg1, arg2):
    """関数の概要

    関数の詳細説明

    :param arg1: arg1の説明
    :type arg1: arg1の型
    :param arg2: arg2の説明
    :type arg2: arg2の型
    :return: 返り値の説明
    :rtype: 返り値の型
    """
    def func(arg1, arg2):
"""関数の概要

関数の詳細説明

Parameters
----------
arg1: arg1の型
    arg1の説明
arg2: arg2の型
      arg2の説明

Returns
-------
返り値の型
    返り値の説明
"""
    def func(arg1, arg2):
"""関数の概要

関数の詳細説明

Args:
    arg1 (arg1の型): arg1の説明
    arg2 (arg2の型): arg2の説明

Returns:
    返り値の型: 返り値の説明
"""

Code Formatter

テスト

JupyterLab

Docker

JupyterLabをDockerで使用する方法.

docker run --rm -p 8888:8888 -e JUPYTER_ENABLE_LAB=yes -v `pwd`:/home/jovyan/work --name jupyter jupyter/datascience-notebook

Sphinx

Docker

SphinxをDockerで使用する方法.

docker run --rm -v `pwd`:/docs sphinxdoc/sphinx --name sphinx make html

プログラムの高速化

  • リスト内包表記 or mapを使う 2 6

  • list()ではなく[]を使う 4

  • tupleを使う 5 6

  • f-stringを使う 3

  • whileではなくforを使う 6

  • 組み込み関数を使う

  • numpyの関数を使って演算する

Footnotes

1

https://www.python.org/dev/peps/pep-0206/#id3

2

https://stackoverflow.com/a/6407222

3

https://www.scivision.dev/python-f-string-speed/

4

https://stackoverflow.com/questions/30216000/why-is-faster-than-list

5

https://stackoverflow.com/a/48936610

6(1,2,3)

https://qiita.com/shaka/items/f180ae4dc945dc7b9066