【ヤギでもわかるPython入門】プログラミングの基本

ヤギでもわかるPython入門
スポンサーリンク
読了時間 挨拶

記事は約 10 分で読めます。

くろやぎ
くろやぎ

みなさん、こんにちは!
くろやぎ(kuroyagikuncom)です。
よろしければ、Twitterの方にも遊びに来てください。

今回はプログラミングを行う上で重要な概念について解説します。具体的なプログラミングの勉強に入る前に、基本的な考え方を身に付けておくことで、実際に勉強する際の手助けになります。これはプログラミングに限ったことではないですが、何か物事を理解したい時にはその根幹にある基本を押さえることが大事です。基本を押さえることで、そのものの大まかな仕組みを理解することができ、応用する際の足掛かりになります。そうすることで、結果的に学習効率を上げることができるのです。それでは今回も学習を始めましょう。よろしくお願いします。

スポンサーリンク

プログラミングの基本概念を抑えよう

実際にPythonでのプログラミングを始める前に、そもそもプログラムが実行されたときには、内部でどのように処理がなされているのかを理解します。プログラミングのもっとも重要な、そして基本的な処理の概念は次の3つだけです。すぐに覚えてしまいましょう!

  • 順次処理
  • 分岐処理
  • 繰り返し処理

他にも、関数、変数、配列などのプログラミングの学習を始める前に、あらかじめ理解しておいた方がよいものもあるので、併せて丁寧に解説していきます。上で「すぐに覚えてしまいましょう!」なんて言っていますが、そうすぐには覚えられないのが普通なので、何度も繰り返し読み直してゆっくり理解していきましょう。

順次処理

まずは、1つ目の基本的な概念である順次処理の解説から。順次処理とは、コードを上から順に次から次へと処理を進めて行く処理です。プログラミングを実行するとき、基本的に記述したコードを上から順番に処理をするようになっています。なので、プログラムを読むときは、上から順に読んでいくことでどのようにプログラムが処理されるのかがわかります。
順次処理を言葉で説明してもいまいちわかりにくいかもしれないので、身近な例として、人の朝の行動を考えてみましょう。

「起きる→顔を洗う→着替える→朝食を食べる→歯磨きをする→学校へ行く」といった風に、順番に行動をしていきます。
この順々に動いていくのと同様に、プログラミングも1つ1つの処理を上から順に実行していきます。とりあえず、この考え方を理解しておけば「プログラムって、どこから読めばいいかわからない!」からは卒業です。

分岐処理

次に、2つ目の分岐処理について。分岐処理とは、条件に応じて処理を枝分かれさせる処理です。
今回も例を挙げて理解しましょう。例えば、次のような状況のときに条件分岐の考え方が適用できます。

体調の良し悪しという条件に応じて、登校するか欠席するかの行動(処理)を決定します。「この場合にはこうして、あの場合にはああする」といった処理は、プログラム内で何度も何度も出てきます。それぐらい重要な考え方だということです。しっかり押さえましょう!

繰り返し処理

そして、3つ目の繰り返し処理について。繰り返し処理とは、読んで字のごとく同じ処理を繰り返す処理です。同じ処理を繰り返したい時に、同じ処理を何度もプログラムの中に記述するのは、面倒くさいのはもちろん、プログラムを実行する機械にとっても効率が悪いです。そんな時に、1度処理を記述したらその処理を何度も繰り返す処理を利用します。
例えば、次のような状況のときに繰り返し処理の考え方が役立ちます。

「問題を解く→答え合わせをする→解説を理解する→問題を解く→…」という行動(処理)を繰り返します。繰り返し処理の考え方がないと、効率の良いスッキリとしたプログラムを書くことができない原因になるので、しっかり理解しましょう。

関数

関数は、似たような処理をひとまとめにして使いまわすために利用します。言葉だけで説明するよりも図を使った方がわかりやすいので、例を挙げながら見ていきましょう。
例えば、次のような状況のときに関数の考え方が役立ちます。

関数の考え方を使わないと、いちいち「国語の授業を受ける」「数学の授業を受ける」「英語の授業を受ける」という3つの文を入力しなければなりません。しかし、関数の考え方を使うことができれば「○○の授業を受ける」と「国語」「数学」「英語」という文を入力すればいいだけになります。また、一度作った関数、この例でいうならば「○○の授業を受ける」という型はいつでも再利用可能なので、より効率の良いプログラムを書くには必須の考え方になります。
ここで、ちょっと関数に対する見方を変えてみましょう。上の例では、「○○」に国語や数学、英語を入力することで「○○の授業を受ける」という出力を得ることができました。図示するとこんな感じです。

真ん中のボックスに対して、左から何らかの入力があると、右に何かを出力するという格好です。つまり、関数とは入力に対して何らかの出力を返す機能であると言うことができます。

Pythonでは、関数の引数をコンソールに出力するprint関数がよく使われます。今学んだ関数の概念を用いて図示すると以下のようになります。

関数のかっこ内の入力を受け取り、コンソール(入出力装置のこと。ディスプレイのことだと思えばOKです)に出力していることがわかると思います。
関数とは入力に対して何らかの出力を返す機能。これをしっかり覚えておきましょう!

変数

変数は、データを入れておく入れ物のような働きをします。

データを変数という入れ物に入れることを「代入」といい、Pythonでは「b = 3」というようにイコール「=」を用います。この「b = 3」という例だと「変数bに数値3を代入する」という意味になります。中学、高校で習った数学においては、「=」を式の両辺の値が等しいことを示す記号、つまり等号として使ってきたと思いますが、プログラミングの世界では代入を記述するための記号として使うので注意してください。
では、なぜプログラミングにおいて変数を使う必要があるのでしょうか?次の場合を考えてみます。「くろやぎは秀才だ。くろやぎは…」という文を入力しました。後々文字の入力ミスがあることに気づき、「くろやぎ」を「しろやぎ」に置換する必要が出てきてしまいました。もし変数を使わなければならない場合、図で示すように、3か所を修正しなければなりません。しかし、次のように変数を使うことで1か所のみ修正するだけでよくなります。

また、変数はデータにラベルを付ける意味でも役に立ちます。例えば「20」という数値だけを見てもこれが何を意味するのか全く分かりませんが、「kuroyagi_age = 20」として変数に代入して使えば、その値が何を意味するのかがわかりやすくなります。「自分が書いたコードは自分がわかればそれでいいだろう」という考え方は危険です。プログラムは、自分で書くよりも他人のコードを読む方が圧倒的に多いです。逆に言うと、自分の書いたコードが他人に見られる機会が多く存在するということ。そして、何より過去の自分が書いたコードを読むのはこの自分自身である子いうこと。これらのことを考えれば、より簡潔で読みやすい記述を心掛けた方がよい理由がわかるでしょう。
そして、最後に1つだけ注意点があります。それは変数名の付け方についてです。変数などの命名規則などに厳格なものではありませんが、最低限守らなければならないルールもあります。Pythonの変数について、やってはいけない命名の仕方の例とともにルールを紹介します。

  • アルファベット、数字、「_」(アンダースコア)を組み合わせて命名する
    (ダメな例)!name = 1
  • 先頭の文字を数字にしない
    (ダメな例)1kaime = 2
  • アルファベットの大文字と小文字は区別される
    (ダメな例)kuroyagiとKuroyagiは別物
  • 予約語(特別な意味を持つ単語)は変数名に使えない
    (ダメな例)and = 3
    予約語の一覧
    [‘False’, ‘None’, ‘True’, ‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’,
    ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘finally’, ‘for’, ‘from’, ‘global’,
    ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘nonlocal’, ‘not’, ‘or’, ‘pass’, ‘raise’,
    ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’]

変数の命名規則に限ったことではありませんが、Pythonにはコーディング規約PEP8というものがあります。プログラミングの基本を一通り理解することができたら、より美しいコードを書くために参照してみることをおすすめします。
コーディング規約PEP8(公式)

配列

配列は、データを一続きの連なりとして扱う際に役立ちます。横にずらりと並んだロッカーのような入れ物を想像するとわかりやすいでしょう。

一つ一つのロッカーに割り振られた番号をインデックスと言い、1ではなく0から始まる点に注意してください。
例えば、次のような状況のときに配列の概念が役立ちます。生徒のテストの点数を「□□さんの点数は○○点です。」という文字列で表示したいときに、配列を使わずに処理を記述すると変数を6つ用意しなければなりません。しかし、配列を使うと用意する配列は2つだけで済みます。

似たような種類のデータを数多く扱いたい時には、配列の考え方を使うことで効率的にプログラミングすることができます。

まとめ

いかがでしたか?
今回のまとめとして、解説で扱ったコードをまとめました。

print('\n=====順次処理=====')
# 順次処理
print('起きる')
print('顔を洗う')
print('着替える')
print('朝食を食べる')
print('歯磨きをする')
print('学校へ行く')


print('\n=====分岐処理=====')
# 分岐処理
condition = '今日は体調が良い'
if '良い' in condition:
    print('出席する')
else:
    print('欠席する')


print('\n=====繰り返し処理=====')
# 繰り返し処理
for i in range(2):
    print('問題を解く')
    print('答え合わせをする')
    print('解説を理解する')


print('\n=====関数=====')
# 関数
def take_class(subject):
    print(subject + 'の授業を受ける')

take_class('国語')
take_class('数学')
take_class('英語')


print('\n=====変数=====')
# 変数
# 変数を使わない場合
print('くろやぎは秀才だ')
print('くろやぎはかっこいい')
print('くろやぎはやさしい')

print('しろやぎは秀才だ')
print('しろやぎはかっこいい')
print('しろやぎはやさしい')

# 変数を使う場合
name = 'くろやぎ'
print(name + 'は秀才だ')
print(name + 'はかっこいい')
print(name + 'はやさしい')

name = 'しろやぎ'
print(name + 'は秀才だ')
print(name + 'はかっこいい')
print(name + 'はやさしい')


print('\n=====配列=====')
# 配列
# 配列を使わない場合
student1 = 'くろやぎ'
student2 = 'しろやぎ'
student3 = 'あおやぎ'
score1 = '86'
score2 = '75'
score3 = '91'
print(student1 + 'の点数は' + score1 + '点です。')
print(student2 + 'の点数は' + score2 + '点です。')
print(student3 + 'の点数は' + score3 + '点です。')

# 配列を使う場合
students = ['くろやぎ', 'しろやぎ', 'あおやぎ']
scores = ['86', '75', '91']
print(students[0] + 'の点数は' + scores[0] + '点です。')
print(students[1] + 'の点数は' + scores[1] + '点です。')
print(students[2] + 'の点数は' + scores[2] + '点です。')

コードを実行しながら、順次処理分岐処理繰り返し処理関数変数配列といった、プログラミングをするうえで重要な考え方について理解を深めるようにしましょう。
次回はPythonでのプログラミングをするのに必要なGoogle Colaboratoryの設定を済ませます。面倒な設定はなく、2、3分ですぐに終わる予定です。
🔗Google Colaboratory

コメント

タイトルとURLをコピーしました