プログラミングが初めての人でもわかる、Pythonの講座をyoutubeにて公開しました。このコースでは、Pythonを知るところからはじめて、初心者がつまづきやすい「クラス」やグラフ作成など基本機能を全て理解できるところまで進めます。
基本となる知識をしっかり身につけておくと、これからのプログラミングの勉強が楽になります。動画のタイトルに「丁寧に学ぶ~」という言葉をつけている通り、ひとつずつじっくりと理解していくことを目的として、機能別で解説を行っています。はじめはちょっと退屈かもしれませんが、じっくりゆっくり学んでいきましょう。
本コースでは、Pythonの基本的な知識としてリスト、関数、if文、for文などをはじめとして、最後はクラス(オブジェクト指向)やグラフ作成まで学びます。
後半は少し高度な内容も含むため、自分に必要な部分がわかっていれば飛ばしてもらっても大丈夫です。とにかく挫折しないよう無理せず進めてください。
1.Pythonの特徴
Pythonは比較的新しいプログラミング言語です。現在、プログラミング学習者に最も好まれる言語であり、これは下記の3つの特徴によるものです。
- 文法がシンプル
- ライブラリが多様
- 流行りのAIと相性が良い
特に、初めての学習者にとって良いのは、文法がシンプルであることでしょう。
プログラミングは要領を得るまでが結構大変です。個人的には、最終的に別の言語を学ぶとしても、Pythonから手を付けることをお勧めします。
また、ライブラリと呼ばれる既存のプログラムの種類が多く、使いやすいのもメリットです。これにより、私たちがAIについて完全に理解していなくても、大企業が作成したライブラリを使ってAIによる画像認識などができるようになります。
つまり、プログラミングとは全てのコードを自分で書く必要はありません。読んで理解できるようになれば、非常に多くのことができるようになります。つまり、はじめが一番大変なので、ぜひゆっくり着実に理解していきましょう。
この動画では、プログラミング環境の構築についても説明しているので、第二回を見る前に必ずご覧ください。
2.画面出力・コメント
プログラミングを始めるにあたって、最も簡単な画面出力から始めます。
画面出力とは、出力画面に文字を表示することです。ここでは、print関数という機能を使うことで、文字を出力することができることを学びます。
画面出力の際に、文字や数字以外にもタブや改行などの特殊文字を使いたくなる場合があります。そんな時は、エスケープ文字と呼ばれる¥(円マーク)記号を使います。
プログラミング特有の処理で覚えにくいですが、こういった機能があることを把握できればそれで充分です。
複雑なプログラムを書くと、それを見た抱ければ理解できなくなってしまうため、コメントを書きます。コメントは行の頭に#(シャープ)を付ければ、その行は実行されず無視してくれます。
また、jupyterNotebookにはMarkdownで説明書きを書ける機能があります。これを使えばタイトルやリストなども書けるため、色々詳細説明を書くのに役立ちます。
3.型・変数
変数は数学でいうxやyと同じようなものです。何でも中に入れられる箱のイメージです。
ただ、数学とプログラミングで大きく違うのは、変数に型があることです。
型とは、変数が整数か小数、もしくは文字列であるかなどを判別します。つまり、型を付けることで、1という数字か1という文字かを判別して保存します。
プログラミングは明示的であることを好みます。pythonでは型を書かなくても型を自動で設定してくれますが、バグ防止のためにも型を明示しておくのが好ましいです。
よく使う型は下記のようなものがあります。
- 整数型
- 小数型
- 文字列型
- ブール型
ブール型とは、TrueとFalseのどちらかが入る型です。今後、条件分岐などでこれを使うことになります。
4.演算子
演算子とは、足し算、引き算、かけ算、割り算などを含む計算の記号のことです。
プログラミングは計算が得意です。大量の計算を行うことで、物理シミュレーションやAI分析などを行います。
ここでは下記のような演算子について学びます。
- 足し算
- 引き算
- かけ算
- 割り算(余り)
- べき乗
上記に加えて、mathライブラリを使用することでさらに高度な計算もできます。
mathライブラリとは、数学に関する機能を含んだライブラリです。このライブラリを参照することで、様々な高度な数学機能を手軽に使うことができます。
ここでは、アークサインや円周率などを含む機能について説明します。
5.リスト
リストを使うことで、まとめて値を管理することができます。
例えばクラスのメンバーの名前データが100個あったとして、別々で管理するのは大変です。そんなときは、リストを使うことで、一つの変数により100個のデータをまとめて管理できます。
リストの注意点としては、ゼロから採番が始まることです。これはプログラミングでは一般的ですが、数値は1ではなくゼロから数え始めます。
ゼロから数えることで途中から数える際などに色々と便利になるのですが、それはこのコースの後半で実感できるでしょう。
リストには、一部だけ抽出するスライスという機能や、長さを取得したりある値を探したりといった機能が付いています。
これらはまとめたデータ内を管理するときに便利ですので、ぜひ覚えておきましょう。特に、大規模なデータを管理する場合は必須の機能となります。
6.if文
if文を使うことで、条件分岐を表すことができます。
例えば、ゲームではいといいえを選ぶような場合は、if文に対して条件を与えて、各選択肢に応じた返答を与えてやることで表すことができます。
if文の条件分岐で使用するのが、ブール型です。ブール型はTrueとFalseの2択しか入らない型であるため、条件分岐に最適です。
ここではブール型について振り返った後に、if文の機能について理解していきましょう。
if文は、else ifを使うことでさらに階層構造ができるため、複雑な選択肢を表すことができます。また、and や or を使うことで、条件も複雑化できます。
これらを使うことで、例えばユーザーの属性に応じて返答を変えるようなプログラムも簡単に作成できます。
7.for文
for文はループ処理をまとめることができる機能です。
例えば、100個のデータに対して同じ処理をしないといけない場合、プログラムに一つずつ処理を書いていしまうと煩雑になります。
そこで、for文を使うことで、同じ処理を全部のデータに対して行うといった処理ができます。これによりたった数行で多くのデータに対して同じ処理を行うことができます。
for文では、繰り返し回数を指定して同じ処理を指定回数ループさせます。また、breakやcontinueを使うことで、データ毎に異なる処理も行えます。
ループだけの機能であれば、while文もあります。ただ、for文のほうが一般的であるのとfor文でwhile文の記述もできるため、while文を使う機会は少ないです。
8.関数
関数とは入力を与えると、何か処理をして返してくれるもののことを言います。
今までもprintなどで関数を使ってきましたが、これらは既存の機能として存在する関数です。
ここでは、自分で関数を作る方法について説明します。
関数を作る場合は、引数、処理、返り値を設定します。そして、作成できた関数は別途関数名を記述して呼び出すことで実行できます。
プログラムを関数にまとめることで、非常に見やすいコードができます。さらに、関数化することで、機能の再利用が可能になります。
今まで使用してきたprintやmathも関数です。機能をまとめることで、複雑な中身を理解せずに利用できるのも関数の大きなメリットです。
非常によく使う機能ですので、しっかりと理解しておきましょう。
9.クラス
クラスは少し高度な機能です。
プログラミングは従来関数型プログラミングと呼ばれる関数を主とした書き方がされてきましたが、現在はオブジェクト指向プログラミングと呼ばれるクラスを使用した書き方が主流となっています。
まずはオブジェクト指向プログラミングについて理解しましょう。
オブジェクト指向プログラミングとは簡単に言うと、基本の型を作ってそれにカスタマイズすることで複雑な機能を備える手法です。
プログラミングをしていると、同じような処理が出てくることがよくあります。これをオブジェクト指向プログラミングにより基本とカスタマイズを分離させることで、極力プログラムの重複を避けることができるようになります。
クラスを使うと、関数と変数をまとめて管理することができます。少し複雑ですが、他人のコードを理解するうえで役に立つので大枠だけでも理解しておくとよいでしょう。
10.コンストラクタ・デストラクタ
コンストラクタとデストラクタは、クラスの機能の一つです。
コンストラクタはクラスからインスタンスを作成した際に自動で実行される機能です。逆に、デストラクタはインスタンスを削除した際に自動で実行される機能です。
これらは便利な機能なので、クラスと一緒に理解しておくと楽になります。
11.継承
継承は、既に作成したクラスに対して、さらにカスタマイズを加えたクラスを作成する機能です。
継承を使うことで、様々な用途に応じたクラスを作成できます。
継承の機能をうまく使うためには、基本クラスをシンプルなものにするのが重要です。基本クラスには最低限の機能だけを備えておき、それをカスタマイズした継承クラスからインスタンスを作成することで、重複の少ないコードを書くことができます。
12.配列
配列はリストと似たような機能で、データをまとめて管理することができます。
配列を使用するには、numpyというライブラリが必要です。配列とリストの違いは下記のとおりです。
- numpyライブラリのimportが必要
- 型を統一する必要がある
- 計算に特化しており、メモリが最適化されている
リストでは様々な型のデータをまとめて管理することができましたが、配列では一種類の型のデータのみを管理します。例えば、整数型だけの配列や小数だけの配列などです。
この制限により、配列は様々な便利な機能を備えることができます。例えば、配列同士の計算や大規模数値配列の初期化などができます。
また、次回説明しますが、配列はグラフ作成においても非常に便利です。数値計算をする人はリストよりも配列をよく使うことになるので、ぜひ理解しておきましょう。
13.グラフ
Pythonの隠れたメリットの一つに可視化が得意であることがあげられます。
これはmatplotlibというグラフ描画のライブラリが超優秀であるために、他の言語に比べてデータの可視化がすごく簡単となっています。
実際に私も可視化したいデータがある場合は、まずはPythonでプログラムを書いて確認をしたりするほどに、Pythonは可視化が非常に楽です。
ここではそんな強力な可視化ライブラリであるmatplotlibについて説明します。
matplotlibは、棒グラフ、折れ線グラフ、2次元コンターなど様々なグラフ機能を兼ね備えたライブラリです。例えば折れ線グラフの場合は、配列を2つ以上与えてやることで、グラフを描画することができます。
他にも細かい機能はありますが、基本としてはデータの可視化だけ覚えておけばよいでしょう。軸タイトルや軸ラベルなどは適宜調べるくらいで、わざわざ覚えておく必要はありません。
おわりに
本シリーズでは、はじめてPythonを学ぶ人のための解説動画となります。ここまで学ぶことで、Pythonのメリットやプログラミングの基本事項を理解することができたでしょう。
入門コースでは以下の内容について学びました。基本からライブラリの活用まで基本事項は一通りやりました。
また、少し高度なクラスという機能についても触れており、これから新しいことを始めるうえで基礎は固められたでしょう。
ただ、Pythonの機能はこれだけではありません。まだまだPythonには多様な機能があるため、もしまだ学び足りないという場合は下記のPython初級も学んでみてください。
下記では、行列計算という特殊な機能について解説しています。数値シミュレーションなどで役に立つので、ぜひ関連する方は学んでおくとよいでしょう。