ICON公式ブログ

ICON公式ブログ

静岡大学コンテンツ制作サークルICONの公式ブログです

【pythonではじめるゲームプログラミング 第1回】命令文、算術演算、変数、入出力

f:id:iconcreator:20210517025547p:plain


今回の記事はICONのpython勉強会の資料として書かれました。

ICONの ふれうと です。

さて、今回から本格的にpythonでのプログラミングについて学んでいきましょう。



前回の記事


Pythonの導入が済んでいない人は以下のページを先に見てみましょう。


iconcreator.hatenablog.com


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

28を自由に別の数字に変えて、結果が変わることを確かめてください。

ちなみに、プログラムを変更した場合、「上書き保存」をしないと実行結果に反映されないので注意してください。

(「上書き保存」は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を使って作りたいものを見つけ、どんどんプログラミングの世界の深みへハマっていってください。


番外編として、初学者のためのショートカットキーの紹介記事も用意しました。

一度読んでみてください。

iconcreator.hatenablog.com


第2回の記事はこちら!

iconcreator.hatenablog.com