本シリーズでは、Ren'Pyユーザーが知っておきたいPythonの使い方をご紹介しています。
詳細および事前準備などは「00.はじめに」をご確認ください。
今回は「条件式」について説明します。好感度による分岐など、ビジュアルノベルでも出番の多い要素です。次回説明する「条件分岐(if文)」でも重要となる内容なのでしっかりマスターしてください。
準備
Ren'Pyのプロジェクトを1つ起動し、「Shift + O」を押してコンソールを開いておいてください。
まずは体験してみる
今回の内容は、慣れるまではなかなかピンとこないかもしれません。
何はともあれ、まずは"体験"してみましょう。
次の1行をコンソールに入力してエンターを押してみてください
(真ん中は「=」2つです)。
1 == 1
何か結果が表示されませんでしたか?
「True」と表示されているはずです。
こちらも入力してみましょう。
1 == 2
こちらは「False」が返ってくるはずです。
「==」の意味
先ほどの式で出てきた「==」は"左辺と右辺が等しい"という意味の記号です。
そして、等式「(左辺)==(右辺)」が成立しているとき「True」を返します。
「1 == 1」は、明らかに左辺と右辺が同じ値なので(式が成立しているので)Trueが返ってきます。
「1 == 2」は…1と2は異なる値ですからFalseが返されます。
上記では左辺と右辺に数字を入れたので「こんな式に何の意味が…」と思われたかもしれませんが、本来は主に変数に対して使用します。
cf. 復習
「=」は"左辺の変数に右辺の値を与える"(01.変数参照)
「==」は"左辺と右辺が等しい"
これでもまだ「意味あるの…?」と思われるかもしれませんが。
今回の説明が本領発揮となるのは次回「04.条件分岐(if文)」のパートなので、ご期待ください。
※ True/False
ちなみに、ここで登場するTrue/Falseについて。
01.変数のパートで次のような説明があったのを覚えていますでしょうか。
今回は、変数に与えられるものとして次の3つを覚えてください。 ・数値(1, -15, 3.14, -28.5...) ・文字列('Hello World!', 'あああ', ...) ・True/False
式を入力した際に返ってくるTrueやFalseは、上記の3つ目の「True/False」です。
自信がない方は01.変数の説明を改めて確認してみてください。
「==」以外の式
ここまで「==」を用いて"左辺と右辺が等しいか"を確認してきました。
他にも、値の大小を比較することもできます。
練習がてら、1行ずつコンソールに入力して結果を確認してみてください
(「#」より後ろはコメントなので入力する必要はありません)。
hensu01 = 5 # (変数に適当な値を入れる)
hensu01 > 1 # 1より大きい
hensu01 >= 1 # 1と等しいか1より大きい
hensu01 < 1 # 1より小さい
hensu01 <= 1 # 1と等しいか1より小さい
hensu01 != 1 # 1ではない(ノットイコール)
数字以外の比較もできます。
### 文字列の比較 ###
hensu02 = "おはよう"
hensu02 == "こんにちは" # -> False
### True/False ###
flag01 = True
flag01 != False # -> True
そろそろ頭がこんがらがってきましたでしょうか。
今回はここまでにしましょう。お疲れ様でした。
cf. 関連ページ
Ren'Py部屋 @crAsmビジュアルノベル情報部屋
お問合せフォーム - ご質問・ご要望はこちら
もう少しだけ頑張れる!という方は、以下の内容もご覧ください。
頭の片隅に入れておくだけで結構です。
補足1:not
式の頭に「not」を付けると結果を反転させることができます。
1 == 1 # -> True
not 1 == 1 # -> False
補足2:andとor
2つ以上の式で判断することもできます。
(1 == 1) and (2 == 2) and (3 == 3) # -> True
(1 == 1) or (2 == 1) or (3 == 1) # -> True
and: 全てTrueのとき、True
or: 1つでもTrueのとき、True
補足3:結果を変数へ
比較結果を変数に入れることもできます。式が長くなった場合などに便利です。
hensu03 = ( 1 == 1 )
hensu04 = ( (1 == 1) or (1 == 2) )
尚、カッコ()は無くても良いのですが、今回は分かりやすくするために入れています。
以上です。