Python入門!初心者がインストールから学習開始するまでの3ステップ

  • このエントリーをはてなブックマークに追加

Pythonは信号処理や画像処理、機械学習に至る様々な科学技術計算を得意とするプログラミング言語です。ここではプログラミング経験の無い方を対象に、Pythonのインストールから開発環境構築、簡単なプログラミングが出来るようになるまでを3ステップで紹介します。

こんにちは。wat(@watlablog)です。
僕もこの記事を書く半年前は超初心者でした!ここでは当WATLABブログの記事をまとめながら、Pythonの始め方をわかりやすく解説していきます

目次から好きな場所へジャンプすることが出来ますので、是非必要と感じる所から読み始めて下さい!

はじめに

誰に向けた記事か?

この記事はこれまでプログラミングをした事が無く、Pythonを始めてみたい超初心者に向けて書いています。

PCは持っていてプログラミングに興味あり、そんな中でPythonを選択したのであれば、僕が全力で応援します!

Pythonでプログラミングするにあたり、初めは何から手を付けて良いかすらわからない状態だと思います。

Googleで「Python 入門」と検索すると様々な指南サイトがヒットします。人によってPCの環境ややりたいことが違うので、万人に適切なページはありません

まずはこの「はじめに」の章を読んでやりたい事とマッチするか、次にSTEP1に記載の環境がご自身の環境とマッチしているかどうかを確認して下さい。

マッチしていたら僕と一緒にPythonを勉強しましょう!
既にTwitter(@watlablog)でメッセージを頂くことも増えてきましたので、不明点は遠慮せずお問い合わせ下さい!

この記事はPythonという自転車に乗り始めた読者を僕が補助するイメージです。

自転車の補助のイメージ図

筆者はどんな人か?

どんな人がこの記事を書きこのブログを作っているかを知ることは、問い合わせ時や記事の信頼性に関係するので意外と大事かも知れません。そのため当ブログ管理人である筆者の情報をさらりと載せておきます。

この記事の筆者は「院卒(修士)の工学系エンジニア」です。

ある企業に所属し、日々振動や騒音を始めとする実験やシミュレーション業務を行っています。

しかし普段は商用ソフトウェアを使って業務をしているので、正直中身はよくわかっていませんでした。

エンジニアとしてわからないものをマニュアルを頼りに使っているのは非常に気持ち悪い…自分で色々プログラムが組めるようになれば検証も本質をつけるだろうと思いました。

中身の理屈を知りたい!簡単なモノなら自分でプログラムが組めるようになって理解を深めたい!

ということで、科学技術計算が得意なPythonに目を付けて4月から学習を開始しました。

実は半年前(2019年4月)からPythonを始めたばかりの人間がこの記事を書いています

僕の事を「Pythonのことなら何でもわかるプロフェッショナル」と期待していたら大変申し訳ないのですが、苦労しながらインストールから始めた僕が、初心者目線でこのブログの記事を書いていますので、初心者の気持ちはわかっているつもりです!

なぜPythonをやるか?

冒頭までに何度か書いていますが、Pythonは科学技術系の計算がとても得意です。

プログラミング言語の得意不得意は分野によって分かれます。

例えば、Web系のサービスを開発したいならPHPやRubyが有名ですし、企業のサーバー系プログラムであればC#とかがよく使われるとのことです。

ともかく、もしあなたが科学技術計算をしたいのであれば、Pythonは強力な味方になってくれるでしょう。

ここでいう科学技術計算とは、機械学習数値計算信号処理画像処理のことです。

Pythonには科学技術系の様々なサードパティ製のライブラリが充実していることも特徴であるため、これらの分野を効率よく進めるためにPythonが多くの人に使われています。

このブログで扱っているPythonプログラムの紹介

Pythonのインストールや簡単なプログラムを学習する前に、一体どんなことができるのかを見てみましょう。

信号処理:FFT(高速フーリエ変換)

当WATLABブログでは信号処理系のプログラムが多数あります。中でも良く読まれているのはやはりこのFFT(高速フーリエ変換)に関する一連の記事です。主にNumPyやSciPyというライブラリを使っています。

PythonでFFT!SciPyのFFTまとめ

FFT

時刻歴波形を周波数領域に変換するこの計算をすることで、周期的な成分を抽出することができます。今ではあらゆる分野で活用されているので、技術者としてはサクッとFFTくらいは出来るようにしておきたいものですね。

画像処理:射影変換

こちらは画像処理の中でも「射影変換」と呼ばれる計算を応用したものです。OpenCVというライブラリを使っています。

Python/OpenCVで2D画像を3Dのように見せる方法

射影変換

元は平面的な画像だったものをやや斜め上から見ているような画像変形をさせ、さらに回転する効果を付けるプログラムです。

このプログラム自体には何の意味もありませんが、Pythonであれば画像処理も楽々出来てしまいます。

工学:固有値解析

続いて、工学分野の事例です。固有値解析という振動の検討では基本中の基本ですね。これはNumPyというライブラリだけで出来てしまいます。

Pythonで多自由度系の固有値解析!固有振動数とモードを計算

固有値解析

Pythonを使えば、ちょっとした振動の検討くらいはわざわざ高価な商用コードを使わなくても良さそうですね。

Web:Webスクレイピング

最後はWebスクレイピングのプログラムです。これは主にSeleniumというライブラリを使って実現することができます。PythonでGoogle Chromeを自動操作してWeb上の情報を自動収集する様はまるでハッカーのようでカッコいいですね。

PythonでGoogle検索タイトルとURL一覧を抽出してみた

機械学習のためのビッグデータにするもよし、日々の業務の自動化に使うもよしというプログラムです。

Pythonで実現可能なプログラム例をいくつか紹介しましたが、当ブログにはPython関係で100以上の記事があります
これから学習を始めるためのモチベーションアップになると思いますので、是非ページ上のカテゴリメニューから色々見てみて下さい!

前置きは長くなりましたが、このページでは、①Pyhotn本体のインストールから②最低限の基本プログラミングを身に着け、後は③自分で調べられるようになることを目標に説明を進めて行きます。すぐに覚えなくても良い細かいコードは全て削ぎ落してまとめました。

僕がPythonを触り始めて半年間で実際にうまくいった方法をまとめていますので、環境がマッチしていれば同じようにうまくいくはずです!
それでは早速STEP1から行ってみましょう!

STEP1:Pythonをインストールしてプログラムを実行できるようにする

PC環境

これから当ブログの記事を参考に作業を進める前に、以下に僕のPC環境を載せておきます。おそらくWindowsであればこのブログ内の全ての記事は問題無く参照可能と思われます。

OSWindows10 Home
ビット数64bit
メモリ8GB
クロック周波数1.6GHz

メモリとかクロックを見ると、「え、こんな普通のノートPCレベルのスペックで良いの?」と思うかも知れませんが、一応今の所は特に問題を感じません。

このブログで紹介している記事内のプログラムはこのPC環境で構築し動作させています。
Python入門時点でワークステーションを買おうか悩んでいる方はちょっと考えなおして下さい!

Python3をインストールする

Pythonインストールイメージ

Pythonは現時点で最新版であるPython3を入れましょう。Pythonには2系という古いバージョンも周辺ライブラリの対応状況から世間ではまだ現役で使われていますが、2020年1月にはPython2のサポートが切れます。特別な理由が無い場合は最新版を入れておいた方が良いでしょう。

そして、Pythonには本体を様々なライブラリとまとめてインストール出来るAnacondaやそれより少し軽量なminicondaなるパッケージが存在します。

確かにこの方法でPythonを入れれば最初は楽かも知れませんが、意外と無知のまま使い続けると障害に当たる可能性もあるようです。

僕はAnacondaを使わないでPythonをインストール道を選択し、今の所その道で何の問題も発生していません。

Anacondaを使わないPythonのインストール方法は以下の記事後半に図付き手順解説がありますので、まずはこの方法でPython本体のインストールを完了してみて下さい!

Pythonインストール方法とAnacondaを使わない3つの理由

まずは上の記事リンクを参考に、Python本体をインストールしてみよう!

コマンドプロンプトでプログラムを実行してみる

Hello World!

Python本体がインストールできたら、次は実際にプログラムを実行させてみましょう

Pythonはコマンドプロンプトを使って対話形式にプログラムを実行する方法もありますが、やはりプログラムのソースコードをファイルとして作成して実行する方法の方が標準的です。

以下の記事では世界一簡単なプログラムである「Hello World!」プログラムを使って、Pythonのプログラミングから実行までの一連の流れを体験することができます。

基本!PythonのHello Worldをコマンドで実行する方法

コマンドプロンプトでプログラムを実行する方法は最も基本的な実行方法です。まずは上記記事のように画面上に「Hello World!」と表示させてみて下さい!

「Hello World!」と表示されましたか?
出来た人は次へ!出来なかった人はもう一度インストール環境やコードを見直してみよう!
どうしてもわからない場合は僕(@watlablog)に聞いてみて下さい!

統合開発環境(IDE)をインストールする

IDEのイメージ

先ほどはコマンドプロンプトを使ったコードの実行方法を習得しました。これが基本ではあるのですが、プログラム開発は基本「統合開発環境(IDE)」と呼ばれるソフトウェアを使って行います。

IDEを使うとデバッグやファイル管理が非常に楽になります。出来るだけ早い段階からIDEに慣れておくと良いと思います。

Pythonが使えるIDEは様々な種類がありますが、僕がオススメするのは断然「PyCharm」です。

PyCharmをオススメする理由やインストール方法の図解手順は以下の記事を参照して下さい

Pythonの統合開発環境(IDE)はPyCharmで良い?

統合開発環境(IDE)の基本的な使い方をマスターする

PyCharmのインストールは出来ましたか

インストールが終了したら、今度はPyCharmを使ってプログラムを実行する方法を習得しましょう。

やることは先ほどのコマンドプロンプトでプログラムを実行する方法と同じです。

PyCharmの場合のファイル作成からプログラム実行までの方法は以下の記事に記載しました。まずはこの方法で「Hello World!」を表示させればクリアです!

基本!PyCharmでPythonプログラムを実行する方法

これでSTEP1は終了です!この内容でPython環境構築とプログラムの作成・実行方法が身に付いたはずです。
次は最低限のプログラミングに挑戦しましょう!

STEP2:プログラミングの基本を身に着ける

Python本体のインストールとプログラム実行までの流れを理解したら、次はSTEP2として最低限のプログラミングスキルを身に付けましょう。

よくPython入門として紹介されている書籍や学習サービスを利用する方の中には、まずそれらの教材をマスターしてから作りたいプログラムに着手するという人が多いです。

しかし、僕の考えは「文法は作っている最中に覚えれば良いじゃないか!まずは作ろう!」という所にあるので、本当に必要最低限を覚えてからスタートすれば良いと思っています。

その中でピックアップしたのは、「データ型」、「条件分岐処理」、「繰り返し処理」、「関数」、「外部ライブラリ利用方法」の5つです。

これらの概要だけ覚えておけば、あとはGoogle検索を活用して細かい仕様を確認しつつプログラミングしていくことが出来ます。

僕はこのやり方でFFTを始めとする信号処理や各種画像・動画処理プログラムを半年で100個くらい作ってきました。初めから全てをマスターしてから動くより、徐々に実践の中で理解しながら進めた方が理解の深さもより深くなると思いますので、まずはこの5つの概要を把握しましょう!

但し、僕も60記事くらい書いた時に「Python特化型学習サービスPyQ(パイキュー)」に登録して学習を開始しました。ある程度プログラミングに慣れた頃にこのような学習サービスを利用するのはかなりオススメです!

PyQはクエスト形式でスキルを身に着けることができます。興味のある方は以下に概要がわかるような記事を書きましたので参考にして下さい。

PyQでPython学習!実際に登録してみた感想と気になる料金

それでは以下より必要最低限のプログラミング知識概要を解説していきます。

データ型を理解する

数値型と文字列型

Pythonを始め、プログラミング言語にはデータ型というものがあります。
Excel VBAを扱ったことのある人は馴染み深いと思いますが、整数を入れるデータ型はint, 浮動小数点の数はfloat、文字列はstringというように、を始めに宣言しなければいけませんでした。

しかしPythonの場合はこのような型を明示的に宣言しておく必要はありません。

以下のコードはデータ型を理解するためのサンプルコードです。a, b, cという変数にそれぞれ1を異なる方法で定義したコードです。

type()というのはPythonに標準で付いている関数で、括弧内に入れた変数のデータ型を教えてくれます

是非このサンプルコードをPyCharmやコマンドプロンプトで実行してみて下さい!

これを実行すると以下の結果が表示されます。

この実行結果は、a, b, cに入れたそれぞれの値が何であるかを表示し、次にそれぞれの変数のデータ型が何であるかを示しています。
int, float, str(string)は先ほど説明した整数、浮動小数点、文字列を意味しています。

このように、Pythonでは型宣言を意識することなくプログラミングが出来てしまい大変楽なのですが、型が間違っていることが原因でプログラムが動かないということはよくある話なので、type関数で確認しながらコーディングするのが良いと思います。

リスト型

データ型を覚えた後は、超便利なリスト型を覚えておきましょう。

リスト型とは、先ほどまでに学んだデータ型で定義した変数をひとまとめにしてしまう型です。
習うより慣れろ、まずは以下のコードを模写して実行してみて下さい。

実行結果は以下のように「1 one」となります。

このコードはdata_intには数値型, data_strには文字列型を[]と,(カンマ)でリスト化し、data_int[1], data_str[1]とそれぞれリストの1番目の要素を抽出して表示させるプログラムになります。

このように、リスト型とは、複数のデータ型をひとまとめにすることができ、任意の場所を要素として抽出できるという特徴を持ちます。

リスト型と要素番号は以下の図の通りです。要素iは0, 1, 2の順番で抽出することもできますし、最後の要素から-1, -2, -3と抽出することもできます。

listの説明

条件分岐処理を理解する

条件分岐処理とは、「もし〇〇が□□ならば△△する。そうでなければ▽▽する」という処理のことです。

プログラミング言語は様々ありますが、ほぼ統一的に「if文」と呼ばれています。

if文をPythonで書くと以下のコードのようになります。
「if 条件式:」の形で記述し、この例の「if i == 0:」とは、比較演算子「==」を使って、「iが0と等しいなら」という意味を表します。

条件式が真(True)ならその下の文が

実行され、最初の条件式が偽(False)ならelif(else if)と代わりの条件式に移ります。 全ての条件式が偽(False)ならelse(その他)の実行文が実行されるというものです。

このコードをiの値を変えながら実行することで、if文の仕組みがわかるようになると思います。是非Pycharm等で実行してみて下さい。

ちなみに、比較演算子には以下の表に示すように様々な種類があります。

a = ba が b と等しい
a != ba が b と等しくない
a > ba が b より大きい
a < ba が b より小さい
a >= ba が b 以上
a <= ba が b 以下
a in ba が b に含まれる
a not in ba が b に含まれない

このif文コードについて、ifの次の行の文が少し字下げされていることに気付いたかと思います。

この字下げはインデントと呼び、Pythonではif文やこの後説明するforループ、whileループ、関数、と様々な場面で重要な要素です。

Pythonではインデントが必要な文では、この字下げで追加するスペースの個数を揃えなければエラーとなります。

実はインデントは他の言語ではあまり気にしなくても良いのですが、Pythonはこのインデントエラーがあるおかげで誰が書いても綺麗なコードに見えるという可読性の向上に貢献しているとも言えます。

インデントを揃えるとは、下図のようにスペースの個数を揃えるということです。

繰り返し処理を理解する

プログラムは既に決まった処理をコンピュータにさせることを得意としています。

そのため、繰り返し処理が得意です。

繰り返し処理とは、処理の内容を単純に何回も繰り返す処理のことを指し、「何回繰り返すのか」を決めてあげる必要があります。

繰り返し処理には「forループ」と「whileループ」があります。forループは回数自体を決めたり、リスト内の個数分を繰り返す等、既にループ回数が決まっているアルゴリズムに対して有効です。

一方whileループは条件式が真(True)である限り繰り返し処理をするため、繰り返し数が決まっていない処理に対して有効です。

それでは二つのループについてサンプルコードを見てみましょう。

forループ

以下にforループのサンプルコードを示します。

①は回数をrange(3)で3回と明示的に指定しているループです。そのためiには0, 1, 2と順番に値が入ってきます。

一方②は先ほど学んだリスト型に文字列を3つ定義して、forループの中でそれらを取り出すという処理をしています。
このコードは以下の実行結果を得ます。どちらもとても汎用性のある使い方ですので、是非マスターして下さい。

whileループ

whileループは条件式が真(True)の時に処理を繰り返す文です。
条件式は先ほどif文で学んだ比較演算子を使うことができます。
サンプルコードを見れば一目瞭然だと思いますので、以下のコードを示します。

上記コードは以下の実行結果を得ます。iが3より小さい時は条件式がTrueですので、print(i)とi += 1(iに1を足す)が実行されますが、iが3になった瞬間条件式はFalseになりループを終了するという動作です。

forループとwhileループはいろんなプログラムで多用する文なので、是非両方ともその使い方をマスターして下さい!

関数を理解する

Pythonを使う上で、大事な要素に関数があります。
関数とは、引数と呼ばれる処理に必要な材料を受け取って、それを使ってユーザが決めた処理を行うものです。
数学でいう\(y=f(x)\)と本質的に同じ意味を持ちます。

この関数を使うと、毎回決まった処理を一回だけ書いておき、プログラムコードの至る所で呼び出して使うことができます。

プログラムは同じ処理をできるだけ書かない方が良いので、関数を覚えるということは一歩プログラマに近づくということです。

関数については以下の記事に使い方を書きましたので、この記事を参考にマスターして下さい。

Pythoの関数 def文の使い方!引数や別ファイル式も解説

関数を覚えるとコードが綺麗になります!是非マスターしましょう!

外部ライブラリの利用方法をマスターする

Pythonは外部ライブラリを使うことで本当の真価を発揮します。

外部ライブラリとは、行列計算を扱うNumPy, 科学技術計算を扱うSciPy, 画像処理を扱うOpenCVと非常に数多くのパッケージの総称です。

標準関数だけでも自分で組めばありとあらゆる処理を作ることが出来ますが、既に頭の良い人が効率よく動作する関数を作っているので、それを利用しない手はありません。

自分で色々1から作るのも勉強には良いですが、一般に「車輪の再発明」と呼ばれます。

我々人類は先人の知恵の上に新しい世界を創造してきたので、僕達もどんどん巨人の肩に乗るつもりで利用しましょう。

外部ライブラリはいくつかインストールの方法がありますが、「pip」を使ってインストールしたり管理する方法が一般的です。

pipを使ったパッケージのダウンロードやインストールは以下の記事で紹介していますので、まずは記事にあるNumPyというライブラリをインストールしてみて感覚を掴んで下さい!

Pythonのパッケージ管理ツール pipの使い方とコマンド集

以上でSTEP2は終了です。
ここまでの内容でPythonのプログラミングの感覚は掴めてきたと思います。
pipを使って他の人が作った外部ライブラリパッケージのダウンロードやインストール方法がわかったら、一気に世界がひろがります!
各種ライブラリを使ったサンプルコードは当WATLABブログに多くありますので、是非一番上のメニューにあるカテゴリページから興味のあるページを見てみて下さい!

STEP3:自力で問題を解決する方法を知る

僕の学習スタイルは「わからないことはその都度調べる」というもので、決して「全ての文法を習得してからプログラミングを開始する」ではありません。

まずは1字ずつコードを書き進め、不明点はインターネットで調べる方法が最も有効的です。

ここからはSTEP3として、僕自身がどうやって壁に当たった時にその壁を越えて来たかを説明していきます。

内容は割と当たり前のことかも知れませんが、初心者が挫折する最大の理由は「調べ方がわからない」だと思います。

今はインターネットであらゆる情報が溢れている時代ですので、これを最大限活用して効率よく学習しましょう!

新しく作りたいプログラムが決まった場合

Google検索:チュートリアルやブログの活用

何か新しいプログラムを作りたいと思い付き早速プログラミングを開始しようと思っても、初心者は「どうやって作ったら良いかわからない!」といった状況になるでしょう。

そんな時はGoogle検索をして周りの人がどういった作り方をしているのかを学びましょう。

まず見るべきは、公式ページのチュートリアルが無いか、です。

例えば、以下のリンクは画像処理系ライブラリであるOpenCVの公式チュートリアルですが、ライブラリを使った事例が沢山紹介されています。

このようなチュートリアルはほとんどが環境さえ構築できていればコピペで動作するプログラムばかりです。

OpenCV:Pythonチュートリアル

どのチュートリアルが最も自分の実現したい内容に沿っているかを考えて、雛形を探すイメージで適したチュートリアルを探しましょう。

近いチュートリアルが見つかったら、それを自分の開発環境にコピペして動作を確認し、中身をカスタマイズしていくイメージです。

最初からずばりなプログラムは見つからないことが多いですが、多くがそのコーディングスタイルは共通していることにそのうち気付くと思います。

その他の情報としては、僕が作っているブログを始めとした個人が発信しているコードです。

非常に個性的なプログラミングコードがインターネット上に豊富に転がっているので、個人ブログは僕も結構見ています。

人によってアルゴリズムの発想は千差万別!色んな人のコードを見て自分が実現したいプログラムの構想やフローを決めてから作業を開始しましょう!

作っているプログラムに問題が発生した場合

Google検索:teratail/Stack Overflow

新たにプログラムを作る時のわくわくとは違い、作っているプログラムに何らかの問題が発生した時は気持ちの持ちようが変わります。

プログラムはエラーとの闘いです。

エラーを全く出さないプログラマはいないと言えるほど、プログラムを作っている時はエラーに見舞われます。

その時もGoogle検索は大変役立つのですが、今回チュートリアル系の公式ページはあまり役に立ちません。

この時役立つのは、エラーを取り扱ったブログ記事や質問サイトです。

当ブログでも稀にエラーを扱うことがありますが、こればっかりはやはり外部サイトの方が豊富な情報を持っています。

エラーメッセージをGoogleに直接打ち込んで検索するだけでも解決することはよくありますが、やはりよくヒットするのは質問系のサイトです。

例えば、この質問系サイトには、以下のような有用なサービスがありますので、是非検索窓にエラー内容を打ち込んでみて下さい。

ITエンジニア特化型質問サイト:teratail

スタック・オーバーフロー

Stack Overflow(上記の英語版)

特にStack Overflowというサイトは英語の情報にかなり有用な情報が沢山あります。

Pythonは日本よりも海外で利用者の多いプログラミング言語なので、英語で検索したりするとあっけなく解決することがよくありますね。

上記方法で解決しない場合

質問サイトに自分から質問してみる

上記質問系サイトで検索したり、エラーをそのままGoogleに打ち込んでみたりしても中々解決しない場合があります。

その時は、質問サイトに直接自分のアカウントで質問をしましょう
自分の問題が他人とピッタリ一致するケースである場合は良いですが、そうでない場合はプログラムコードを打ち込んで問題になっている部分をダイレクトに聞いてみるのも手です。

そのような質問が増え、回答が寄せられるほどに他の人の助けになっていますので、遠慮せずに聞いてみましょう。

SNSを活用する

その他の方法としてはSNSの活用があります。

Twitter等でIT関連のフォロワーさんを増やしたり、ツイートのやり取りをしていると僕のように質問も歓迎している人が多くいらっしゃいます。

仲良くなってプログラムの話がよくできる仲になったら、お互い相談し合うのも良いと思います。

僕もTwitterをやっていますが、最近よくDM(ダイレクトメール)が来るようになりました。

僕のブログにある記事の内容でしたら問題無く答えられると思いますので、是非Twitterで僕(@watlablog)をフォローしてみて下さい!

STEP3はこれで終了ですが、最も言いたいことは「自分で調べる能力を持たなければいつか挫折する」ということです!他の入門書やサービスではあまりこんなことは言わないと思いますが、自分の中で「調べる・聞く・実践する」というスタイルを確立できれば継続した学習の末必ずプログラミングスキルは向上するでしょう!

まとめ

本記事ではPythonを始めてみたい超初心者を対象に、Pythonプログラミングでどのようなことが出来るのかを当WATLABブログの記事を使って説明しました。

また、STEP1としてPython本体や開発環境のインストール、実行方法の紹介、STEP2として最低限のプログラミングを習得し、最後にSTEP3として自力で調べる、もしくは誰かに聞く方法を紹介しました。

もちろん、本記事を読んだだけでは本格的なプログラミングが出来るようにはなりません。

しかし、プログラムを書いて、実行して、エラーを解決していくというプロセスを回せばそのうち本格的なソリューションを開発することもできるでしょう。

それでは、これからPython仲間として一緒に楽しんでいきましょう!

補助終了の図

Twitterでも関連情報をつぶやいているので、wat(@watlablog)のフォローお待ちしています!

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

コメント

コメントを残す

*