本記事はプログラミングの初心者のためにPythonの基礎をまとめた記事です。
Pythonの導入から変数・クラスなど一通りの基礎について紹介しています。

本記事を繰り返し読みプログラミングを実践して行けばプログラムの基本的な考え方を理解することができます。

Pythonを導入する方法

初心者
Pythonはパソコンがあれば簡単に導入することができます。

Pythonを始める方法>>Pythonプログラミングの始め方まとめ

関連記事>>Python初心者が最初にやるべき3つのこと

◆公式サイト
ダウンロードページ>>Pythonのインストーラーダウンロードページ
公式ドキュメント>>Pythonの公式ドキュメント

Pythonと変数の基本

変数
変数は値を一時的に入れるための箱のようなものです。
プログラムの処理によって値が変わるため、変数と呼びます。

対義語としては「定数」があります。こちらはプログラムの処理中に値が変わることがないため、定数と呼びます。

変数の宣言と定義

変数を使用するためには使う前に宣言し、定義するのが基本的なルールです。
宣言のルールや型はプログラミングによって異なります。Pythonの場合は比較的緩く宣言がなくても変数を使用できます。

変数の代入

変数に値を設定することを代入と呼びます。

# シャープをつけるとプログラム中にコメントを記載できます。この行は処理されません
# aに1を代入する
a=1

のように記述します。

プログラムで使用する”=”は数学で使う等号とは異なります。
「aという変数に1という値を設定する」という意味になります。

「#」を行の先頭に入れることをコメントアウトと呼びます。コメントアウトされた行は処理されません。
この行では処理の意味を説明したりプログラムの意図を説明したりします。

文字列を使う時はシングルクウォートまたはダブルクウォートでくくります。

# 「あいうえお」を代入する
a=”あいうえお”
# シングルクウォートでもOK
b=’あいうえお’

型にあった値を代入しないと意図しない値となるためその後の処理で思わぬ不具合を生む可能性があります。

変数の参照

値を設定した変数は実際の数字や文字列のように扱うことができます。
変数の参照の例は以下の通りです。

◆変数を参照して画面に表示する

# 代入する
a = 1
b = “あいうえお”
# 値の内容の表示。「print」は値を画面に表示する関数
print(a)
print(b)# 出力される内容
1
あいうえお

◆変数を参照して計算する

◆変数が値が入っているかチェックしよう
値が設定されていない変数を参照した場合はエラーとなります。
変数は使う前に必ず値をチェックすることが大切です。

たかが設定漏れと思うかもしれませんが、ちょっとしたミスがシステムに深刻なエラーを生み出す場合もあります。私がSEの頃も値の設定漏れによるシステムトラブルを何度も経験しました。

「変数を使う前に値が入っているかチェックする」ことを心がけましょう。

変数と型

変数を宣言する場合に同時に変数の型を指定します。
型は変数に「どんなものが入るか」・「どんな大きさのものが入るか」ということを示すためのものです。

“あいうえお”などの文字列が入るstr型、”123″などの数字の入るint型、”[‘a’,’b’,’c’]”のように複数の値を管理できるリスト型などが代表的な型です。

◆str型
“abc”や”あいうえお”などの文字列が入る型です。

◆int型
“1”,”10″などの整数が入る型です。

◆リスト型
“[1,2,3]”や”[‘a’,’b’,’c’]”など、複数の値をリスト化できる型です。

リスト化された変数は”a[0]”のように指定することでリストのそれぞれの値を参照することが可能です。
括弧内の数字の’0’をインデックスと呼びます。
“[‘a’,’b’,’c’]”というリストを定義した場合、インデックスと値の関係は以下のようになります。

0 1 2
a b c

なお、pythonは型を自動で判別するため、宣言や型の指定をしなくても使用することができます。

関連記事>>Python初心者が理解しておくべき変数の3つの役割

Pythonと関数の基本

関数
関数は一連の処理が詰め込まらた箱のようなものです。
前回に「変数も箱のようなもの」と説明しました。変数は一つの値を詰め込むものであるのに対して関数は「特定の目的を実現する為の一連の処理」が格納されています。

例えば画面に表示できる関数として「print」があります。

a = 3
# 変数aの値を表示する
print(a)# 出力結果
3

「print(a)」の括弧の中で使用している「a」を引数と呼びます。
引数は関数を呼び出す時に呼び出し元から渡す値であり、この値によって関数内の処理を変えることも可能です。引数がない関数もあります。

また、関数から返却される値を「戻り値」と呼びます。(返り値、リターン、リターン値などとも)
戻り値は関数を実行した結果出力された値です。print関数のように戻り値がない関数もあります。

関数にはprint関数に元々プログラミング言語に備わっている関数と独自に定義できる関数があります。

独自の関数を定義できる

独自の関数を定義する意味としては「呼び出すだけでその処理を簡単に実現できる」ことと「重複する処理を削減できる」、「修正は一箇所で良い」ことなどが理由として挙げられます。

◆呼び出すだけでその処理を簡単に実現できる
複雑な処理を関数にまとめて定義しておくことで、その関数を呼び出すだけで処理を実現できます。

◆重複する処理を削減できる
プログラムの処理では同じような処理が何度も必要となる場合があります。毎回同じ処理を書いてしまうとプログラムが膨大となり非常に管理しにくくなります。
記述する量が減ってプログラムの可読性も上がります。

◆修正は一箇所で良い
不具合などが起きた場合に同じ処理が複数あった場合に全ての処理を直さなければなりません。修正箇所が複数に渡ると修正漏れが発生する可能性が高くなります。しかし、関数化しておけばその関数だけ修正すれば事足ります。

関数の定義と呼び出し

関数を使う場合は変数と同様に定義が必要となります。

関数の定義はプログラミング言語によってルールが異なります。
Pythonの場合”def”を使って定義します。

二つの値を足す関数「addition」を定義して呼び出す例です。

1関数=1機能が原則

1関数には1機能が原則です。
複雑な機能を持たせると何を行う為の関数かが曖昧になってしまいます。何をするか曖昧な関数は使われませんし、その関数の機能に気づかずに似たような関数が作られてしまう可能性もあります。
関数には複数の機能を持たせないようにしましょう。

関連記事>>Python初心者が理解しておくべき関数の3つの役割

Pythonと制御文の基本

条件分岐
プログラムはただ直接的に処理をするだけでなく、条件によって処理を分岐したり、同じ処理を繰り返し行うなどの動きも可能です。制御文はこの分岐や繰り返しの条件づけを行うための構文です。

制御文の種類

制御文の種類としては主に「条件分岐」と「繰り返し処理」があります。

条件分岐

条件によって処理を分ける制御文です。代表的な条件分岐は「if文」、「else文」、「elseif文」です。
Pythonにはありませんが、他のプログラミング言語で使用できる分岐条件文として「switch文」があります。

◆if文
もし〜なら実行する

条件と一致したら文章を実行します。

◆else文
else文は判定文とセットで使用します。
条件と一致しなかった場合にelseの処理を実行します。

◆elseif
if文と組み合わせて活用する判定文です。前の条件に合わなかった場合に次の条件を指定する方法です。

◆制御演算子
「==」などの判定する時に使用する演算子を制御演算子と呼びます。

判定演算子の一列

== : 左辺と右辺が一致
!= : 左辺と右辺が不一致
> : 左辺が右辺より大きい
>= : 左辺が右辺以上
< : 左辺が右辺より小さい
<= : 左辺が右辺以上

繰り返し文

◆for文
for文は配列に数だけ処理を繰り返す関数です。

◆while文
while文は条件が一致している間処理を繰り返す繰り返し文です。
処理を行う前にループを行うかの条件のチェックする為、一度も処理を行わない可能性があります。

Pythonとオブジェクトの基本

プログラミングコード
変数の型には「概念」と「実体」と呼ばれるものがあります。

この概念のことをクラス、実体のことを「オブジェクト」または「インスタンス」と呼びます。

◆概念(クラス)
型を定義する為の情報を概念(クラス)と呼びます。

概念の例
・整数型
・文字列型
・リスト型

◆実体(インスタンス)
“a”,”1″など実際の値を実体(インスタンスまたはオブジェクト)と呼びます。

実体の例
‘a’
‘1’
[1,2,3]

メソッドとは?

メソッドとはインスタンスが持つ機能であり関数と同じように特定の目的を実現する為の一連の処理が書かれたものです。
関数と異なる点はインスタンスと結びついている点です。メソッドはインスタンスの後ろに「.」をつけて接続する形で記述します。

a = [1,2] print(a)
# 出力値
[1, 2]# メソッドは「a」という変数に「.」をつけて使用する
# 「append()」はリストに値を追加するメソッド
a.append(3)
print(a)
# 出力値
[1, 2, 3]

# 「count()」はリストの中の特定の値の数を出力するメソッド
b = a.count(3)
print(b)
# 出力値
1

◆メソッドの副作用
メソッドを実行したことによってオブジェクトの状態が変わってしまうことを「副作用」と呼びます。
具体的にはインスタンス内の変数の値などが変わってしまうなどです。

上記の例で使用した「append()」は実行後にリストの値が変化してしまう為、副作用のあるメソッドです。
「count()」は副作用のないメソッドです。

Pythonとクラスの基本

プログラミングコード
クラスは変数の型における「概念」と「実体」のうち「概念」に当たります。

クラスの役割は複雑な処理をわかりやすい処理にすることです。
クラスを使うことで目的ごとに変数や関数をクラスにまとめることができます。

目的ごとにまとめることで変数や関数の意図が明確になり、プログラムを管理しやすくなります。

クラスの定義とインスタンスの生成

クラスの定義

クラスの定義の記述は以下の通りです。

“__init__()”という部分はコンストラクタと呼ばれるものであり、インスタンスを生成した時に実行されるメソッドです。
ここではインスタンス化する時に毎回実行したい処理を定義して置ける他、インタンス内の変数の定義や初期化も行うことができます。

コンストラクタで定義された変数は他のメソッドで後から上書きできます。

◆キャメルケース
キャメルケースはプログラミングで関数名・変数名・クラス名などを記述する時の命名規則の一つです。
“test class”という名前をキャメルケースで定義する場合は”TestClass”と単語の先頭を大文字にして記述します。

Pythonのクラスはキャメルケースで定義するのがルールです。

クラスのインスタンスを生成する

クラスのインスタンスを生成する時は以下のように記述します。

# インスタンスの生成
# 第一引数は指定しない
test_class = TestClass(5,6)
print(test_class.a)
print(test_class.b)
# 出力値(引数に指定した値がセットされる)
# 5
# 6
# メソッド実行:a+bを足した値を出す(5+6)
# 第一引数は記述しない
test_class.addition()
# 出力値:11
# 変数は書き換え可能
test_class.a = 7
print(test_class.a)
# 出力値:7
# メソッド実行:aからbを引いた値を出す(a-b)
test_class.subtraction()
# 出力値:1

Pythonでは第一引数の「self」にはクラスのインスタンス自身が代入されるというルールがあります。

そのため、インスタンスを生成する時は第二引数から記述します。
メソッドを実行する場合も同様で第一引数「self」が代入される為、第二引数から指定します。

Pythonとモジュールの基本

ライブラリ
モジュールとはある特定の機能を持った部品のことです。
Pythonにおけるモジュールは「類似する分類のクラスや関数を一纏めにしたファイル」です。

モジュールには「組み込みモジュール」、「標準ライブラリ」、「外部パッケージのモジュール」、「自作のモジュール」があります。

組み込みモジュール

組み込みモジュールはPythonに最初から組み込まれているモジュールです。printなどのPythonの標準関数や変数・関数の型などが定義されています。
このモジュールに定義されている関数は特に意識せずに使用できます。

◆組み込みモジュールの使い方

# 値の代入やprint関数は組み込みモジュールの機能。特に意識せずに記述できる
a = 1
print(a)
# 出力値:1

標準ライブラリ

Pythonをインストールした時に同時にインストールされるモジュールです。
組み込みモジュールと異なり、標準モジュールに定義されているクラスや関数を使用する場合はモジュールを読み込む必要があります。

◆標準ライブラリの使い方
読み込みは「import」により行います。

# importでdatetimeのモジュールを読み込む
import datetime
# 現在時刻を表示する
datetime.datetime.now()
# 出力値
# datetime.datetime(2018, 12, 14, 9, 58, 7, 132967)

外部パッケージのモジュール

組み込みモジュールや標準ライブラリの機能は決して多くはありません。しかし、Pythonは「pipコマンド」によって外部パッケージをインストールすることにより機能を拡張することが可能です。
外部パッケージのモジュールはパッケージをインストールした後は標準ライブラリと同じように使用することができます。

◆外部パッケージの使い方
ターミナルより「pipコマンド」を実行します。(macOSの場合は「pip3コマンド」)
pip install [インストールするパッケージ名]

以下、「requests」という外部パッケージをインストールする例です。

$ pip install requests


(略)
Installing collected packages: idna, urllib3, certifi, chardet, requests
Successfully installed certifi-2018.11.29 chardet-3.0.4 idna-2.8 requests-2.21.0 urllib3-1.24.1

「Successfully installed」が出れば成功です。

モジュールを読み込む手順は標準ライブラリと同じです。

# importでrequestsのモジュールを読み込む
import requests

自作モジュール

自分で作成したソースコードもモジュールとして使用することができます。複数のモジュールを作成することも可能です。
自作モジュール作成後は標準ライブラリと同様にモジュールを読み込むことで使用できるようになります。

以下の内容を「testmodule.py」というファイル名で保存します。
◆testmodule.pyに記述する内容

testmodule.pyと同じディレクトリの中に「main.py」というファイルを作成して以下の内容を記述します。
◆main.pyに記述する内容

import testmodule
test_class = TestClass(5,6)
test_class.addition()

◆実行結果

11

パッケージ・モジュール・クラス

Pythonのプログラムを管理する為の括りには「パッケージ」、「モジュール」、「クラス」があります。
いずれも目的は「類似する分類の機能をまとめてグループ化する」ことです。

◆パッケージ・モジュール・クラスの関係

パッケージという箱に複数のモジュールが入っている
モジュールという箱の中に複数のクラスや関数が入っている

終わりに

プログラムはいろいろなコードを書いてトライ&エラーを繰り返すことが大切です。知識を身につけたら実践をして経験を積んでいきましょう。

本記事で紹介したことはPythonの基礎の基礎ですが、本記事を繰り返し読みプログラミングを実践して行けばプログラムの基本的な考え方を理解することができます。
本記事の内容をベースにして勉強と実践を繰り返していきましょう。

PtyhonまとめTOP>>Pythonプログラミングの始め方まとめ

◆公式サイト
ダウンロードページ>>Pythonのインストーラーダウンロードページ
公式ドキュメント>>Pythonの公式ドキュメント

◆参考文献
(1)伊藤裕一 『1日で基本が身につく!Python超入門』 技術評論社 2017年

オススメ記事>>Python初心者にオススメの参考書3選
関連記事>>Python初心者が最初にやるべき3つのこと