プログラミングの世界で、Pythonが利用されるケースは年々増えており、今後も増えてくと予想されています。
しかし、プログラミング言語やPythonについて調べてみると、難しい単語が並んでいてよく分かりませんよね。
そこで、ここでは「そもそもPythonって何?」「Pythonにはどんな特徴があるの?」「Pythonの基本的な書き方が知りたい!」という方向けに、Pythonを一から理解するための特徴や基本を解説します。
YouTubeも公開していますので、動画や音声で聞きたい方はぜひご覧ください。
Pythonの特徴
では、まずPythonの特徴を見ていきましょう。
特徴1.機械学習分野に強い
Pythonは機械学習の分野に強みを持っています。
機械学習とは、コンピュータに沢山の情報を覚えてもらい、コンピュータ自身が識別や予測をできるようにすることです。
スマートフォンの顔認識システムや、投資の予測システムなどが一例です。
Pythonには機械学習させるためのツールが豊富に揃っており、Pythonで機械学習を学ぶための本が書店に沢山並んでいます。
特徴2.Web開発にも強い
Pythonは機械学習をさせるのに適していますが、それだけではありません。
Django(ジャンゴ)やbottle、FlaskなどのWeb開発フレームワークがあります。
フレームワークとは、WebサイトやWebアプリを作るときに便利な「ひな形」「枠組み」のことです。フレームワークを上手に使うことで、WebサイトやWebアプリケーションも効率よく開発できます。
Pythonの基本の書き方
ここからは実際にPythonを書いて、基本を理解していきましょう。
文字の出力
まずは文字を出力してみましょう。文字の出力には「print」を使用します。
print("Hello Python World!");
[出力結果]
Hello Python World!
printの丸括弧の中に出力したい文字を入力し、「”(ダブルクォーテーション)」または「’(シングルクォーテーション)」で囲みます。
また、文末の「;(セミコロン)」は省略できますので、セミコロンは省略して書くことが多いです。
print("Hello Python World!")
printは複数行書くと、自動的に改行してくれます。
print("Hello")
print("Python")
print("World!")
[出力結果]
Hello
Python
World!
コメント
コメントはプログラムに注釈を入れたり、一時的にプログラムをコメントにして動作させないよう(コメントアウトと言います)にするために使います。
コメントは「#(シャープ)」の後ろに続けて書きます。
#これはコメントです。
print("Hello Python World!") #行の途中からでもコメントできます。
#コメントアウトすると、プログラムが結果に出力されなくなります。
#print(“コメントアウト”)
[出力結果]
Hello Python World!
コメント部分の文字やコードは結果に出力されません。
コードの意味を説明するコメントは極力控えるべきですが、どうしても分かりにくくなってしまう場合は、コメントを使って説明文を書きます。
また、複数行のコメントはダブルクォーテーション3つ「”””」またはシングルクォーテーション3つ「’’’」で、コメントしたい行を囲みます。
print("Hello")
"""
print("Python")
print("World!")
"""
[出力結果]
Hello
ダブルクォーテーションで囲った文字が、結果に出力されていないのがわかります。
ダブルクオーテーションまたはシングルクオーテーションで囲む場合、 #の場合とは違い、Pythonの処理上では「コメント」として処理が行われず、文字列として扱われます。
そのため、Google Colaboratoryなどで、実行すると以下のように表示されます。
print("Hello")
"""
print("Python")
print("World!")
"""
[出力結果]
Hello
'\nprint("Python")\nprint("World!")\n'
使う際は少し気を付けてください。
文字列
文字列とは、シングルクォーテーション、またはダブルクォーテーションで囲った文字の集まり、または文章のことを指します。
先ほどの「”Hello Python World!”」は文字列です。文字列は、「+(プラス)」を使うことで連結できます。これを「文字列連結」と呼びます。
文字列連結を試してみましょう。
print("Hello " + "Python " + "World!")
[出力結果]
Hello Python World!
“Hello ”と”Python ”と”World!”の3つの文字列を、「+」で連結し、print()で出力しています。
四則演算
Pythonの四則演算は次の4つです。
演算子 | 例 | 説明 |
---|---|---|
+(プラス) | 6 + 2 | 足し算 |
-(マイナス) | 6 - 2 | 引き算 |
*(アスタリスク) | 6 * 2 | 掛け算 |
/(スラッシュ) | 6 / 2 | 割り算 |
実際に使って結果を見てみましょう。
print内では、四則演算をそのまま使えます。
print(6 + 2)
print(6 - 2)
print(6 * 2)
print(6 / 2)
[出力結果]
8
4
12
3.0
それぞれの四則演算の結果が表示されます。
また、割り算だけは標準で小数点以下まで出力されます。
変数
変数とは、文字や数字を格納したり、取り出したりできる、データを入れておく「箱」のことです。
変数はこのように使います。
a = 6 #変数aに6を入れる
b = 2 #変数bに2を入れる
total = a + b #変数totalにa + bの結果を入れる
print(total)
[出力結果]
8
変数aと変数bの結果を変数totalに入れ、printで出力しています。
変数名の付け方
変数名は単語の区切りに大文字を使う場合とアンダーバーを使う場合があります。
例えば自分の名前を扱う文字列であれば、「myName」や「my_name」という変数名を使うことが多いです。
Pythonでは変数名は全て小文字 + アンダーバーを使うのが慣例なので、この場合は「my_name」を使うと良いでしょう(この変数名の付け方を「スネークケースと呼びます」)。
補足ですが、変数名にはひらがなや漢字を使うこともできますが、あまり一般的ではありません。
変数名は1文字目に数字が使えません。
また、「+」「-」「/」「%」「(」「{」「#」などの記号を使うとエラーになります。
100yen = 100 #1文字目が数字なのでエラーになる
print(100yen)
[出力結果]
SyntaxError: invalid syntax
変数はデータを入れる箱であると同時に、そのデータに名前をつけるという意味でも役に立ちます。
例えば、100 * 3 という式は何を示しているかわかりませんが、こうすることで何を計算しているかがわかります。
apple = 100
kazu = 3
print(apple * kazu)
[出力結果]
300
変数にappleやkazuという名前をつけることで、「りんご3個の合計金額」を求めているのがわかります。
関数
関数とは、よく利用する処理に名前をつけたものです。
例えば、max()という関数は、複数の数値から最大の数値を見つけて、その数値を返してくれます。
max_number = max(8, 3, 9)
print(max_number)
[出力結果]
9
また、round()関数は、数値を整数に四捨五入する関数です。
a = round(3.51)
print(a)
[出力結果]
4
このように、関数は何らかのデータを渡すことで、データを処理し、決まった結果を返してくれます。
また、関数は自分で作ることもできます。
ここでは簡単に、2つの数字を渡して、その合計値を返してくれる関数を作ってみましょう。
def sum(a, b): #sumという関数を作成
return a + b
print(sum(2, 3))
[出力結果]
5
まず1〜2行目でsum関数を作っています。
2つのデータ(引数と言います)を受け取り、足し算した結果を返しています。
4行目ではそのsum関数を呼び出しています。
2と3を渡しているので、結果は5になりました。
メソッド
メソッドは関数と同じく、引数を受け取って結果を返す処理のかたまりです。
ですが、使い方に少しだけ違いがあるので、メソッドという別の呼び方になっています。
メソッドは次のように使います。
s = "Hello Python World!"
s_upper = s.upper() #upperメソッド
print(s_upper)
[出力結果]
HELLO PYTHON WORLD!
2行目で使っているupper()は、変数sの文字列を大文字にするメソッドです。
変数sとupper()は「.(ドット)」で繋げています。
このように、「変数の後ろに付けて呼び出す」のがメソッドの特徴です。
条件分岐(if)
条件分岐とは、「AならB、それ以外ならC」のように、Aの条件に応じて、コンピュータにやってもらうことを分岐させることです。
条件分岐には「if」を使います。
a = 2
if a == 2: #もしaが2なら
a = 0
print(a)
[出力結果]
0
上記のコードでは、初めに変数aに2を入れています。
その後if文で「もし変数aが2なら、aに0を入れ直す」処理をしています。変数aには2が入っているので、aに0を入れ直します。最後にprint()でaを出力しています。
2行目の「==」は、イコールの意味です。
Pythonでは「=」一つは変数にデータを入れるための「代入」を意味します。算数や数学で使う「=」は、Pythonでは「==」で表現します。
また、a = 0の行が右に寄っているのは「インデント」です。Pythonにおけるインデントの意味は後述します。
上述した条件分岐は「AならB」までしかできていません。
さらに「それ以外ならC」の部分を追加してみましょう。
a = 3 #3に変更
if a == 2:
a = 0
else: #追加
a = 4 #追加
print(a)
[出力結果]
4
上記は「もし変数aが2なら0を入れ直す、それ以外なら4を入れ直す」コードです。
今回変数aは2ではないので、「else」以下のa = 4が動きます。
リスト
リストとは、複数のデータを一つの変数でまとめたいときに使うデータ群です。
リストは次のように作ります。
list = ["apple", "orange", "banana"]
print(list)
[出力結果]
['apple', 'orange', 'banana']
[]の中にカンマで区切ったデータを入れていきます。
リストにはどんな数字や文字列など、どんなデータでも入れることができ、同じデータを入れても問題ありません。
list = ["apple", 2, 1.5, "apple"]
リストには変数を入れることもできます。
a = 1
b = 2
c = 3
list = [a, b, c]
print(list)
[出力結果]
[1, 2, 3]
リストに入っているデータを使いたい場合は、その使いたいデータのインデックス番号を指定します。
インデックス番号は先頭から0,1,2,3…と自動的に割り振られます。
実際にやってみましょう。
list = ["apple", "orange", "banana"]
print(list[0]) #インデックスが0のデータを呼ぶ
print(list[1])
print(list[2])
[出力結果]
apple
orange
banana
変数listの[]の中にインデックス番号を入れて、リスト内のデータをprint()で出力しています。
また、インデックス番号を指定することで、リスト内のデータを変更することもできます。
list = ["apple", "orange", "banana"]
print(list)
list[1] = "grape" #オレンジをぶどうに変更
print(list)
[出力結果]
['apple', 'orange', 'banana']
['apple', 'grape', 'banana']
繰り返し(for)
繰り返し処理とは「指定した回数同じ処理を繰り返す」ことです。
繰り返しは主に「for」とリストを使います。
list = [0, 1, 2]
for i in list:
print(i)
[出力結果]
0
1
2
上記は、「リスト内のデータを全て出力する」プログラムです。
変数iは0→1→2と、繰り返しを重ねるごとに中身が変わっています。
これは、変数listの中のデータを、繰り返すたびに先頭から変数iに格納しているからです。
上記の例なら、range()を使うことで同じことができます。
for i in range(3):
print(i)
繰り返し処理は、リスト内のデータを順番に操作していくことが得意です。
例えば、リスト内の全てのデータの合計値を求める、といった使い方ができます。
list = [2, 8, 3, 3, 9, -2, 6, 2, -9, 8]
total = 0
for i in list:
total = total + i
print(total)
[出力結果]
30
インデント
インデントとは、行頭に文字を入れ、字下げすることです。
Pythonでは「同じ数の空白でインデントされている行を一つのブロック」とみなします。
少し難しいので、まずは例を見てみましょう。
a = 1 #aに1を入れる
b = 1 #bに1を入れる
if a == b: #aとbは同じ数字か?
print("同じ数字です") #インデントする
print("a = b") #インデントする
else:
print("異なる数字です") #インデントする
print("a != b") #インデントする
[出力結果]
同じ数字です
a = b
aとbは変数と呼ばれるものです。
変数は数字や文字などを入れておける箱のようなものだと考えてください。if a == bは「変数aと変数bは同じ数字か?」を聞いています。同じだった場合はそのすぐ下のコードが、異なる場合は「else:」と書かれた後のコードが実行されます。
今回はaとbは同じ「1」が入っているので、ifのすぐ下のprintが実行されます。
ifのすぐ下のコードはインデントされています。同じ数の空白でインデントされているので、一つのブロックとみなされています。
インデントがちゃんとできてないとエラーになってしまうので、必ずインデントしましょう。
a = 1
b = 1
if a == b:
print("同じ数字です") #インデントしてない!
print("a = b") #インデントしてない!
else:
print("異なる数字です")
print("a != b")
[出力結果]
IndentationError: expected an indented block
上記のようにエラーになります。
以上が、Pythonの基本的な使い方になります。関数や条件分岐などのさらに詳しい使い方は別記事にしておりますので、ぜひご覧ください。