SHOEISHA iD

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

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

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

【作って学ぶPython】基本の文法を学んでコードを読み解けるようになろう!

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

  • このエントリーをはてなブックマークに追加

 自動化やAIなどさまざまな分野で活用され、需要が高いPython。この連載では、小さなレトロ風ゲームを作りながら、Pythonを学ぶことができます。タイトル、マップ、バトル画面だけのシンプルなRPGを作るための知識と技術を学ぶことで、Pythonの入門をしていきます。第2回は、Pythonの文法を掘り下げて、入門者が押さえておきたい最低限のルールを解説します。

  • このエントリーをはてなブックマークに追加

はじめに

 前回は、次のようなことを学びました。

  • Pythonでゲームを開発する環境を用意
  • Pygameの基本コード(まだ読めるようにはなっていない)
  • Pythonの文法の基本の基本

 今回は、Pythonの文法を掘り下げて、入門者が押さえておきたい最低限のルールを学んでいきます。Pythonの文法を全て紹介しているわけではないので注意してください。最低限のルールを押さえてから、さらに知識を増やすとよいでしょう。

 まずは、どのような順番で学んでいくのかを示します。

記事の流れ
単純な型 数値、テキスト、真偽値、None
複数の値を格納する型 リスト、タプル、辞書
条件分岐 if、比較演算子、論理演算子
繰り返し処理 リストとfor文、range()関数、while文、制御構文
関数 処理をまとめる(次回)
モジュールとパッケージ 処理を別のファイルに分ける(次回)

 今回は、単純な型から、繰り返し処理までを説明します。関数、モジュールとパッケージは、次回に説明します。

 「型」という言葉が出てきましたが、プログラムで出てくる値には、それぞれ型と呼ばれる種類があります。型は、整数やテキストなどに分かれます。値の型はtype()関数で調べることができます。123123.456"あいう"の型を調べてみます。

型を調べる
print(type(123))
print(type(123.456))
print(type("あいう"))
出力
<class 'int'>
<class 'float'>
<class 'str'>

 それぞれ<class 'int'>(整数)、<class 'float'>(浮動小数点数)、<class 'str'>(テキスト)と表示されます。

 文法の説明の前に、ターミナルで手軽にPythonのプログラムを試す方法を紹介しておきます。ターミナルでpythonとだけ書いて[Enter]キーを押すと、REPL(Read-Eval-Print Loop)に入ります。

REPL
REPL

 REPLモードのときは、行の先頭が>>> に変わります。そして、Pythonのプログラムを書いて[Enter]キーを押すと、即時に実行されます。簡単な文法の確認に便利なので活用してください。

 REPLモードでは、print()関数を使わなくても、式だけ書いて結果を表示できます。今回の説明では、ファイルに書いても実行できるようにprint()関数を書きます。

 Pythonの文法をさらに丁寧に学びたいときは、公式ドキュメントの「Python チュートリアル」も参考にしてください。少しボリュームが多いですが、詳しい内容がまとまっています。ある程度プログラミングに慣れた人向けですが、きっちりと学びたいときに有用です。スマートフォンでも読みやすいです。

単純な型

 まずは単純な型です。ここでは単純な型として、整数、浮動小数点数、テキスト、真偽値、Noneを紹介します。他にも型はありますが、これらを押さえておけば、まずはプログラムを書けます。

単純な型
種類 説明
整数 int 小数点の付かない数値
浮動小数点数 float 小数点の付く数値
テキスト str 0文字以上の文字、文字列とも
真偽値 bool True(真)かFalse(偽)のいずれかをとる値、論理値とも
None None 値なしを意味する特別な値

数値

 Pythonでは、整数や浮動小数点数が使えます。整数は小数点が付かない数値です。浮動少数点数は小数点が付く数値です。

整数と浮動小数点数
print(123)      # 整数
print(12.34)    # 浮動小数点数

 浮動小数点数は、ごくわずかですが誤差が生じます。この誤差は、10進数(10で桁が上がる数)を、コンピューター向けの2進数(2で桁が上がる数)で表現しているために生じます。

 分かりやすい例を示します。0.1 + 0.2は、0.3にはなりません。0.30000000000000004になります。

浮動小数点数の誤差の例
print(0.1 + 0.2)  # 「0.30000000000000004」と表示

 数値は足し算や引き算などの計算をおこなえます。いくつかの計算を示します。

数値の演算
print(5 + 2)    # 「7」と表示   足し算
print(5 - 2)    # 「3」と表示   引き算
print(5 * 2)    # 「10」と表示  掛け算
print(5 / 2)    # 「2.5」と表示 割り算(浮動少数点数)
print(5 // 2)   # 「2」と表示   割り算(整数)
print(5 % 2)    # 「1」と表示   剰余(割り算の余り)
print(5 ** 2)   # 「25」と表示  累乗(5の2乗)

 こうした演算子(計算の記号)には、計算と代入を同時におこなうものもあります。+=のように計算イコールと書くと、「左の変数に、右の値を計算する」という意味になります。

代入を伴う演算
num = 10
num += 1    # numに1を足す
print(num)  # 「11」と表示

num /= 2    # numを2で割る
print(num)  # 「5.5」と表示

 整数と浮動小数点数はそのまま足し算や引き算をおこなえます。その際、整数と浮動小数点数を足したり引いたりしたときは浮動小数点数になります。

 整数を浮動小数点数にするにはfloat()関数を使います。浮動小数点数を整数にするにはint()関数を使います。float()関数ややint()関数は、テキストの数を数値に変換するのにも使えます。

整数と浮動小数点数の変換
print(123 + 456.0)      # 「579.0」と表示(浮動小数点数になる)

print(float(123))       # 「123.0」と表示
print(int(123.456))     # 「123」と表示

print(float("1.3"), type(float("1.3"))) # 「1.3 <class 'float'>」と表示
print(int("123"), type(int("123")))     # 「123 <class 'int'>」と表示

テキスト

 "'で囲った領域はテキスト(文字列)になります。テキストの長さはlen()関数で得られます。数値のテキスト化はstr()関数でおこなえます。

テキスト
text = "あいうabc"
print(text, len(text))  # 「あいうabc 6」と表示

print(str(123), type(str(123))) # 「123 <class 'str'>」と表示

 テキストは+で連結できます。

テキストの連結
text = "あいう" + "abc"
print(text)     # 「あいうabc」と表示

 テキストはいくつかの方法で値や式を埋め込むこと(フォーマット)ができます。埋め込み方はいくつかあります。まずは最新の方法を紹介します。f"abc{~}def"のように、テキストの前にfを書き、テキストの中に{~}を書いての部分に値や式を埋め込めます。プログラムの例を示します。

フォーマット
num = 123
print(f"得点は{num}です")           # 「得点は123です」と表示
print(f"計算結果は{1 + 2}です")     # 「計算結果は3です」と表示

 他の方法も、例だけを書いておきます。これらは古い方法です。

古い方法
num = 123
print("得点は{}です".format(num))   # 「得点は123です」と表示
print("得点は%dです" % (num))       # 「得点は123です」と表示

真偽値とNone

 真偽値はTrueFalseのいずれかの値をとります。None型はNoneだけです。真偽値は論理型やbool型とも呼ばれます。

真偽値とNone
記号 読み 意味
True トゥルー 真、正しい
False フォルス 偽、正しくない
None ナン 値なし

 真偽値のTrueFalseは、のちほど説明する条件分岐で利用します。

会員登録無料すると、続きをお読みいただけます

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

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

メールバックナンバー

次のページ
複数の値を格納する型

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

  • このエントリーをはてなブックマークに追加
レトロ風ゲームを作って学ぶPython入門連載記事一覧
この記事の著者

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

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

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

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

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/19426 2024/05/13 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング