Pythonの文法1 - 基本を理解するための予備知識
まずはPythonの文法の基本の基本から説明します。全体を理解するための予備知識だと思ってください。
関数
関数とは、プログラムで何かをおこなうための命令です。関数名()と書くことで、その関数が処理をしてくれます。
また、関数名(値)と書くことで、その関数に処理で使う値を渡せます。この値を引数といいます。複数の値を送るときは、関数名(値1, 値2, 値3)のように,区切りで書きます。
また、関数を実行した結果の値を得られることがあります。たとえば数値を足す関数なら、足し算の結果です。関数の結果の値のことを戻り値といいます。
どんな処理をしてくれるか、どんな値を渡せるか、どんな値を返すかは、関数によって決まっています。
"hello world"というテキストを、ターミナルに表示する例を示します。print()関数は、print(~)と書くことで、~の部分をターミナルに出力します。また、Pythonではテキストを"や'で囲います。
print("hello world")
print(~)の~のところには、テキスト以外にも、さまざまな情報を書くことができます。Pythonでプログラムを書いているときには、値の確認のためにprint()関数をよく使います。
複数の情報を表示させたいときは,で区切ります。次のように書いて実行すると、ターミナルに「hello world プログラム」と表示されます。
print("hello world", "プログラム")
もう一つ、戻り値を返す例としてlen()関数を紹介します。引数の文字の長さを返す関数です。
len()関数は、len(~)と書くことで、~の部分の値の長さを得ます、次のように書いて実行すると、ターミナルに「11」と表示します。11という数字は「hello world」の文字数です。半角スペースも1文字と数えます。
print(len("hello world"))
これまでの内容を図でまとめます。
プログラムの処理の順番
プログラムは、上の行から順番に処理していきます。次のようなプログラムがあった場合、1行目が処理され、次に2行目が処理され、そのあとに3行目が処理されます。その結果「1行目だよ」「2行目だよ」「3行目だよ」と1行ずつターミナルに表示されます。
print("1行目だよ")
print("2行目だよ")
print("3行目だよ")
1行目だよ 2行目だよ 3行目だよ
コメント
プログラムの中には「プログラムとして処理しない部分」を作ることができます。この部分をコメントと呼びます。コメントには、プログラムの説明や見出しなどを書きます。
コメントは、各行で#と書いたあとの右側全体になります。VSCodeなどのコードエディターでは、色が変わるので分かりやすいです。
# ここはコメント
print("プログラム") # ここもコメント
インデント
Pythonではインデントは意味を持ちます。Pythonでは、プログラムのグループ(まとまり)をインデントで表します。これから出てくる条件分岐や繰り返し、関数の定義では、処理のまとまりをインデントで表します。そのため、インデントの位置は、きれいにそろえる必要があります。
グループ外
グループを作る構文
グループ開始
グループ中
グループ中
グループ終了
グループ外
グループ中でインデントが解除されていても、他の処理がなければグループは継続していると見なされます。そのため、処理の見た目を整えるために空行を入れることができます。
グループを作る構文
グループ開始
グループ中
グループ中
グループ終了
グループは入れ子になることもあります。このときは、入れ子のグループが解除された時点で、前のグループに戻ります。
グループを作る構文
グループ1開始
グループ1中
グループを作る構文
グループ2開始
グループ2中
グループ2終了
グループ1中
グループ1終了
グループを作る構文には、if、for、while、defなどがあります。
VSCodeで[Tab]キーを押すと、半角スペース4つでインデントがおこなわれます。また[Shift+Tab]キーを押すと、インデントが1つ解除されます。Pythonでは一般的に、半角スペース4つでインデントの1階層を作ります。
半角スペースを・で模式的に表した例を示します。
グループを作る構文 ・・・・グループ1開始 ・・・・グループ1中 ・・・・グループを作る構文 ・・・・・・・・グループ2開始 ・・・・・・・・グループ2中 ・・・・・・・・グループ2終了 ・・・・グループ1中 ・・・・グループ1終了
変数
変数は値につけた名前です。変数は、持ち物に貼り付ける名前ラベルのようなものです。
たとえば円周率の3.14159という数値をpiで表します。こうすると式や処理が分かりやすくなります。2 × 3.14159よりも、2 × piの方が意味を理解しやすいです。
変数と値を対応付けることを代入と呼びます。変数 = 値と書くことで、変数に値を代入できます。さきほどの円周率の例ならpi = 3.14159と書きます。また、変数の名前のことを変数名といいます。
変数に値を代入して利用する例を示します。
text = "hello world" print(text)
変数textにテキスト"hello world"を代入して、print(text)と利用しています。このプログラムを実行すると、変数textに入っている値"hello world"がprint()関数で利用されます。ターミナルには「hello world」と表示されます。
変数は、最初に値を代入したときに定義されます。定義する前に利用することはできません。先ほどのプログラムの前後を入れ替えた次のようなプログラムは、エラーになります。
print(text) text = "hello world"
変数は、定義したあとに新しい値を代入することもできます。次の例では、ターミナルには「good morning」と表示されます。
text = "hello world" text = "good morning" print(text)
代入をおこなう記号=の右側には、式を書いたり変数を書いたりすることができます。次の例ではターミナルに「579」と表示されます。
num = 123 + 456 print(num)
次の例ではターミナルに「123」と表示されます。
num1 = 123 num2 = num1 print(num2)
インポート
Pythonには標準ライブラリと呼ばれるものがあります。たとえばosモジュールは、OS依存の機能を利用するためのものです。randomモジュールは、ランダムな値を得るためのものです。また、mathモジュールという数学的な計算をするためのものもあります。
こうした標準ライブラリはimport文で呼び出せます。呼び出したモジュールは、モジュール名.関数名()のように.区切りで書くことで機能を利用できます。
次のプログラムは、osモジュールを読み込み、カレント ワーキング ディレクトリをターミナルに表示するものです。
import os cwd = os.getcwd() print(cwd)
次のプログラムは、mathモジュールの円周率をターミナルに表示するものです。「3.141592653589793」と表示されます。
import math print(math.pi)
また、pipでインストールしたパッケージもimport文で利用できます。Pygameの基本コードの冒頭部分を掲載します。
import pygame # Pygameをインポート pygame.init() # Pygameを初期化
import pygameでPygameをインポートして、pygame.init()で関数を実行してPygameを初期化します。
# Pygameをインポート、# Pygameを初期化の部分はコメントなので、プログラム実行時には無視されます。複数のモジュールをまとめて読み込むときには、,で区切ります。
import os, math, pygame
import文には、他にもいくつかの使い方があるのですが、それはのちほど説明します。
まとめと次回
Pythonの基本の基本は完了です。これまで学んできたことで、プログラムの一部が読めるようになりました。それでは次回、Pythonの文法をもう少し詳しく見ていきましょう。

