初心者のためのpython入門

自分がつまづいたところやつまづきやすいところを中心に書いていきます。また、役に立つライブラリの紹介などをしていきます。

入出力~入力編~

前書き 今回は、入力について説明していきます。 input input関数はプログラムの外部からの入力(標準入力)を受け取ることができます。サンプルを見ましょう。 # sample.py name = input("名前を入力してください: ") # " "の文字列が表示される name += "!" …

入出力~出力編~

前書き 今回から入出力について説明していきます。 print printは、今まで使用して来たように値を出力します。サンプルを見ましょう。 # sample.py print('Hello World') print('Hello', 'World', sep=',') # ,で要素を区切りながら出力 print('Hello World'…

matplotlib[2]

前書き 今回もmatplotlibについて説明します。 複数の図を同時に[1] 複数の図の描画です。サンプルを見ましょう。 # multigraph.py import numpy as np import matplotlib.pyplot as plt fig, ax = plt.subplots(2, 3, figsize=(8, 6), sharex=True, sharey=…

matplotlib

前書き 長い期間、更新をサボっていました。申し訳ないです。時間ができたので、更新していきたいと思います。 今回は、matplotlibについて説明します。 matplotlibとは matplotlibとはグラフを描くためのライブラリです。このライブラリをマスターすること…

Numpy[3]

前書き 今回は、Numpyの続きについて説明します。 行列 前回までの説明で使用していた多次元配列は、行列とほとんど同じ演算などが行えますが厳密な意味で行列ではありません。Numpyで明示的に行列を扱いたい場合は、matrixを用います。 np.matrix(list or t…

Numpy[2]

前書き 前回の続きからで、今回もNumpyに関して説明していきます。特に、行列の演算について説明していきます。 配列の操作 ndarray.reshape(): 引数に与えられた次元の配列にする。引数に-1を指定すると1次元配列にすることができる。 >>> import numpy as …

Numpy[1]

前書き あけましておめでとうございます。私用のため更新ができない日々が続いていますが、頑張って更新していきたいと思います。 前回までの内容で、Pythonについての基本的な文法は終わりました。今回からは、より実践的に使っていくために必要なことにつ…

ポリモーフィズム

ポリモーフィズムとは ポリモーフィズムとは、日本語で多態性と言います。多態性とは、クラスの種類に関わらず、異なるオブジェクトに対して同じ操作を適用することです。 ポリモーフィズムの実装 説明を聞いてもわかりにくいと思うので、例を見ましょう。 #…

継承[2]

継承をより詳しく 前回は、継承の基礎を説明しました。継承とは、既存のクラスを指定し、追加や変更したい一部だけを定義することにより新しいクラスを定義する方法でした。今回は、もう少し詳しく、継承におけるメソッドのオーバーライドや多重継承について…

継承[1]

継承 継承とは、既存のクラスを利用して新たなクラスを定義する方法のことです。既に存在するクラスの機能を一部変更したり、追加したい場合にもともとのクラスを自体を変更してまうと、他のプログラムとの互換性などを損なう可能性があります。そのような場…

カプセル化[2]

カプセル化の続き 今回は前回に続き、カプセル化について説明します。今回はプライベートなクラス変数とプライベートなメソッドについて説明します。 クラス変数 クラス変数は、クラスに属する変数です。今まで定義してきた変数は、インスタンスに属するメン…

カプセル化[1]

カプセル化 Pythonはオブジェクト指向のプログラムを自由に開発することができます。 しかし、そのためにインスタンスの属性を書き間違える、呼び出してはいけないはずの関数を呼び出すなどのミスをしてしまうことがあります。このようなミスを未然に防ぐた…

特殊メソッド

特殊メソッド 前回クラスの中で__init__()メソッドを定義しました。__init__()メソッドは、渡された引数を使い、クラス定義から新しく作成されたオブジェクトを初期化する特殊メソッドです。今回は__init__()メソッド以外の特殊メソッドについて説明したいと…

クラス

クラスとオブジェクト オブジェクトが何かしらの形のあるものだとすれば、クラスはその形を作るための鋳型だと考えることができます。この鋳型があることにより、大量のオブジェクトを好きな時に簡単に作れるようになります。 クラスの定義とインスタンスの…

オブジェクト指向

オブジェクト指向学ぶ理由 ここまで説明してきた内容で、ほぼ全てのプログラムを書くことができます。しかし、ここまでの説明の中に出てきたものだけでコードを書いていくと、プログラムが非常に大きくなってくると開発者の頭が追いつかず、上手く書けなくな…

モジュールについてより詳しく

モジュールについて詳しく知ろう 前回モジュールのインポート方法について大まかに説明しました。今回は、もう少し詳しく説明していきます。 モジュールのサーチパス 前回は、同じディレクトリ(フォルダ)に存在するモジュールをインポートしました。Pythonは…

スクリプトの作成とモジュール

スクリプトの作成とモジュール 前回の最後の方のサンプルを除き、その全てをPythonの対話型インタープリタの中で実行してきました。 しかし、インタープリタで実行すると毎回起動するたびに前回のコード(定義した関数やクラスなど)は失われてしまいます。そ…

スコープと名前空間

スコープと名前空間 前回の説明の中で、スコープという言葉が出てきたと思います。今回は、そのスコープと名前空間について説明したいと思います。 スコープ スコープとは簡単に言えば「変数が使用できる範囲」です。これは変数がプログラムのどこからでも好…

関数[2]

引数について 前回は関数の定義や呼び出しについて説明しました。そして、最後に引数について実引数と仮引数の違いを補足として説明しました。今回は、引数の色々な定義の仕方について説明していきます。具体的には、位置引数、キーワード引数、デフォルト引…

関数[1]

関数とは これまでのコードは非常に短いものでした。確認のためやサンプルとして提示する分には問題ありませんが、現実的なコードはこれほど短いということはないでしょう。コードが長くなればなるほど似たような処理が増えてきます。その度に同じような処理…

繰り返し「for」

「for」に入る前に 前回は登場しませんでしたが、今回はイテレータというものが登場します。イテレータとは、イテレーションごとにリストや辞書などから要素を1つずつ取りだして返すものです。イテレーション とは、ループのことです。また、Pythonにおいて…

繰り返し「while」

繰り返し「while」 繰り返しは、条件が成立する限り同じブロックを実行します。下に繰り返しの簡単なフローチャートを載せてあります。 繰り返しの書き方 単純な繰り返し まずはサンプルプログラムを見ましょう。インデントは空白4つです。 >>> time = 10 >>…

分岐

分岐 分岐は、実行する文を条件により変えます。以下に分岐の簡単なフローチャートを載せてあります。 分岐の書き方 単純な分岐 まずはサンプルプログラムを見ましょう。インデントは空白4つです。 >>> feel = 'sleep' >>> if feel == 'sleep': ... print('G…

Pythonの書き方と制御構造

Pythonの書き方 Pythonはインデントによりプログラムの構造を定義しています。インデントとは、行頭の位置を調整することです。それにより、Pythonはプログラム構造を空白により制御することができます。この点は、他の言語と大きな違いです。通常、インデン…

集合

集合について 集合は、辞書からキーだけを残した辞書のようなものです。つまり、集合においてもキーは一意でなければいけません。集合は、要素としてその値が存在するかどうかだけに注目しているときに使います。Pythonの集合は、数学における集合とほぼ同じ…

辞書

辞書について 今回は、辞書について書いていきます。 辞書は、個々の値に一意なキーを与えたリストだと考えることができます。 リストでは、オフセットを使って要素を操作しました。 一方、辞書では順序が管理されていないので、キーを用いて要素を操作しま…

タプル

タプルについて 今回は、タプルについて書いていきます。タプルは、リストとほとんど同じです。しかし、リストとは異なりイミュータブルです。そのため、あるタプルを一度定義した後にそのタプルについて要素の追加や削除、変更を加えることはできません。 …

リスト

リストについて 今回は、Pythonで最もよく使うであろうリストについて説明していきます。リストは、要素を順番に管理したい時に役立ちます。リストはミュータブルなのでオフセットにより要素を簡単に変更できるので、要素の順序や内容がよく変わるものに向い…

評価の仕組みを学ぼう!

評価の仕組み 今回は評価の仕組みを学んでいきましょう。評価とは、Pythonが式に従って計算を処理することを指します。今回は優先順位と結合規則についてです。特に難しいことはなく、数学や算数の演算規則とほとんどは同じになります。 優先順位の原則 式に…

文字列をもう少し詳しく学ぼう!第二弾

文字列の基本操作[2] 前回は文字列の基本操作のうちエスケープシーケンス、連結、繰り返しについて学びました。 今回は文字の抽出とスライスについて勉強していきましょう。 特にスライスは、配列を扱う際にも重要な操作となりますのでしっかりと身につけて…