見出し画像

プログラミングスクールに通う前にやっておきたいPython超基礎入門

====
[UPDATE]
2018.12.30:誤字脱字の修正&「●条件分岐」の項目を追加
====

現役でエンジニアをやりながら、 CodeCampMENTA、 最近ではTechMeと呼ばれるサービスで講師(メンター)をしているnaritaと申します。

最近文系でもプログラミングを学び始める人とかが多くて、「独学でやったけど挫折した」とか、「プログラミングスクールの教材難しい。。。」っていう話をよく聞きます。

そこで今回私が、プログラミングスクールに通う以前に知っておくと学習効率がアップするようにかなり丁寧にPythonの基礎をまとめてみました。

このnoteの対象者
・プログラミングスクールへ通う前に基礎を触っておきたい方
・とりあえずプログラミングに触れてみたい方
・一度プログラミングをやってみたが、よくわからなかった方
・Pythonの分厚い本を読んだが挫折した方

このような方向けに、専門用語を使わずできる限り丁寧にPythonというプログラミング言語の基礎をまとめてみました。なお、「Pythonの超基礎を最短で理解するためのnote」ということで、削れるところは削りできるだけインプット過多にならないように心がけました。そのため一通り理解したら、他の書籍などと組み合わせて学習してみることをオススメします。

また,今回のnoteは質問対応付き!エラーが起きた際などは@narinarita1980までDMください。対応させていただきます。

約27000文字とボリューム多めですが、「知識をつける」→「実践してみる」の流れで自然にプログラミングを学べる構成にしたので、あまり長くは感じないと思います。


■目次

●Pythonってなんなの?
●質問対応について
●初めてのプログラム
・文字を表示してみよう
・計算してみよう
●変数・配列
・変数を使ってラベル付け
・配列で複数のものを一気に
・【ワークショップ】おみくじアプリを作ろう

〜以下有料〜
●ハッシュ
・配列にしたらわかりにくくなった?
・【ワークショップ】ToDo管理アプリを作ってみよう

●条件分岐(12月30日追記)
・if文,unless文
〜以下、後日更新予定〜
・【ワークショップ】ToDo管理アプリを改造しよう
●繰り返し文
・timesメソッド,each文
・【ワークショップ】ToDo管理アプリを完成させよう
●メソッド
・メソッドについて理解しよう
・【ワークショップ】ToDo管理アプリのプログラムを整理しよう

Pythonってなんなの?

Pythonとは、以下のような特徴を持つプログラミング言語のことです 。

1. 短く、シンプルなコードで記述できる
2. オブジェクト指向型言語(後述)
3. ライブラリと呼ばれるプログラム集が沢山ある

いま流行りの人工知能やデータ解析、YoutubeやInstagramなどの有名Webアプリケーションにも活用されており、比較的初心者にも扱いやすいということで多くのプログラミングスクールのカリキュラムでも採用されています。

質問対応に関して

冒頭でも説明した通り、読者の方がこのnoteに書いてあるプログラムを実行した時、みなさんのタイプミスなどでエラーが出ることもあるかと思います。
どうしても解決できない際は、Cloud9のコード共有機能で確認させていただくので、よろしくお願いします。

初めてのプログラム

それでは、さっそくプログラムを書いていきましょう。paiza.IOの「コード作成を試してみる(無料)」を選択し、paiza.IOの左上の言語設定ボタンからして「Python3」を選択してください。

それでは, いよいよプログラムを実際に書いていきましょう。

print "Pythonに入門しました!"

プログラムは以下の部分に記述をお願いします。

記述したら、「実行(Ctrl-Enter)」ボタンを押してください。

いかがでしょうか?「Pythonに入門しました!」と表示されたはずです。

表示されなかった方は、タイプミスのはずですので、再度ご確認をよろしくお願いします。

これ以降、「プログラムを入力してください」と指示をした場合、画面に打ち込んでいくものだと思っておいてください。また、「実行してください」といった場合、先程と同様に「実行(Ctrl-Enter)」ボタンを押すことによってプログラムの実行をお願いします。

それでは、次に計算をプログラムにさせてみましょう。以下のプログラムを入力してください。

print(1+1)

実行してみると、「2」と表示されたでしょうか?

「print」は、その後に続くものを表示するプログラムでしたね。今回は、 「1+1」が計算されて2となるので、「print(1+1)」というプログラムを実行すると2と表示されたわけです。

Pythonでは、+、-、*、/、%がそれぞれ足し算、引き算、掛け算、割り算、余りの計算に対応しています。

試しに、以下のプログラムを書いてみましょう。

print(5+2)
print(5-2)
print(5*2)
print(5/2)
print(5.0/2.0)
print(5%2)

これを実行すると、以下のような結果になります。

上から、「足し算、引き算、掛け算、割り算(整数)、割り算(少数)、5を2で割った時のあまり」を計算しています。

このように、Pythonでは「整数同士の割り算は結果も整数に、少数の割り算は少数になる」ということを覚えておいてください。

さて、これでPythonを使った計算までができるようになりました。

●変数・配列

さて、それでは次に以下のようなプログラムを実行してみましょう。

print((80+70+60)/3)

実行結果は、以下のようになったはずです。

80と70と60を足して3で割っただけなので、70になるのはわかるはずですが、これが何を意味しているかをパッとわかった方は少ないのではないでしょうか?

実は、このプログラムは「国語と数学と英語」のテストの平均点を求めるプログラムだったんです。

ただ、こうは思いませんでしたか?『こんなの数字を足して割ってるだけで、国語と数学と英語の点数を表してるなんてわからない!

そう、このような数字を羅列しただけのプログラムってわかりにくいんですよ。

ということで、この数字にラベル付けをしてあげましょう。

japanese = 80
math = 70
english = 60
print((japanese+math+english)/3)

こうすることで、最後の4行目をみたときに、『あ、国語と数学と英語の平均点を計算していくんだな』と予想がつくんじゃないでしょうか?

この場合、1行目でjapanese = 80とすることで、4行目のjapaneseは80という数字を表しているのと等価です。

結果的に、「(japanese+math+english)/3」というのは「(80+70+60)/3」と同じ意味になるのですが、しっかりラベル付けした方が後から見たときわかりやすいですよね。

このラベルのことを、専門用語で「変数」と呼びます。
上記の例だと、japaneseとmath、englishが変数となり、80にjapaneseというラベルをつけることを「japaneseという変数に80を代入する」と呼ぶので覚えておいてください。

それでは、先ほどの点数の平均点を求めるプログラムをさらに改変して、「7科目の平均点」を求めてみましょう。
国語・数学・理科・歴史・政治・英語・情報の7科目のテストの平均を求めるプログラムは、こんな感じになるはず。

japanese = 80
math = 70
science = 72
history = 90
politics = 50
english = 60
information = 40
print((japanese+math+science+history+politics+english+information)/7.0)

うーん。。。これだと、科目の数だけ変数が必要になってきますね。。。

今回だと、変数は7科目あるせいで7つの変数を用意しなければならないため、無駄にコードが長くなってしまっています。そこで『配列』を導入して見ましょう。

実は、『配列』と呼ばれるものを使えば、複数のデータを一括で管理することができるんです!

ここで、配列には複数のデータが管理されているので、使うときは何番目のデータを使うかを明示してあげる必要があります。

それでは、少し配列の実験をしてみましょう。
次のようなプログラムを書いてみてください。

my_scores = [80,70,72,90,50,60,40]

print(my_scores[0])
print(my_scores[1])
print(my_scores[6])

print(my_scores[0])とは、「my_scoresの0番目に入っているデータを表示」というプログラムなので、まず80が表示されたわけです。
print(my_scores[1])、print(my_scores[6])も同様に、my_scoresの1番目と6番目に入ってるデータを表示したため、上記のような実行結果を得ることができました。

さて、それではこの配列を使って、平均点を出すプログラムを作って見ましょう。

my_scores = [80,70,72,90,50,60,40]
print (my_scores[0]+my_scores[1]+my_scores[2]+my_scores[3]+my_scores[4]+my_scores[5]+my_scores[6])/7

これで、先ほど7科目の平均点を出すのに8行かかってたのを、わずか2行に直すことができました。

足し算しているところがあまり綺麗ではありませんが、これは後ほど直していくことにします。

■ワークショップ おみくじアプリを作ろう

さて、それでは簡単なおみくじアプリを作るワークショップをやってみましょう。

以下のような条件を満たしているのがおみくじアプリです。

・プログラムを実行すると、ランダムに運勢が出る
・運勢は、大吉や中吉、小吉など複数ある


さて、2個目の「運勢は複数ある」というのがキーポイントです。複数のデータを管理するために有効なもの、覚えていますか? そう、配列です!

まずは簡単化のため、毎回大吉が出るおみくじを作ってみましょう。
以下のようなコードになるはずです。

omikuji = ["大吉","中吉","小吉"]
print(omikuji[0])

「omikuji」という配列には、大吉・中吉・小吉という3つの運勢が記録されています。そして、2行目で0番目を指定して表示しているわけなので、実行すると毎回大吉が出るわけです。

さて、あとはこれをランダムで運勢が表示されるように変更すればOKですね。以下のようにプログラムを書いてみてください。

import random

omikuji = ["大吉","中吉","小吉"]
print(random.choice(omikuji))

「random.choice」は、「配列の中からランダムで1つ選んでね」というい処理を意味しています。「import random」というのは「random.choice」を使うためのおまじないだと思ってください。こうすることで、実行するごとに違った運勢が出るおみくじが完成しました!

今回は,「random.choice」として、「配列の中からランダムで1つ選んで」という意味の処理をさせました。このように「△△.〇〇」の〇〇のことを「メソッド」と呼びます。

メソッドは他にも用意されていて、例えば「配列の中に入っているデータをランダムに複数選ぶメソッド」というものもあります。

プログラムを、以下のように変えてみてください。

import random

omikuji = ["大吉","中吉","小吉"]
print(random.sample(omikuji, 2))

すると、実行結果は以下のように2つ表示されるはずです。

「omikuji」の後ろの「, 2」というのが配列から選ぶ要素の数となります。

このように、Pythonには便利なメソッドがたくさん用意されており、今回のようにおみくじアプリなどをすごくシンプルに開発することができるというわけです。

●ハッシュ
さて、それでは次に、ハッシュについて学んでいきましょう。

ここから先は

4,539字 / 10画像

¥ 500

この記事が気に入ったらサポートをしてみませんか?