Python3入門|初心者対象!【第1回】環境構築とはじめてのプログラミング

Pocket

まえがき

この記事ではプログラミング未経験者の方を対象に優しく丁寧に分かりやすく「Python3」を解説していきます。

初心者の方大歓迎です。

お手元にMac OS XかWindowsの入ったパソコンがあれば準備はOKです。

この記事は連載形式になっています。

本連載記事では「初心者の方でも絶対に挫折せずにPython3を習得できるようにする!!」ということを目標としています。

Python3の基礎の基礎から始めオブジェクト指向を用いたPython3プログラミングができるようになるまで徹底的にサポートいたします。

また、今回の「Python3入門|初心者対象!【第1回】環境構築とはじめてのプログラミング」ではPython3のインストール~環境構築をした後で、Python3の基礎の基礎を学習します。

全力で分かりやすい解説になるよう努力して参りますので、どうぞしばしの間、よろしくお願いします!

尚、「もう少し手っ取り早くPython3の基本文法を知りたい!」という方は、下記の連載講座をご利用頂くのも一手かもしれません。ご参考までに関連リンクを掲載いたします。

はじめてプログラミングを学ぶ方のための勉強法のコツ

わからない項目が出てきてもあまり深追いしすぎず、次に進んでいく姿勢が大切です。

またプログラミングは手を動かすことで身につくものです。

サンプルプログラムを写してみたり、少し自分なりに改良してみるといいでしょう。

難しいサンプルプログラムに出会ったら3回~5回、写しとってみるといいですよ。このようにサンプルプログラムを写す作業を俗に「写経」と呼びます。

難しいなと感じたら「何度も写経すること」でそのサンプルプログラムを理解できるようになりますよ。

確かに何度も何度も同じソースコードを”写経”するのは退屈な作業ではありますが、写経は、なかなか理解できないサンプルプログラムを理解するための最善の方法だと筆者は思います!

補足&ポイント

わからないサンプルプログラムは何度も写経して理解する!

Python3のインストール方法

Python3のインストール方法はとっても簡単です。

下記URLをクリックし、Python3.x.x(xには任意の数字が入る)をダウンロードして下さい。

https://www.python.org/downloads/

Windows環境でのインストール手順

以下ではWindowsへのPython3のインストール方法を解説しています。Mac OSx環境の方は次節の「Mac OS X環境でのインストール手順」をご参照下さい。

①ダウンロードしたファイルを開くとインストーラーが起動します。

②セキュリティの警告が出るので[実行]ボタンを押下します。

③画面の下の方にある[□Add Python3.x to PATH]という項目にチェックを入れ[Install Now]をクリックします。

後はインストーラーの指示に従って進めていけば簡単にPython3の開発環境をインストールすることができます。

④インストール終了後Windowsのスタートメニューを見てみるとPython3.x(例:Python3.6)が表示されているはずです。これでPython3のインストール作業は完了です。

Mac OS X環境でのインストール手順

Windows環境の方はこの節は読み飛ばしていただいて結構です。

OS Xには既にPython2がインストールされていますが、ここにPython3をインストールしていきます。

①ダウンロードしたPython3のファイルを立ち上げ、インストーラーを起動します。

②あとはインストーラーの指示に従って、[続ける]や[同意する]ボタンを押下していけばインストールできます。

③インストール終了後Finderのアプリケーションの中にPython3.xがあればインストールは正常に完了しています。

Python3の開発環境構築完了!

以上でWindows、MacともにPython3の開発環境構築は終了です。Python3は他のプログラミング言語に比べて圧倒的に開発環境構築が楽なので、躓かずに進めたのではないでしょうか。

さて、Python3のインストールが終わったところで、次節からは早速、簡単なプログラムを書いてみましょう!

REPLを使ってはじめてのPython3プログラミング!

REPLという対話モードを使えば、Python3に効率的に入門することができます。REPLとは一行Python3のコードを入力するたびに対話的に、そのコードの実行結果が表示される仕組みです。REPLはPython3初心者の強い味方です!

先ずはWindows、Macの各環境別にREPLの起動方法をご紹介します。

WindowsでREPLを実行するには?

Windows環境でREPLを起動し、終了する手順を解説しています。Mac OSx環境の方は下の方にスクロースし「Mac OS X環境でREPLを起動するには?」をご参照ください。

①コマンドプロンプトを立ち上げます。

(1)コマンドプロンプトが見つからない方は[Windowsキー]+[Rキー]を押下し下記の画像のように[ファイル名を指定して実行]というダイアログボックスを表示させます。

(2)「名前:」のところに下記画像のように[cmd]と入力し[OKボタン]をクリックします。

(3)すると下記画像のような真っ黒な画面が表示されます。これがコマンドプロンプトです。

②コマンドプロンプトにpythonと入力します。

③するとPython 3.x.x …(中略)…Type “help”, “copyright”…(中略)…for more infomation.と表示され、次の入力欄に>>>と表示されます。これでREPLを正常に起動することができました。

補足

【ヒント:REPLの起動がうまくいかない場合の対処方法】このREPLの起動がどうしてもうまくいかない場合はPATHが通っていないことが原因です。インストーラーで作業する際に[□Add Python3.x to PATH]にチェックを入れ忘れるとパスが通っていない状態のままPython3をインストールしてしまいます。パスを手動で通すか、もしくはPython3を再インストールし、インストール時に必ず[□Add Python3.x to PATH]にチェックを入れるようにして下さい。

④REPLを終了するにはquit()と入力するか[Ctrl]+[Z]を押下した後[Enter]を押下します。

Mac OS X環境でREPLを実行するには?

Windows環境の方はこの節を読み飛ばしていただいて結構です。ここではMac OS X環境におけるREPLの起動と終了の手順を解説しています。

①Mac OS Xではまず最初に「ターミナル.app」を起動します。Finderのサイドバーから[アプリケーション>ユーティリティ>ターミナル]と遷移し、ターミナルを起動します。Spotlightに「ターミナル」と入力してターミナルを起動する方法もあります。

②ターミナルが起動したらpython3と入力し[Enter]を押下します。

③するとメッセージが表示され、次の入力欄に>>>と表示されます。これでREPLは正常に起動しています。

④REPLを終了させるにはquit()と入力し[Enter]を押下します。

REPLの起動完了!

これでWindows環境の方もMac OS X環境の方もPython3の対話型実行モードであるREPLを起動する方法と終了する方法が分かりましたね!

REPLは入門者がPython3を学習する上で大変助けになる素晴らしい学習ツールです。学習目的だけではなく、あるコードがどのように振る舞うのかをチェックする目的でもREPLは有用です。

次節からはREPLを利用して”はじめてのPython3プログラミング”をしていきますので、REPLの起動方法と終了方法はしっかり頭に入れておいて下さいね。

と言っても、難しいことではないので、REPLの起動/終了にはすぐに慣れると思いますけどね!

このPython3のインストール~REPLの起動までの段階で躓いてしまうと、先に進めなくなってしまうので「どうしてもうまくいかない!」という方はお気軽に筆者まで質問して下さいね。メールアドレスは【ruru@rurupi.xyz】です。返信には2日~4日程度かかることもございますので、予めご了承下さいませ。

補足&ポイント

どうしても環境構築がうまくいかない場合は筆者にメール相談しよう!

REPLでお手軽プログラミング!

では、早速、はじめてのPython3プログラミングをしてみましょう。先ずはREPLの起動をお願いします。コマンドプロンプト/ターミナルを起動し、Windows環境の方はpythonと入力し[Enter]を押下します。Mac OS X環境の方はpython3と入力し[Enter]を押下します。すると>>>という入力欄が出ればOKです。

そこに下記のサンプルコードを入力してみて下さい。

尚、入力する際は全て半角英数字でお願いします。スペースも半角スペースです。

【サンプルプログラム1-1】

144という結果が返ってきましたよね?

おめでとうございます!単なる計算ではありますが、はじめてのPython3プログラムが正常に動作しました!

これでPython3入門への第一歩を踏み出しましたね。

では次のサンプルプログラムです。

【サンプルプログラム1-2】

5.0という結果が得られましたね。

「サンプルプログラム1-1」と「サンプルプログラム1-2」を入力してみたことでREPLの便利さをうすうす実感できたのではないでしょうか!?

コードを入力するとすぐに、そのコードをPython3で解釈した結果が表示されますよね。これがREPLを学習目的で使う上での最大のメリットです。

例えば、「サンプルプログラム1-2」では10÷2をしているわけですが、その結果が5なのか5.0なのかは実際にPython3の解釈を待たないとすぐには想像できませんよね(プログラミングにおいて55.0は異なる意味を持つので!詳細は後述します!)。

しかし、REPLの対話型実行環境のおかげで、「Python3では10を2で割ると5ではなく5.0が返ってくる」ということがすぐにわかりますよね。

ちなみにPython3における数学の四則演算は下記の表のようになっています。

Python3 数学
+ +
* ×
/ ÷

計算の順序

Python3でも数学と同じで「足算よりも掛け算を先に計算する」といった計算の順序があります。この節ではREPLを使って計算の順序に慣れることを通じてPython3に入門していきましょう!

ちょっと退屈かもしれませんが、基礎の基礎からステップ・バイ・ステップでPython3を学んでいきましょう!

先ずは「5+3×5」をPython3で書いてみましょう。

【サンプルプログラム1-3】

結果は「20」になりましたよね。これは掛け算が優先的に計算されたからですね。

では逆にこう書くと結果はどうなるでしょうか?

【サンプルプログラム1-4】

結果は想像通り「40」になりましたね。()内を優先的に計算されたことが分かりますよね!

このようにPython3においても数学と似たような計算順序で演算を行います。

ちなみに「+」「-」「*」「/」のような数値計算を行う記号をプログラミング用語で「算術演算子」と呼びます。

変数を利用したプログラミング

この節では変数を利用したプログラミングの基礎を学習します。プログラミングを全くしたことがない初心者の方であれば変数という概念にはじめて出会うと思いますので、丁寧に解説していきますね。

変数とは具体的な値につけるラベルのようなものです。例えばage = 20と書くと、「20」という数値に「age」というラベルを張り付けることになります。

このとき、プログラミングにおける「=」と数学における「=」は全く別物だと思って下さい。数学における「=」は左辺と右辺が「同じ」であることを表しますよね。一方、プログラミングにおける「=」は左辺に右辺を「代入する」という意味になります。

厳密にはこの例えは正しくないのですが、例えばage = 20という式であれば「ageという箱に20という値をしまっておく」とイメージすると分かりやすいかもしれません。なので、イメージ的にはage = 20というよりむしろage ← 20と書いた方が実体に近いと言えます。

それでは変数を用いて三角形の面積を計算するサンプルプログラムを見てみましょう。尚、変数名は半角英字を用います。また大文字と小文字は区別されます。

REPLに下記の画像を参考にしながら次のようにコードを入力してみて下さい。

尚、一行入力するごとに[Enter]を押下します。

【サンプルプログラム2-1】

実行結果はちゃんと25.0になりましたか?

それでは1行ずつサンプルプログラムの内容を解説していきましょう!

1行目は変数「teihen」に10を代入しています。

2行目は変数「takasa」に5を代入しています。

3行目は変数「menseki」に「teihen * takasa / 2」の計算結果(=25.0)を代入しています。変数には10のような直接的な値だけではなく右辺の計算結果も代入することができる(例:sum = 1 + 2)

4行目はprint()関数という命令文を使って変数「menseki」の中身を画面に表示しています。

print()関数とはどういうものかというと()内に入力された値(文字や変数、数値など)を画面に出力する関数です。今回は「menseki」という変数の中身を画面に出力するために利用しています。

さて、本題の変数についてですが、確かに三角形の面積を求めたいだけならば下記のように書けば済みますね。

しかし変数を利用することで2つ良い事があります。

①その値が何を意味するのか分かりやすい。単に10と書かれているよりもteihen = 10と書くことで「10」という値が「底辺」だと一目で分かる。

②プログラムの変更が容易。たった4行のプログラムでは実感できないかもしれないが、変数を利用することで変更や拡張に強いプログラムを書くことができる。

以上の理由からプログラミングでは変数を多用します。Python3も例外ではありません。

補足&ポイント

変数を使わないプログラムは皆無だ!変数を使うことでプログラミングが楽になる!

print()関数に慣れよう

前節で利用したprint()関数の使い方を基礎からわかりやすく解説します。Python3でプログラムを書くにあたりprint()関数は多用されるので、ここで基本的な使い方を習得しておきましょう。

最もベーシックなprint()関数の使い方は「数値を出力する」というものです。下記のサンプルプログラムをREPLに入力してみて下さい。

【サンプルプログラム3-1】

「123」と画面に出力されましたね。尚、REPLを使っている間はわざわざprint()関数を利用しなくてもREPLに123と入力すれば123と画面に表示されます。しかし、今後、対話型実行環境ではなく通常のPython3プログラムを書く際は「あえて」print()関数を書かないと画面には何も表示されないのです。

さて、print()関数の()内で計算を行い、計算結果を画面に表示させることもできます。

【サンプルプログラム3-2】

結果は「8.0」になりましたね。

先ほども同じことをしましたが、print()関数に変数を指定した場合、その変数の「中身」が画面に表示されます。

【サンプルプログラム3-3】

定価は100円、割引率は20%なので、割引後の価格は100*0.8で「80.0」になりますね。

print()関数の中で変数と変数の計算をし、その結果を画面に表示しています。

この他にもprint()関数を使えば文字を出力することもできますが、その方法を学ぶ前に文字列(もじれつ)について学習しましょう。

Python3における文字列の基礎知識

プログラミングの世界では文字のことを文字列(もじれつ)と呼びます。数値の場合は何も考えずにそのまま10とか3.14と入力することができましたが、文字列の場合はそうはいきません。

文字列であることを表すにはダブルクォート(”)もしくはシングルクォート(’)で文字列を囲んであげる必要があります。

例えば「こんにちは」という文字列をPython3の文法で表すと“こんにちは”若しくは‘こんにちは’になります。

それでは早速print()関数を利用してメッセージを画面に表示してみましょう。下記のサンプルプログラムをREPLに打ち込んでみて下さい!

【サンプルプログラム4-1】

Python3は楽しい!と画面に表示されましたよね。

もちろんprint(‘Python3は楽しい!’)とシングルクォートを使って文字列を表現してもOKです!

ここでちょっとした疑問が生じます。ダブルクォートとシングルクォートどっちを使えばいいのか?なぜ二通りの文字列を表現する方法があるのか?

その答えは簡単で、ダブルクォート若しくはシングルクォート自体を文字列として出力したい場合があるためです。

例えば、I can’t play.という英文を文字列として出力したい場合、シングルクォートを用いて、
I cant play.としてしまうとPython3はどこからどこまでが文字列なのか分からなくなりエラーを吐いてしまいます。

ここで一工夫加えてI can’t play.と書けば、どこからどこまでが文字列なのかがはっきりしますよね。

逆にダブルクォートを文字として扱いたい場合は全体をシングルクォートで囲んであげれば、その文字列中で自由に文字としてのダブルクォートを使えます。

例えばその”例のブツ”ちゃんと使えるんだろうな?と書くことでダブルクォートを文字列として扱えますよね。

このことを実際にサンプルプログラムで試してみましょう。

【サンプルプログラム4-2】

実行結果は「あの”例のブツ”ちゃんと倉庫に運んでおけよ」になりますよね。

 

さて、さて、文字列は足算することもできます。文字列の足算には「+」を使います。

サンプルプログラムで文字列が足算される様子を見てみましょう。

【サンプルプログラム4-3】

実行結果は「価格:1万円」になりますよね。

さらに変数には数値だけではなく文字列を代入することもできます。変数の使い方、print()関数の使い方、文字列の使い方の総復習として下記のサンプルプログラムをREPLに入力してみて下さい。ここまでくれば「Python3への入門したんだな!」という実感が少しはわくかもしれませんね!

実行結果は「お会計は10万円です。」となりますね。4行目のprint()関数では3つの文字列を格納している変数を+記号で連結しているのがわかりますね。

補足&ポイント

文字列はダブルクォートorシングルクォートで囲め!

全ての値には型がある

さて、Python3におけるあらゆる値には「型(かた)」というものがあります。型は生物分類学に例えることができます。「人間」は「哺乳類型」、「アジ」は「魚類型」、「カブトムシ」は「昆虫型」といった具合です。

これをPython3にあてはめると10は「int型(整数型)」、3.14は「float型(小数型)」、
“こんにちは”は「str型(文字列型)」といった具合になります。

Python3はある値が何型かをなるべく意識せずにプログラミングできるようにデザインされてはいますが、やはり型を意識することは重要です。

本稿の最初の方で「10/2の結果が5ではなく5.0になることはプログラミング的には非常に意味のあることなんだ」と述べました。どういう意味があるのかというと、5は「int型(整数型)」であり、5.0は「float型(小数型)」であるという違いに意味があるのです。

Python3には12種類の型が存在します。今の時点では、その12種類の型のうち3つの型を覚え、意識するようにしましょう。

3つの型の一覧表を下記に示します。

型の種類 型の和訳 値の例1 値の例2
int型 整数型 10 99
float型 小数型 3.14 5.0
str型 文字列型 “こんにちは” ‘Hello’

型を意識する癖をつけることはバグの少ないプログラムを書く上で非常に重要です!

型を意識する習慣を身に着けるには「これ何型かな?」と思ったら型を調べることに特化した
type()関数を日ごろから積極的に使うといいでしょう。

それでは実際にtype()関数をREPL上で使ってみましょう!type()関数は括弧内に入力した値の型を返す関数です。REPL上ではprint()関数を利用しなくても値に対応した型名を自動出力してくれます。

【サンプルプログラム5-1】

1行目:type(123)の場合123は整数なので<class ‘int’>とint型を示す値が画面に表示されますね。

2行目:type(5.0)の場合5.0は小数なので<class ‘float’>とfloat型を示す値が画面に出力されますね。

3行目:type(“Hello”)のケースでは”Hello”が文字列型なので<class ‘str’>とstr型であることが画面に表示されますね。

このように日頃からtype()関数を用いて、具体的な値だけではなく変数の型も調べる癖をつけましょう。

尚、type()関数の結果をよく見ると<class ~>というようにclassという文字が必ず出力されますね。このclassというキーワードは深い意味を持っているのですが、それを理解するには、この連載講座の終わりの方まで読み進めなければならないので、今のところはclassというキーワードは無視してOKです!

さて、型を意識することはバグの少ないコードを書く上でとても重要なことで、とりあえず本連載の【第1回】の時点ではint, float, strの3つの型を意識しておけばOKだよ!!という部分まではご理解いただけたかと思います。

ここでさらにもう一つ、型変換という概念をマスターして欲しいと思います。

例えば、float型(小数型)である3.14をint型(整数型)に変換すると、小数部が全て切り捨てられて3.14が単なる3になります。これが型変換です。逆にint型の5をfloat型に変換すると、55.0に変換されます。

またこれらとは別に型変換ができない組み合わせもあります。例えばstr型の値“Hello”をint型に変換しようとしても「”Hello”なんて文字列をどうやって整数値にすればええねん!」ということでエラーになります。

しかし文字列型の99、すなわち“99”であればこれをint型に変換すると、ちゃんと整数の99になります。なので、全ての文字列が整数型に変換できないわけではありません。

ここで注意して欲しいのは99“99”は全く別物だという点です。99は典型的なint型、つまり整数型の値ですよね。一方、“99”は一見すると整数値に見えてもダブルクォートで囲ってあるので、整数値ではなく文字列型(str型)の値です。

さて、ここで具体的な型変換をする関数を3つ紹介いたします!

型変換の関数 意味 使用例
int() 整数型に変換する int(3.14)⇒3
float() 小数型に変換する float(5)⇒5.0
str() 文字列型に変換する str(99)⇒”99″

以上の基礎知識を元に下記のサンプルプログラムの間違いを指摘してみて下さい。間違いの内容は型の不一致に起因するものです。

期待する実行結果は「割引後の販売価格は80円です。」と表示されることです。

うまく型変換を行うことで下記サンプルプログラムのバグを解消することができます。

目には見えない「型」をしっかり意識していれば解ける問題です。

ヒント:int型とfloat型の数値を掛け算すると、その結果はfloat型になりますよ!
例:10 * 0.5 = 5.0・・・「5.0」はfloat型

【間違いを含んだサンプルプログラム】


ではここから解答編です。

ちゃんとバグを修正し「割引後の販売価格は80円です。」という実行結果を得ることができましたか!?

型に注目しながら1行1行確認していきましょう。

price = 100

100は整数、つまりint型ですから、変数priceもint型の変数ですね。

discount_rate = 0.8

0.8は小数、つまりfloat型ですから、変数discount_rateもfloat型の変数ですね。

discounted_price = price * discount_rate

ここの計算自体にはなんの誤りもありません。priceがint型でdiscount_rateがfloat型ではありますが、int型とfloat型の計算は問題なく行えます。例えば10*10*3.14という計算が問題なくできるのと一緒です。

しかし、ヒントにもあった通りint型とfloat型の掛け算の結果は必ずfloat型になります。従って変数discounted_priceはfloat型ですよね?つまりこの変数は80ではなく80.0を持っています。

print(“割引後の販売価格は” + discounted_price + “円です。”)

このprint()関数の中でバグが起こりプログラムが停止してしまいます。文字列型つまりstr型の値とfloat型の80.0を持つ変数discounted_priceを連結しようとしたためエラーが出てしまいます。型の不一致が問題なんですね!
そこで4行目のdiscounted_priceを下記のようにstr型に変換すれば一応エラーは回避されます。
型が一致するようになりますからね!

この点に気が付いたならば90%は問題を解けていると言えるでしょう。

しかし、このまま実行すると「割引後の販売価格は80.0円です。」となってしまい、期待値である、「割引後の販売価格は80円です。」を得ることができませんよね(.0が邪魔!)。

そこで、str()で文字列型に変換する前の段階で、一旦、float型のdiscounted_priceをint()で整数型に変換しておき、80.0を80にしておけば期待値を得ることができます。そのためには下記のように書けばいいでしょう。

修正後の4行目:print(“割引後の販売価格は” + str(int(discounted_price)) + “円です。”)

括弧が多重化していてわかりにくいかもしれませんが、まず、int(dicounted_price)として、80.0を80にしておき、そこにさらにstr(int(discounted_price))とすることで80を”80″に変換しています。これで期待値の「割引後の販売価格は80円です。」を得ることができますね。

参考までに正しい版のサンプルプログラムの全文を下記に掲載しますね。

【サンプルプログラム5-2】

このサンプルプログラムを通じて「型を意識する」ということを実感レベルで理解していただきたかったので、このような問題を出題させて頂きました。

こんなたった4行の短いプログラムでも「型を意識できていないとバグが発生してしまう」ということをご理解いただけたかと思います。

補足&ポイント

Python3はあまり型を意識しなくてもいいように作られた言語ではあるが、入門者でも型をしっかり意識する習慣を身に着けることが重要!そうすればバグの少ないプログラムを作ることができる!

 

次の講座へ進む>Python3入門|初心者対象!【第2回】if文(制御構文①)

おわりに

以上で「Python3入門|初心者対象!【第1回】環境構築とはじめてのプログラミング」を終わりたいと思います!けっこう長文になってしまったので「疲れた~!」と感じる方も少なくないのではないでしょうか。

しかし、長文になってしまっただけあって、Python3入門における基礎の基礎はしっかり解説できたと思います。

またここまでの内容で「考えても、考えてもどうしてもわからない!」という点がございましたら遠慮なく筆者までメール質問して下さいね。メールアドレスは【ruru@rurupi.xyz】です。返信には最大4日間かかる場合がございます。予めご了承くださいませ。

次の講座へ進む>Python3入門|初心者対象!【第2回】if文(制御構文①)

あわせて読みたい