はじめに
前回は、次のようなことを学びました。
- Pythonでゲームを開発する環境を用意
- Pygameの基本コード(まだ読めるようにはなっていない)
- Pythonの文法の基本の基本
今回は、Pythonの文法を掘り下げて、入門者が押さえておきたい最低限のルールを学んでいきます。Pythonの文法を全て紹介しているわけではないので注意してください。最低限のルールを押さえてから、さらに知識を増やすとよいでしょう。
まずは、どのような順番で学んでいくのかを示します。
単純な型 | 数値、テキスト、真偽値、None |
複数の値を格納する型 | リスト、タプル、辞書 |
条件分岐 | if、比較演算子、論理演算子 |
繰り返し処理 | リストとfor文、range()関数、while文、制御構文 |
関数 | 処理をまとめる(次回) |
モジュールとパッケージ | 処理を別のファイルに分ける(次回) |
今回は、単純な型から、繰り返し処理までを説明します。関数、モジュールとパッケージは、次回に説明します。
「型」という言葉が出てきましたが、プログラムで出てくる値には、それぞれ型と呼ばれる種類があります。型は、整数やテキストなどに分かれます。値の型はtype()
関数で調べることができます。123
、123.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モードのときは、行の先頭が>>>
に変わります。そして、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
真偽値はTrue
、False
のいずれかの値をとります。None型はNone
だけです。真偽値は論理型やbool型とも呼ばれます。
記号 | 読み | 意味 |
---|---|---|
True | トゥルー | 真、正しい |
False | フォルス | 偽、正しくない |
None | ナン | 値なし |
真偽値のTrue
やFalse
は、のちほど説明する条件分岐で利用します。