目次
Pythonをはじめたい!
Pythonとは、と聞かれたら、
「プログラムの勉強を始めたい人が学ぶべきプログラミング言語」ということでしょう。
この質問をする方々が知りたい答えがこれだと思います。
プログラミング言語と言えばJava、C 言語が有名ですが、YouTube、Instagram等がPythonでプログラミングされていることや、「機械学習」「AI」といったところへのライブラリが豊富に用意されていることから近年人気のプログラミング言語です。環境構築が簡単なことや、エクセル(csv)の加工も容易となっており、業務効率化への活用もすぐに始めることができます。
このため、Pythonの勉強を重ねることでこれからのソフトウェア人材の最速の手段と言ってもいいと思います。さあ、一緒に始めていきましょう。
開発環境構築
プログラミングを始める際にまず最初の大きな関門が開発構築の環境設定ですよね。まずは、Pythonのインストールと、対話的にプログラム開発ができるJupyterNotebookのインストールをやっていきましょう。
Pythonのインストール
Pythonは頻繁にバージョンの更新がされており、最新をインストールする際には少し注意が必要です。できるだけ最新に更新していきますが、新たなバージョンが更新されていると気づいた際にはそちらを選択しインストールしてくださいね。
Pythonの書き方ルール
これが1番わからない部分かもしれません(笑)。
私もいまだにわからないですが、他のプログラミング言語と違いインデントが文法になっています。何が言いたいかというと、インデントの有無で意味が全く変わってしまうことになります。エラーが出た際にインデントをいじるとうまく動くなんてことはざらですので注意してくださいね。
Pythonのコード規約は下の記事を参考にして下さい。
Pythonで使うデータ型(変数)が知りたい
Pythonで使うおもなデータ型(変数)は以下となります。
データ型 | 説明 | |
str | 文字列 | 文字、文字列、””(ダブルクォーテーション)、’’(シングルクォーテーション)で囲って定義する |
int | 整数 | 小数点を含まない数値 |
float | 浮動小数点 | 小数点を含む数値。これで定義しておけば数値はすべて入る |
bool | ブール | 真偽判定に使用する。True、Falseで定義する |
datatime | 日付 | 日付を格納するデータ型、扱いは少し難しいかも |
Pythonで使うデータ型(リスト、タプル、辞書)が知りたい
データには数値、文字等様々ですが固有の性質があります。
データが集まってデータ集合を形成しますがこれをデータ構造と呼びます。
Numpy,Pandasと合わせて下記にようになるので迷ったらこの表に立ち返ってください。
データ型 | 説明 | |
list | リスト | 基本の構造、異なるデータ種類も入れられる |
tuple | タプル | listと同種類だが変更が不可 |
dic | 辞書 | keyとvalueが組み合わさったデータの集合 順序は持たない |
set | セット | 順序を持たない、重複をもたない |
ndarray | 配列 | Numpyが扱うデータ構造、数値のみを要素に持つことが多い 数値以外も混ぜる場合はPandasを使用したほうがよい |
DataFrame | データフレーム | Pandasが扱うデータ構造 データ型をいろいろまとめて処理することができる |
このうち、ndarray,DataFrameは numpy、Pandasで解説しますのでそちらを参考にしてください。
PythonのList(リスト)を使おう
リストは [ から ] までの間に複数の要素を カンマ(,)で区切ることで定義することができます。数値、文字列、オブジェクトを格納することができるので、お世話になることが多いです。基本的な構文は以下となります。
number = [10, 20, 30, 40, 50]
color = ["Blue", "Red", "Green"]
リストは作成した際に名前を付けると便利ですよ。
PythonのTuple(タプル)を使おう
タプル型は ( から ) までの間に複数の要素を カンマ(,)で区切ることで定義することができます。リストは[ ]に対して、タプルは( )となっているので違いはそこだけです。基本構文はリストと同じですよ。
number = (10, 20, 30, 40, 50)
color = ("Blue", "Red", "Green")
Pythonの辞書を使おう
辞書型は { から } までの間に複数の要素を カンマ(,)で区切ることで定義することができます。要素はキーと対応する値と組み合わせるので、キー:値の書式で記述します。構文は以下となります。
mydict = {1:"Blue", 2:"Red", 3:"Green"}
PythonのSet(セット)を使おう
Set型は{ から } までの間に要素を カンマ(,)で区切ることで定義することができます。一見辞書型と似ていますよね。辞書はキー:値の書式ですが、ここではリスト、タプルと同じように カンマ(,)で区切って使います。ほかのデータ構造と異なり、Pythonではあまり紹介されていないのですが、下記のように重複を削除する際に活用できますので参考として掲載しておきます。
mydict_set = {"Blue", "Red", "Green"}
Pythonリストで重複した値を抽出してみよう
リストや配列から、重複した要素を抽出して活用する場面はよく遭遇します。実は関数であっという間に実現することができるのでそのご紹介です。
# 重複した要素を削除しリストを生成
# 元のリストの順序を保持しない関数)
set(List)
# 元のリストの順序を保持する
sorted()
制御文(if,for)を使いこなそう
if分で処理を分岐させたい
この条件が正しい(True)ならこの処理を行う。そうでなければ、こちらの処理を行う。というような処理を制御文といいますが、代表的な構文がifです。これはどのプロブラムでも使う構文ですのでご存じの方も多いと思います。勉強していきましょう。
基本構文(if,elif,else)
Pythonで気を付けないといけないのは「インデント」です。インデントとは、ifの文字から字下げ(4文字)をして記述しないといけません。これをしないとPythonがif~として認識しないので気を付けましょう。具体的には以下構文となります。
a=1
if a <0:
print("aは負の数です")
elif a ==1:
print("a=1です")
else:
print("aは負の数でも1でもありません")
インデントはJupyter Notebookを使っている方は自然とif分を書いて改行した時点で設定してくれる仕様になっています。もし後で設定したければTABキーを押すとよいですよ。
True,Falseでif処理分岐させたい
a=1
if (a==1):
print("aは1です")
else:
print("aは1ではありません")
ブール型のTrue,Falseと真偽判定する条件を()の中にいれることで分岐制御することができます。また、True、Falseは整数型の派遣型(謎めいた言い方ですよね(笑))なので、Trueを1、Falseを0として使用することができます。
for文でループ実行させたい(オブジェクトでループ)
Pythonのfor文は配列の要素を順番に代入してループ実行する等、他の言語では難しいような処理を簡単にすることができます。もちろん、1~10の数値を順番に代入して実行することもできますよ。
構文としては下記となります。
for 変数 in オブジェクト:
実行する処理
例文のコードを以下に示します。
words = ['りんご', 'ばなな', 'いちご']
for word in words:
print (word)
上の構文で”word”という文字列が突然出てきますよね。これはこのfor文で設定している可変変数ですので、なんでも構いません。(「i」でも「w」でも……)。
for文でループ実行させたい(番号でループ)
構文としては以下になります。
for 変数 in range(10):
実行する処理
例文のコードを以下に示します。
n = 1
for i in range(10):
n *= 2
print(n)
ここで気を付けないといけないのは、range(10)と設定すると、0~9がiに代入されるということです。
rangeについては色々設定できるので下記の構文を参考に試してみてください。構文は下記になります。
range(stop)
range(start, stop[, step])
例文コードは下記になります。
range(5)
--> 0 1 2 3 4
range(0, 5)
--> 0 1 2 3 4
range(4,7)
--> 4 5 6
range(0, 5, 1)
--> 0 1 2 3 4
range(0, 10, 2)
--> 0 2 4 6 8
range(10, 0, -1)
--> 10 9 8 7 6 5 4 3 2 1
range(0, -8, -2)
--> 0 -2 -4 -6
for文で複数のオブジェクトの要素でループ実行させたい
for文で複数のオブジェクトでループさせたいときがありますよね。この時はzip関数を使いながらループさせていくことになります。
names = ['上田', '山田', '三木']
id_list = [234, 250, 218]
for name, id in zip(names, id_list):
print(name, id)