今回はpythonのif文についての説明をし、後半ではif文を使った簡単なじゃんけんゲームを作って条件分岐の感覚を身に着けていきましょう。
if文の基本的な記述方法
まず、if文の基本をおさえてしまいましょう。知ってる人は飛ばしちゃっても大丈夫です。
まず、if文とは条件式が成り立つ(真)時にプログラムをすることができる条件分岐の式です。
また、条件式が成り立たない(偽)場合の処理を記述したelse文と合わせてif else文などと呼ばれています。
以下に簡単な例を示します。
>>>a = 1 >>>if a > 0 : ... print('正の数') ...else: ... print('正の数じゃない') 正の数
上で書いたように、基本的には
if 条件式:
条件式が真の場合の処理
else:
それ以外の場合の処理
という形で記します。条件式はかっこでくくってもいいです。
上のコードではa=1なので、条件式が成り立ちif文の中が実行されます。
また、条件式をもっと複雑にしたい場合もあると思います。こんな時は、elif文を使ってください。
以下に例を挙げます。
>>>a = 0 >>>if a > 0 : ... print('正の数') ...elif a = 0: ... print('0') ...else: ... print('負の数') 0
この場合、まずif文の条件式の部分が見られ、成り立たない場合にはelif文の条件式の部分が見られます。
それでも成り立たない場合は最後にelse文の中身が実行されます。
elif文がいくらでも増やしていくことができます。
もっと条件を複雑に分岐させたい場合はif文の中にif文を入れるなど、入れ子構造にしていくことができます。
この例はじゃんけんゲームを作る際に示していきます。
実際にif文だけでじゃんけんゲームを作っていこう
それでは簡単なじゃんけんゲームを作っていきましょう。
以下でまず、コードを示します。
import random print("番号を入力してください") print("[1.グー 2.チョキ 3.パー]") a = input("番号:") b = int(a) c = random.randint(1,3) if b==1: if c==1: print("コンピュータ:グー 結果:あいこ") elif c==2: print("コンピュータ:チョキ 結果:勝ち") else: print("コンピュータ:パー 結果:負け") elif b==2: if c==1: print("コンピュータ:グー 結果:負け") elif c==2: print("コンピュータ:チョキ 結果:あいこ") else: print("コンピュータ:パー 結果:勝ち") elif b==3: if c==1: print("コンピュータ:グー 結果:勝ち") elif c==2: print("コンピュータ:チョキ 結果:負け") else: print("コンピュータ:パー 結果:あいこ") else: print("1から3の整数を入力してください")
少し条件分岐の数が多いですが、1つずつ見ていけば理解できます。
その前にif文の前の部分を見ていきましょう。
1行目では、外部からrandomというモジュールをインポートしています。
これはコンピュータにランダムでグーチョキパーを出させるためです。
使い方はrandomモジュールの中のrandint()関数の引数(かっこの中)に整数aとbを指定すると、a以上b以下の整数を完全にランダムで取り出してくれます。
上の6行目ではrandint(1,3)となっているので、1以上3以下の整数を完全にランダムで取り出して、変数cに代入しています。
そして、このじゃんけんでは1をグー、2をチョキ、3をパーに対応付けていきます。
次に、4目と5行目を見ていきましょう。
ここでは私達の入力(じゃんけんで出す手)を決めます。
input()関数は私達からの入力を受け取ってくれる関数です。
しかし、input関数は文字列を返すので5行目のようにint型に直してbに代入しています。
これで準備ができました。それでは条件分岐の部分を見ていきましょう。
少しでも分かりやすくなるように図を書いてみました。コードと見比べてみてください。
まずは1番外側(図では1番左側)の条件分岐を見てください。
bの値、つまり私達が入力した値によって場合分けをしています。
b = 1(グー)、b = 2(チョキ)、b = 3(パー)をそれぞれif、elif、elifで分岐して最後にelseでどの数値にも当てはまらない場合の処理(「1から3の整数を入力してください」の出力)を実行します。
それでは内側(図では右側)の条件分岐について見ていきましょう。
b = 1(グー)の場合、中の処理を見るとif、elif、elseで3つの条件に分岐します。
これは分かると思いますが、私達がグーを出した場合でもコンピュータが出す手によってあいこ、勝ち、負けの3種類の結果があるからです。
b = 2、b = 3の場合も同じです。
上のプログラムを実行し、1から3の整数を入力すると、コンピュータが出した手とじゃんけんの結果が表示されるはずです。
是非試してみてください。
pythonのじゃんけんゲーム:まとめ
今回はif文を使って、簡単ではありましたがじゃんけんゲームを作っていきました。
if文を入れ子のように上手く使えば、少し複雑な条件分岐もできることが実感できたはずです。
じゃんけんゲームの方は、実際に繰り返し処理などを使って、あいこの場合にじゃんけんを続行したりすればよりじゃんけんっぽいものにできると思うので是非作ってみてください。
「じゃんけんとかじゃなくてもっと手の込んだゲームを作りたい!」みたいな方はこちらの記事を参考にしてください。
今後も定期的にプログラミング系の記事を発信していくので、興味のある人はブックマークして見にきてくれると嬉しいです!!