Path: blob/main/translations/ja/ch-prerequisites/python-and-jupyter-notebooks.ipynb
3858 views
Python 及び Jupyter notebook 入門
Pythonは、コンパイル不要なプログラミング言語です。 プログラムを行単位で実行することができます(これは、Notebookを使用する方法です)。ですので、もしプログラミングについて全く知らないのであれば、Pythonはスタート地点として素晴らしい場所になります。現在のバージョンは Python 3であり、本教科書で使用するものです。
Pythonでコーディングする方法の一つは、Jupyter notebookを使用することです。 これはおそらく、プログラミング、文章、および画像を統合する最良の方法です。 Notebookでは、全てがセルにの中に配置されます。 テキスト・セルとコード・セルは最も一般的なものです。 Jupyter notebookとしてこのセクションを表示している場合、現在読んでいるこのテキストはテキスト・セルに配置されています。 コード・セルは、以下にあります。
コード・セルの内容を実行するには、そのセルをクリックし、 Shift + Enter を押します。 または、左側に小さな矢印がある場合は、それをクリックすることもできます。
もしJupyter notebookとしてこのセクションを表示している場合は、読み進めると同時に各コード・セルを実行しましょう。
上のセルで、二つの変数a と bを定義し、値を与え、その後足し合わせています。このような単純な計算は、Pythonでとても完結に表記されます。
Pythonの変数は色々な形を取ります。以下にいくつかの例を示します。
数のほかに、使用できるデータ構造として list があります。
Pythonのlistは、様々なタイプを混在させることができます。
(Fortranのような言語と違い)Pythonで、listの添字は0から始まります。つまり、上のlistで最初にある42にアクセスするためには、次の様になります。
同じ様なデータ構造として、 tuple があります。
listとtupleの主な違いは、listの要素は変更できることです。
一方、tupleの要素は変更できません。
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-9-42d08f1e5606> in <module>
----> 1 a_tuple[5] = 'apple'
TypeError: 'tuple' object does not support item assignment
また、listの最後に要素を追加できますが、tupleはできません。
他の便利なデータ構造として、dictionary があります。dictionaryは、それぞれユニークな キー でラベルされた 値 の集合を保存できます。
値のデータタイプは任意です。キーは十分単純(integer, float, Boolean, string)であればよいです。dictionaryは、listにはなれませんが、tupleには なりえ ます。
値はキーを使ってアクセスします:
新しいキーと値のペアは、新しいキーに対して新しい値を与えることで追加できます。
数値の範囲をループする場合、構文は次の通りです:
デフォルトで0から始まりますので、range(n)に対して、n-1で終わることに注意してください。
'iterable'オブジェクトについてもループすることができます。listの場合は次の通りです:
dictionaryの場合は以下の通りです:
条件文はif、elif、elseを使うと以下の文法で記述できます:
パッケージは次のような行でインポートします:
パッケージ numpy は数学的なコーディングに重要です。
numpyコマンドの前に、numpy.を記述する必要があります。それで、numpyに定義されているコマンドだと実行系が知ることができるのです。コーディングを節約するため、一般的に次の様に記述します:
このようにすると、短縮名だけが必要となります。ほとんどの人が npを使用しますが、好きなものを使用して構いません。
numpyの全てをそのままインポートする場合は、次の通りです:
この様にすると、コマンドを直接使うことができます。しかし、パッケージ同士で干渉することがあるので、注意して使用する必要があります。
三角関数、線形代数などを実行したい場合は、 numpy を使用できます。 プロットする場合は、 matplotlib を使用してください。 グラフ理論の場合は、 networkx を使用します。 量子コンピューティングの場合は、 qiskit を使用します。 あなたが望むどのようなものに対しても、役立つパッケージがきっとあるでしょう。
どの言語でも知っておくべきことは、関数の作り方です。
do_some_mathsという名前で、Input1 と Input2 という入力を持ち、the_answerという出力を持つ関数は、次の通りです:
これは次の様に使います:
関数にオブジェクトを指定し、関数がそのオブジェクトの状態を変更するメソッドを呼び出すと、その影響は持続します。 つまり、それがあなたのしたいことであれば、何も返す必要はありません。 例えば、listの append メソッドでこれを確かめてみましょう。
乱数は random パッケージを使用すると生成できます。
以上は基本です。いま、あなたに必要なのは検索エンジンであり、Stack Exchangeにおいて聞く価値のあるユーザーを知る知見です。 これで、あなたはPythonで何でも行うことができます。あなたのコードは最も「Pythonic」ではないかもしれませんが、それを気にしているのはPythonistasだけです。