Python学習日記-判断文

5219 ワード

この章の目次
  • Part One:初識if文法
  • Part Two:ステップif構文
  • Part Three:完全if構文
  • Part Four:if文法注意事項
  • 初識if文法
    ifの英訳は「もし、仮定」の意味であり、Pythonでも条件として判断され、一部のコードがある条件を満たす場合にのみ実行されるようにすることができる.簡単なif文の構文フォーマットは、次のとおりです.
    if   :
        #           
    

    たとえば
    age = 18
    if age >= 18:
        print("Hey, boy!")
        print("You are a man now!")
    

    結果:
    Hey, boy!
    You are a man now!
    

    ここで、age>=18がFalseの場合、プログラムは2つのprint文を実行しません.いずれもifキーワード定義で判断しているが,Java言語とは異なり,Pythonは{}を用いてif文制御の領域を含まない.Pythonはインデント方式を使用しています.また、()で判断条件を括る必要もありません.インデントはPythonにおいて非常に重要な地位を有し、同じインデントはコードブロックのセットを表し、異なるインデントは異なるコードブロックであり、例えば:
    age = 18
    if age >= 18:
        print("Hey, boy!")
            print("You are a man now!")
    

    インデントエラーが表示されます.
    IndentationError: unexpected indent
    

    同様に、次のようにインデントすると、コードの実行ロジックが変わります.
    age = 16
    if age >= 18:
        print("Hey, boy!")
    print("You are a man now!")
    

    1番目の文は条件判定のコードブロックであり、2番目の文は条件判定に含まれないので、結果は次のようになります.
    You are a man now!
    

    ステップif構文
    条件を満たさない場合にコードの一部が実行される場合は、else文に一致します.elseの英語の意味は「それ以外」で、ifの条件判断の結果を直接反逆し、総合的な文法構造は:
    if   :
        #           
    else:
        #            
    

    if文にはelseがなくてもよいが、elseはifに一致しなければ使用できない.ifの構文と同様に、elseもインデント組織コードブロックを使用します.たとえば、次のようにします.
    age = 16
    if age >= 18:
        print("Hey, boy!")
        print("You are a man now!")
    else:
        print("Hey, boy!")
        print("This is gonna be your league in a little while, but I appreciate you giving us this year.")
    

    結果:
    Hey, boy!
    This is gonna be your league in a little while, but I appreciate you giving us this year.
    

    完全if構文
    同様の条件が複数回の判断を必要とし、各判断において異なるコードが実行される場合、多重ifの構文を使用して、その構文を使用することができます.
    if   1:
        #    1
    elif   2:
        #    2
    elif   3:
        #    3
    else:
        #    4
    

    例:
    age = 16
    if age <= 6:
        print("Hey, LeBron!")
        print("You will become a basketball superstar in the future!")
    elif 6 < age <= 18:
        print("Hey, LeBron!")
        print("You are strong enough, go to NBA!")
    elif 18 < age <= 25:
        print("Hey, LeBron!")
        print("This is gonna be your league in a little while, but I appreciate you giving us this year.")
    else:
        print("Hey, LeBron!")
        print("Give me a chance, I just wanna win once...")
    

    結果:
    Hey, LeBron!
    You are strong enough, go to NBA!
    

    if文はネストして使用することもできますが、インデントに注意してください.
    if文法上の注意事項
  • 判定条件値のテストPythonは、ブール型変数を条件として使用するだけでなく、ifで任意の式を条件として直接使用することができる.ほとんどの式の値はTrueとして扱われますが、次の式の値はFalse、None、0、空の文字列、空のリスト、空の辞書、空の集合として扱われます.コード1で検証できます:
  • TrueとFalseの検証
    var1 = False
    var2 = True
    if var1:
        print("False")
    else:
        print("True")
    if var2:
        print("True")
    

    結果:
    True
    True
    

    確認None
    var1 = None
    var2 = "TAG"
    if var1:
        print("None")
    else:
        print("Not None")
    if var2:
        print("Not None")
    

    結果:
    Not None
    Not None
    

    検証0
    var1 = 0
    var2 = 1
    if var1:
        print("0")
    else:
        print("Not 0")
    if var2:
        print("Not 0")
    

    結果:
    Not 0
    Not 0
    

    空の文字列の検証
    var1 = ""
    var2 = " "
    if var1:
        print("Empty String")
    else:
        print("Not Empty String")
    if var2:
        print("Not Empty String")
    

    スペースも文字列なので、次の結果になります.
    Not Empty String
    Not Empty String
    

    空のリストの検証
    var1 = ["Java", "Android", "Python"]
    var2 = []
    if var1:
        print("The first element is:{}.".format(var1[0]))
    else:
        print("The list is empty.")
    if var2:
        print("The first element is:{}.".format(var1[0]))
    else:
        print("The list is empty.")
    

    結果:
    The first element is:Java.
    The list is empty.
    

    同様に、辞書や集合などにも適用されますが、この書き方は推奨されません.len文法で空かどうかを検証したほうがいいです.まとめて、条件が非ゼロ値、非空文字列、非空リストなどであればTrue、そうでなければFalseと判断します.
  • input注意事項inputとprintはよく組み合わせて使用されるコードのセットであり、printはコンソールに出力され、inputはコンソールからユーザー入力を読み出す.コンソールから読み込まれた文字列は、他のタイプのデータと比較する場合は、対応する変換が必要です.そうしないと、
  • などのエラーが発生します.
    #  String   input  int  ,      
    age = int(input())
    if age <= 6:
        print("Hey, LeBron!")
        print("You will become a basketball superstar in the future!")
    elif 6 < age <= 18:
        print("Hey, LeBron!")
        print("You are strong enough, go to NBA!")
    elif 18 < age <= 25:
        print("Hey, LeBron!")
        print("This is gonna be your league in a little while, but I appreciate you giving us this year.")
    else:
        print("Hey, LeBron!")
        print("Give me a chance, I just wanna win once...")
    

    結果:
    7
    Hey, LeBron!
    You are strong enough, go to NBA!