Pythonの2系と3系の違いは?Pythonの基本を学ぼう!

はじめに

この章から、実際にPythonのプログラムを実行していきますので、既にPythonの環境構築ができている前提で進めます。環境構築ができていない方は、Python開発環境編を先に完了して進めてください。
今すぐにPythonを始めたい方は、Google Colab(無料)を利用することですぐにPythonプログラミングを始めることができます。

Pythonとは

Pythonはシンプルで理解しやすいプログラミング言語です。
Pythonを使うとWebアプリケーション開発、機械学習、統計処理など様々なことに使うことが出来ます。
GoogleやDropBox、Facebookなど様々な企業で使われています。

公式サイト

Python2系と3系の違い

変更点はいくつかありますが、print文がprint()関数に変更されたことや、long型が廃止されint型として扱われたりなどあります。
Python2系は2020年にてサポート終了ですので、これから始める方はPython3系を選ぶのが良いです。

PEP8

PEP8は、Python のコーディング規約になります。
Pythonでプログラミングを始めるにあたって、その都度目を通して頂けたらと思います。
PEP8

文字列とは

文字列はダブルクォーテーション「”」または、シングルクォーテーション「’」で囲まれた文字は、プログラミングの世界で「文字列」と呼びます。
文字列はシングルクォーテーション「’」、またはダブルクォーテーション「”」で囲む必要があります。
Python3ではどちらで囲んでも出力結果は同じです。
また、文字列を出力する際に、「’」、「”」で囲んでいない場合、コードが動かなくなります。
余力がある方は、エラー(SyntaxErrror)を出して、コードが動かないようにしてみてください。
ここでは、「’」や「”」で囲まない場合にエラーが出て、動かないことを確認していただければより理解出来るかと思います。

シングルクォーテーション「’」、またはダブルクォーテーション「”」の違い、使い分け
エラーコード(例えば、SyntaxError)の種類について

コメント

コードの中にはコメントを書くことが出来ます。
行頭に「#」を書くことで行末までコメントとみなされます。
コメントを書くことで、コードが実行される時に全て無視されるので、コードに関するメモなどとして使うことが出来ます。
業務では、複数人でアプリケーションを作ることがほとんどです。
そのため、常日頃から他人がコードを読むときに読みやすいようにコメントを残しておくことは大事です。
なるべく、プログラム内には他人が読みやすいように、コメントを書く習慣をつけることをオススメ致します。

# この行はコメントです。この行は実行されません。

print("Hello, Python") 

# この行は複数行コメントです。この行は実行されません。
# この行は複数行コメントです。この行は実行されません。

また、余力がある方は上記のプログラムを実行し、コメントした記述が表示されないことを確認してみてください。

数値

プログラミングでは、「数値」を扱うことも出来ます。
文字列と違い、クォーテーションで囲む必要がありません。
数字をクォーテーション及び、ダブルクォーテーションで囲むと文字列になるので注意です。
詳しくは次章、「変数とデータ型」で詳しく説明致します。
また、「+」、「-」、「/」、「%」と行った記号を使うことで四則演算ができるようになります。
四則演算が出来るということは、電卓と同様のプログラムを作ることが可能になります。

print(10) # 数値はクォーテーションで囲む必要はありません。
print(10 + 5) # 足している
print(5 - 2)  # 引いている
print(10 / 2)   # 割っている
print(10 % 5)   # あまりを求めている

# 優先順位の変更
# 通常は +と-よりも*や/の方が優先度が高いですが、()で囲むことで優先度を変えることができます。
print((20 - 5) // 3)  # 5 

では、上記のプログラムを実行してみましょう。
上から順に、

10
15
3
5.0
0

が出力されたことを確認出来れば大丈夫です。
次に、割算の出力結果が小数点という点に関して説明します。
Python2系であれば、例えば、10/2は5と言う結果に対して、
3系では5.0となります。
これは、2系では切り捨てているのに対して、3系は切り捨てていないためです。
3系で、2系と同じように切り捨てたい場合は、print(10//2)とすると出来ます。

文字列と数値の違い

さて、以下のコードを実行するとどうなるでしょう。

print(10 + 5)
print('10 + 5')

1行目のprint()では、15が出力され、2では10 + 5が出力されたでしょうか?
これは1では数値の足し算の結果がかえってきているのに対して、2では「10 + 5」という文字列になっています。
「’」や「”」で囲うと、文字列と解釈されそのまま「10 + 5」が出力されました。
プログラミングでは、文字列と数値は全く異なるものとして扱われます。
詳しくは次章、「変数とデータ型」で説明します。
ここでは、数字に対してダブルクォーテーション及びシングルクォーテーションで囲むと、文字列として扱われるということを知っていただければ問題ありません。

変数とは

変数とは、データ(値)を入れておく箱のようなものです。
変数(箱)には変数名(名前)を自由につけることができます。
値は、数値でも文字列でも入れることが出来ます。

name = "Tom" # 文字列。「'」で囲っても同じです。
age = 24 # 数値

ここで「=」が出てきました。
変数は「変数名 = 値」とすることで定義出来ます。
変数名はクォーテーション等で囲む必要はありません。
また、プログラミングの「=」は等しいという意味ではなく、「右辺を(ここではTomや24)、左辺に代入する」という意味です。
つまり、「=」は代入という意味です。
では少し応用です。
print関数と変数を組み合わせることで次のようなことができます。

name = "Tom"
print(name) # 変数nameを()に入れると、「Tom」が出力されます。

print("name") # 「name」という文字列が出力されます。

では、実行してみましょう。
print(name)とすると変数に入れた値が出力されていますが、
print(“name”)とした場合(クォーテーションで囲っている場合)
変数nameではなく、文字列として認識されてしまいますので注意が必要です。

先ほど、変数には自由に名前をつけることができると言いましたが、
少し守るルールがいくつかあります。
例えば、変数名の先頭は数字で書くことは許されていません。
数字で書いた場合、エラーになります。
また、「漢字」で変数を宣言することもできません。

まとめると、
1. a~zのアルファベット
2. 数字(先頭以外)
3. _(アンダースコア)

の3種類の文字だけ使うことができます。
http://www.lifewithpython.com/2013/02/rules-for-naming-identifiers-in-python.html

では、変数を使う理由は何でしょうか?
変数を使わなくてもプログラミングできます。
ですが、使うメリットとして、プログラムを読む時にそのデータの中身が何を表しているのか、明確になりコードが読みやすくなります。
また同じデータを繰り返し利用することができたり、プログラムを修正する時に
変更箇所が1箇所で済んだりメリットばかりですので変数を使いましょう。

変数は値を更新し上書きすることができます。

x = 10 # 変数xを定義
print(x) # 10が出力

x = 20 # xの値を10から20に上書き。
print(x) # 20が出力

プログラムは上から下まで実行されますので、
最初、変数xには10が代入されましたが、途中で20になっているので
上書きされて最後の行のprintでは20が出力されています。

変数の代入には、省略系があります。

x = x + 5 # x += 5と同じ
x = x - 5 # x -= 5と同じ
x = x * 5 # x *= 5と同じ
x = x / 5 # x /= 5と同じ
x = x % 5 # x %= 5と同じ

文字列の連結

Pythonプログラミングの世界では、四則演算の「+」による計算以外にも、文字列の連結も行うことができます。
文字列の連結は下記のようにします。

print("Hello" + "World") # +により文字列同士を連結 HelloWorldになる。

name = "Tom"
print("My name is " + name) # My name is Tomになる。

まとめ

この章ではPythonの最も基本的な文法と簡単に主要なデータ型(ここでは整数型と文字列型)に関して学びプログラミングに触れてきました。