【pythonではじめるゲームプログラミング 第1回】命令文、算術演算、変数、入出力
今回の記事はICONのpython勉強会の資料として書かれました。
ICONの ふれうと です。
さて、今回から本格的にpythonでのプログラミングについて学んでいきましょう。
前回の記事
Pythonの導入が済んでいない人は以下のページを先に見てみましょう。
Step 1-1 プログラムの作成
シンプルなプログラムを一つ作ってみましょう。
エディタ(atom)を立ち上げ、以下のコードを書いてみましょう。
書き終えたら、デスクトップ上の「ICONPythonLesson」というフォルダに
「hello.py」というファイル名で保存してください。
print("Hello World") print(1 + 2)
ファイルが保存出来たら、コマンドプロンプトを立ち上げ、
実際にプログラムを動かしてみましょう。
コマンドプロンプトに以下のコマンドを打ち込んでください。
cd Desktop/ICONPythonLesson
python hello.py
コマンドプロンプトに以下のように表示されれば、成功です。
Hello world
3
Step 1-2 命令文
それでは、Step 1-1で作成したpythonプログラムの内容を見てみましょう。
python
print("Hello World")
print(1 + 2)
print()
とは()
の中を出力する命令文(命令関数)です。
ここでのprint("Hello World")
とはHello world
という文字列を出力しろ、という意味になります。
Hello world
が""
で囲まれているのは、文字列を表すときは""
で囲むのがpythonのルールだからです。
次のprint(1 + 2)
は1 + 2
を出力しろという意味になります。
1 + 2
は計算されて3
が出力されます。
では、1 + 2
自体を出力したい時はどうするべきでしょうか。
文字列を表すときは""
で囲むのがpythonのルールですので、
print("1 + 2")
と書くことになります。
先ほどのプログラムに追加してみましょう。
print("Hello World") print(1 + 2) print("1 + 2")
そしたら、コマンドプロンプトを起動して、
cd Desktop/ICONPythonLesson
python hello.py
と入力しましょう。
先ほどからコマンドプロンプトを開いたままだった場合、
カレントディレクトリが既にICONPythonLessonですので、
python hello.py
と入力するだけでOKです。
以下のように表示されれば、成功です。
Hello world 3 1 + 2
Step 1-3 算術演算
pythonのプログラムでは四則演算をすることも出来ます。
先ほどのプログラムを以下のように改訂してみましょう。
#print("Hello World") #print(1 + 2) #print("1 + 2") print(5 + 2) print(5 - 2) print(5 * 2) print(5 / 2) print(5 // 2) print(5 % 2) print(5 ** 2)
まず、始めの三行の冒頭に#
をつけましょう。
#
をつけることで、その後ろはプログラムとして機能しなくなります。
プログラムの中にメモ書きを入れたい時などに使います。
そして、一行空けて(ここで一行空けているのは見やすくするためです。)
7つのprint()
命令を書いていきましょう。
+
は加算、-
は減算、*
は乗算、/
は除算、//
は除算の端数切捨て、%
は余りの計算、**
は累乗を行います
書けたら、コマンドプロンプトで実行してみましょう。
7 3 10 2.5 2 1 25
このように表示されれば、成功です。
+
や-
などは算術演算子と呼ばれます。
Step 1-4 変数
続いては、変数を学んでいきましょう。
先ほどのプログラムでは、数字の2と5を用いて、様々な計算をしました。
このプログラムでは、他の数字で計算しようと思った時、14箇所書き換える必要があります。
これをどうにか簡単にできないかという考えが「変数」です。
基本的な使い方は数学における変数に似ています。以下のようなプログラムを新たに書いてみましょう。
(エディタ「atom」を使っているようでしたら、上部の「file」→「create new file」か、CtrlキーとNキーを同時に押すことで、新しいファイルを作成できます。)
ファイル名は「variables.py」で保存してください。
x = 2 y = 8 print(x + y) print(x - y) print(x * y) print(x / y) print(x // y) print(x % y) print(x ** y)
作成出来たら、コマンドプロンプトで実行してみてください。
コマンドは、同様に
python variables.py
です。
10 -6 16 0.25 0 2 256
以上のように表示されれば成功です。
x = 2 x = 8
の2
や8
を自由に別の数字に変えて、結果が変わることを確かめてください。
ちなみに、プログラムを変更した場合、「上書き保存」をしないと実行結果に反映されないので注意してください。
(「上書き保存」はCtrl + Sキーですぐできます。)
変数の注意点は
x = 2 y = 8
に関して、
数学において=
は左辺と右辺が等しいことを示しますが、
プログラミングにおいては、左辺に右辺を「代入」するという意味になります。
なので、
x = 3 x = 10 print(x)
といったプログラムを作ると、表示されるのは
10
になります。
はじめにx
に3が代入されますが、次に10が代入されx
の値が上書きされます。
なのでx
の出力としては10になります。
変数の型
先ほどのプログラムを以下のように少し改造してみましょう。
x = "2" y = "8" print(x + y) print(x - y) print(x * y) print(x / y) print(x // y) print(x % y) print(x ** y)
できたら、実行してみましょう
以下のようなエラーメッセージが表示されると思います。
28 Traceback (most recent call last): File "variables.py", line 5, in <module> print(x - y) TypeError: unsupported operand type(s) for -: 'str' and 'str'
このエラーメッセージは、二つの部分に分けられます。
28
と
Traceback (most recent call last): File "variables.py", line 5, in <module> print(x - y) TypeError: unsupported operand type(s) for -: 'str' and 'str'
です。
まず28
は本来10
と表示されて欲しいものが、予想と異なって表示されています。
次に、エラーメッセージです。
TypeError: unsupported operand type(s) for -: 'str' and 'str'
を意訳すると
型エラー: str型は減算できません
となります。
なぜ、こういったことが起こるかというと、
"2"
や"8"
といったように、""
(ダブルクオーテーション)で囲むことによって、2と8が文字列として扱われてしまっているからです。
このように、変数に入っている値によって、変数の種類が規定されます。
これを変数の「型」と言います。
よって、print(x + y)
は、文字列型である"2"
と"8"
をつなげて、28
を出力し、
print(x - y)
はエラーメッセージを表示したのです。
pythonで扱われる基本的な型を挙げます。
型の名称 | 扱う値 | 備考 |
---|---|---|
int型 | 整数 | 他言語ではlong型などもある。 |
float型 | 小数 | 厳密には浮動小数点数。他言語のdoble型に相当。 |
str型 | 文字列 | 他言語ではchar型(文字)もある。 |
bool型 | 真偽値 | TrueあるいはFalse |
Step 1-5 入出力
先ほど、プログラムの数字を変更して、様々な数値での四則演算を確かめてみたと思います。
しかし、「プログラムを変更して、保存して、コマンドプロンプトで実行する。」、このルーチンを繰り返すのは少々めんどくさかったのではないでしょうか?
これをコマンドプロンプトのみで行う方法があります!
「variables.py」を以下のように変更してみましょう。
x = input() y = input() print(x + y) print(x - y) print(x * y) print(x / y) print(x // y) print(x % y) print(x ** y)
このプログラムのinput()
とは、本日二つ目の命令文!
input()
にはコマンドプロンプトで入力された値が入ります。
早速コマンドプロンプトで実行してみましょう。
試しに「11」と「3」を入力してみます。
python variables.py 11 3
という感じですね。
おや?
113 Traceback (most recent call last): File "variables.py", line 5, in <module> print(x - y) TypeError: unsupported operand type(s) for -: 'str' and 'str'
エラーメッセージが出ましたね。
これは先ほどのエラーメッセージと同じです。
input()
は入力を文字列(str型)として受け取るので、str型の減算ができないとエラーメッセージが出たわけですね。
これを解決する方法があります。
「型キャスト」と呼ばれる方法です。
プログラムを以下のように改変しましょう。
x = int(input()) y = int(input()) print(x + y) print(x - y) print(x * y) print(x / y) print(x // y) print(x % y) print(x ** y)
先ほどの表で、int型が整数であるということは示したと思います。
int()
は()
に入力された値をint型(整数)に変換してくれます。(可能であればですが)
同様のものにstr()
などもあります。
さっそく実行してみましょう。
11 3 14 8 33 3.6666666666666665 3 2 1331
今度は成功しましたね。
以上のように表示されていれば成功です。
こうすることによって、
「コマンドプロンプトでプログラムを実行→数値を入力→結果」と
数値を変えたプログラムの実行が平易になりました。
終わりに
今回で、pythonでのプログラム、最初の一歩を踏み出しました。
これから、pythonを使って作りたいものを見つけ、どんどんプログラミングの世界の深みへハマっていってください。
番外編として、初学者のためのショートカットキーの紹介記事も用意しました。
一度読んでみてください。
第2回の記事はこちら!