SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

レトロ風ゲームを作って学ぶPython入門

【作って学ぶPython】特長を理解してプログラムを書くための準備をしよう!

レトロ風ゲームを作って学ぶPython入門 第1回

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終了

 グループを作る構文には、ifforwhiledefなどがあります。

 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の基本コードの冒頭部分を掲載します。

▶ Pygameの基本コードの冒頭部分
import pygame   # Pygameをインポート

pygame.init()   # Pygameを初期化

 import pygameでPygameをインポートして、pygame.init()で関数を実行してPygameを初期化します。

 # Pygameをインポート# Pygameを初期化の部分はコメントなので、プログラム実行時には無視されます。複数のモジュールをまとめて読み込むときには、,で区切ります。

▶ 複数のモジュールを読み込み
import os, math, pygame

 import文には、他にもいくつかの使い方があるのですが、それはのちほど説明します。

まとめと次回

 Pythonの基本の基本は完了です。これまで学んできたことで、プログラムの一部が読めるようになりました。それでは次回、Pythonの文法をもう少し詳しく見ていきましょう。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
レトロ風ゲームを作って学ぶPython入門連載記事一覧

もっと読む

この記事の著者

柳井 政和(ヤナイ マサカズ)

クロノス・クラウン合同会社 代表社員http://crocro.com/オンラインソフトを多数公開。プログラムを書いたり、ゲームを作ったり、記事を執筆したり、マンガを描いたり、小説を書いたりしています。「めもりーくりーなー」でオンラインソフト大賞に入賞。最近は、小説家デビューして小説も書いています(『裏切りのプログラム』他)。面白いことなら何でもOKのさすらいの企画屋です。 

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/19358 2024/04/22 11:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー