みやまのアトリエ

スマホアプリ開発 プログラミング ペンタブ備忘録 お絵描き

大きな女児向けPython入門 4.プログラムの流れを変える

 すみません…漫画挫折しました…今回大きな女児向けに、みらリコでお送りいたします<m(_ _)m> 

 

前回はこちら

Python入門 3.リストの使い方 - みやまのアトリエ

f:id:M_Atelier:20180509223430p:plain

 

 今まで書いてきたプログラムは「上から順」に実行されるものばかりでした。

 

f:id:M_Atelier:20180509223445p:plain

 プログラムを作っていくうちに、「もし~なら処理をしたい」や、「何度も同じ処理をさせたい」と思うときがあります。今回は、それらプログラムの流れを変える方法を説明していきます。

f:id:M_Atelier:20180509223506p:plain

(1)if文 「もし~なら実行する」

 キュアミラクルは変身でリンクルストーン“ダイヤ”を使うと、「キュアミラクル」に変身します。プログラムは曖昧な言葉を理解してくれませんので、もう少し明確に書きます。
「もし、リンクルストーンがダイヤなら、キュアミラクルに変身する」
これをif文を使って、プログラムにします。

if文を書く時の基本ルールf:id:M_Atelier:20180509223539p:plain


 if文を使って書くと、次のプログラムになります。書いて、実行してみてください。

 

プログラム

stone = "diamond"
if (stone == "diamond"):
    print ("ダイヤスタイルに変身")

結果

ダイヤスタイルに変身

 

 1行目で、変数stoneにdiamond(ダイヤ)を代入しています。

f:id:M_Atelier:20180509224005p:plain

 2行目のif文では、変数stoneの中身がダイヤかどうかをチェックしています。「==」と書かれている部分は、==の左側の変数「stone」と右側の文字「diamond」を比較しています。この比較を、「条件文」と呼んでいます。「=」は一つではなく、2つなので注意してください。もし「リンクルストーン==ダイヤ」の条件文を満たせば、print文「ダイヤスタイルに変身」を実行します。f:id:M_Atelier:20180509224029p:plain

 これだけでは、ダイヤスタイルにしか変身できませんね。ダイヤスタイルの次に出てきた「ルビースタイル」もif文に追加してみましょう。「if ~elif~」文というものを用います。
「もし、リンクルストーンがダイヤなら、ダイヤスタイルに変身する。他にもし、リンクルストーンがルビーなら、ルビースタイルに変身する。」

 

プログラム

stone = "Ruby"
if (stone == "diamond"):
    print ("ダイヤスタイルに変身")
elif(stone == "Ruby"):
    print("ルビースタイルに変身")

実行結果

ルビースタイルに変身

 これで、ルビースタイルに変身することができました。1行目の変数stoneに代入する文字を“Ruby”に変更しておきましょう。そうしないと、Stoneがdiamondのままではダイヤスタイルに変身してしまいます。

 

 同じように、サファイヤ、トパーズの分も追加しましょう。最後の「else」はいずれの条件にも当てはまらなかった場合に実行されます。変数stoneには、自分の好きなスタイルを入れてください

プログラム

stone = ""
if (stone == "diamond"):
    print ("ダイヤスタイルに変身")
elif(stone == "Ruby"):
    print("ルビースタイルに変身")
elif(stone == "sapphire"):
    print("サファイアスタイルに変身")
elif(stone == "topaz"):
    print("トパーズスタイルに変身")
else:
    print("みらいのまま")

 

 if文は数字の比較をすることもできます。みらいちゃんは14話で数学のテスト26点を取り、赤点となりましたね。変数scoreに26点を入れ、条件if文を使って赤点にしましょう。

 

プログラム

score = 26
if (score <= 40):
    print ("みらいちゃん赤点。再試決定。")


実行結果

みらいちゃん赤点。再試決定。

 

f:id:M_Atelier:20180509224139p:plain

 このプログラムでは比較に「<=」を使いました。変数scoreが40と同じか、それより下回った場合に、if文の条件を満たし「みらいちゃん赤点。再試決定。」のprint文が実行されます。他にも、次のような記号があります。

 

比較のための記号

==:右と左が等しい
!=:右と左が等しくない
< :右の方が大きい
<=:右のほうが大きいか、左右が等しい
> :左の方が大きい
>=:左の方が大きいか、左右が等しい

 

練習問題
 このままでは、みらいちゃんにプリキュア禁止令が出されるかもしれません。無事85点を取ったみらいちゃんに花丸を渡すプログラムを完成させましょう。


プログラム

score = 85
if(score 40):
    print ("花丸!")
else:
    print ("みらいちゃん赤点。再試決定。")

 

MEMO 恋愛ゲームやアニメでよく聞く「フラグが立つ」
 攻略したいキャラのルートに入ることを、よく「フラグが立つ」と言いますね。この言葉、プログラミングの「if」が由来です。ifの条件を満たすことを、フラグが立つと言います。

 

for文「繰り返し実行させる」

「繰り返し実行」するfor文について説明します。

for文を書く時のの基本ルールf:id:M_Atelier:20180509223725p:plain

 次のプログラムを書いて実行してみてください。リスト変数precureに4人のプリキュアを入れておきました。for文を使って順番に取り出していくプログラムです。

プログラム

precure = ["ミラクル","マジカル","マリン","トゥインクル"]
for i in precure:
    print("キュア"+i)


実行結果

 for文の「i in precure」に注目してください。変数iには、リストの先頭である「ミラクル」が入り、for文の次の文「print("キュア"+i)」が実行されます。iにはミラクルが入っているので、「キュアミラクル」が取り出せます。

f:id:M_Atelier:20180509224211p:plain


 1回目のprint文が終了すると、変数「i」にはミラクルの代わりにマジカルが入り、print文が実行されます。「print("キュア"+i)」が実行されキュアマジカルが取り出せるようになります。
 同じように、マリン、トゥインクルと順次変数iに入り、リストの最後になるまで何度もprint文が繰り返されます。


以上です。次回は、「関数の活用」を勉強していきます。