\r\n\r\n
if文はロジックプログラミングの原動力であり、Pythonのifをより深く理解することは、Pythonプログラミングのスキルアップに重要です。
Pythonのif文についてもっと知りたいですか?ここでは、Pythonのif条件を使ってプログラムを制御する方法を説明しますので、ご安心ください。
通常、Pythonの条件文はifで始まり、ifがなければほとんど論理的ではありません。しかし、条件とは、特定の事象が真か偽かをチェックするためのプログラマが定義したルールの集合である。基本的には、イベントの妥当性をチェックするものです。
Pythonのif文は通常、次のような形式をとります。
if an event is True: Execute some commands...if文は独立して実行できるが、他の条件(elifやelseなど)をバックアップして他のルールを作ることができる。しかし、Pythonのif条件ではnot, and, and inなどの文を使うことも可能です。
Pythonでは、forループのような制御フローでif文を直接使用することも可能です。次の例では、このような場合にif文をどのように使うかを見てみましょう。
if条件を使うと、イベントがtrueのときに一連のコマンドを実行するようにPythonに指示することができます。
if 5 > 3:print("Valid")Output: Validしかし、if-else条件の組み合わせは、最初のセットが偽の場合に別のコマンドを実行する必要がある場合に非常に便利です。実際に見てみましょう。
a = 10b = 3if a == b: print("They're the same")else: print("They're not the same")Output: They're not the same上の2つの変数が等しいかどうかは、Pythonがブール値を返すことで直接確認することができます。例えば、a == b と出力すると False を返します。
a = 10b = 3print(a==b)Output: FalseJavaScriptなどのプログラミング言語ではelseif、Pythonではelifを使用しますが、Pythonでは通常elseで条件文のセットを終了させます。しかし、それでも条件を終了する前に他のイベントを検証したい場合は、elif文を使用する必要があります。Pythonのelifを使った次のような使用例を見てみましょう。
a = 10b = 3if b == a: print(a + b)elif b * a == 30: print(b - a)else: print("impossible")Output: -7上記のコードでは、if文のイベントがtrueの場合、Pythonはコマンドを実行します。そうでない場合は、elif 文を実行する。それ以外の場合は、else文を出力します。
複数のelifやelseを使って、さらに条件を設定することができます。
myList = ['Python', 'MUO', 'Hello']if ('Python') in myList:print("No")elif 'N' in myList[1]:print("MUO")elif 'e' in myList[2]: print("Hello")else:print("None is true")Output: Helloin キーワードは、if 文の中でリストや配列の中に項目があるかどうかをチェックするために使用できます。
myList = ['Python', 'MUO', 'Hello']if ('Python') in myList:print("It's in the list")Output: It's in the listまた、ifと一緒にand式を使うことで、複数の項目をチェックすることも可能です。
myList = ['Python', 'MUO', 'Hello']if ('Python' and 'Hello') in myList:print("Hello Python")Output: Hello Python関連コンテンツ:初級プログラマのためのPython RegExメモ帳
リスト内のいずれかの項目が存在するかどうかを確認するには、or キーワードを使用します。
myList = ['Python', 'MUO', 'Hello']if ('Python' or 'Bags') in myList:print("One of them is on the list")Output: One of them is on the listまた、if条件を使って、forループの中で起こることを制御することもできます。例えば、PythonのForループを使ってリストや配列をトラバースする際に条件を設定することができます。この仕組みは、以下のコード例を参照してください。
myList = myList = ['Python', 'MUO', 'Hello']myList2 = ["Fish", "Gold", "Bag"]if len(myList) == 3:for items in myList:print(items)else:for items2 in myList2:print(items2)上記のコードは、myListの長さがちょうど3であるかどうかをチェックし、文が真であればmyListを繰り返し、そうでなければelse文を実行してmyList2の各項目を出力しています。
ただし、任意のリストの全項目を印刷し、4文字だけ印刷するようにコードを修正することも可能です。
myList = ['Python', 'MUO', 'Hello', 'Books', 'Pizza', 'Four']myList2 = ["Fish", "Gold", "Bag"]for items in (myList + myList2):if len(items) == 4:print(items)上のコードでは、まず2つのリストを結合しています。そして、両方のリストにちょうど4文字の項目があるかどうかをチェックし、その文が真であれば、それらをループして出力します。
If条件は、Pythonで関数を書くときにも便利です。通常のコードと同じように、if条件で関数の中で起こることを指定することができます。
関連:Pythonで独自のモジュールを作成、インポート、再利用する方法
前節の最後のコードをリファクタリングして、Pythonの関数でif文などの条件を使う方法を見てみましょう。
def checkString(list1, list2):for items in (list1 + list2):if len(items) == 4:print(items)breakelse:print("impossible")List1 = ['Python', 'MUO', 'Hello', 'Books', 'Pizza', 'Four']List2 = ["Fish", "Gold", "Bag"]checkString(List, List2)前節のコードと同様に、上記の関数はすべての項目を正確に4文字で出力する。しかし、break文は、条件を満たす最後の項目が出力された後に実行が停止することを保証するものである。If文のイベントがfalseであれば、else条件でその中のコマンドを実行する。
また、if文と無名ラムダ関数を併用することも可能です。そのためには、Pythonのラムダ関数についての基本的な理解が必要なだけです。
前節の関数をラムダ関数に書き換えて、その働きを見てみましょう。
checkString = lambda a, b: [y for y in (a + b) if len(y) == 4]print(checkString(List1, List2))Output: ['Four', 'Fish', 'Gold']上記のラムダ関数は、前節で使用した通常の関数と同じ出力を提供します。しかしここでは、Pythonのリストを作成することでコードを表現しています。
また、リスト内でif文やforループを使用することも可能です。この例では、先ほどのコードを書き換えて、リスト中の4文字を持つ項目をすべて表示するようにします。
myList = ['Python', 'MUO', 'Hello', 'Books', 'Pizza', 'Four']myList2 = ["Fish", "Gold", "Bag"]lis = [lists for lists in (myList + myList2) if len(lists) is 4]print(lis)Output: ['Four', 'Fish', 'Gold']関連:Pythonのリスト内包の使い方(と、使ってはいけない場合)。
また、リストでもif...やif...orを使うことができます。まず、Pythonのリストでif...orを使う場合について見てみましょう。
myList = ['Python', 'MUO', 'Hello', 'Books', 'Pizza', 'Four']myList2 = ["Fish", "Gold", "Bag"]lis = [lists for lists in (myList + myList2) if ('P' in lists or 'F' in lists)]print(lis)Output: ['Python', 'Pizza', 'Four', 'Fish']このコードでは、"P "または "F "の文字が含まれる項目をチェックし、ステートメントが真であれば、それらを出力する。
また、if...and を使って、文字列 "P" と "o" の両方を含む項目を表示させることもできます。
lis = [lists for lists in (myList + myList2) if ('P' in lists and 'o' in lists)]print(lis)Output: ['Python']上記のコードでは、"P "と "o "の両方を含むリストの唯一の項目であるため、"Python "のみが出力されます。
場合によっては、リストの中でネストされたif条件を使うことも可能です。リスト内包の例として、ネストされたif条件を使って、3と5で割り切れる数を全て出力する例を見てみましょう。
B = range(31)A = [x for x in B if x % 3 == 0 if x % 5 ==0]print(A)Output: [0, 15, 30]しかし、リストではなく、コレクション内包を使って、上記のコードと同じことを行うことができます。
A = {x for x in B if x % 3 == 0 if x % 5 ==0}print(A)Output: {0, 30, 15}他のリスト内包の例も、セット内包に変更するなどして、自由にお使いください。
論理的な文は、今日の多くのコーディングプログラムの構成要素であり、Python上で動作するプログラムにおいても、これは変わりません。しかし、先に述べたように、条件文はコードをよりよく把握することができるので、自分なりにアレンジすることが可能です。
ゲーム開発、機械学習、Web開発などの現実のプロジェクトでは、タスクを自動化し、ユーザーに望ましい出力を提供できるようにするために、これらの条件文に依存しています。したがって、これからプログラマになる人は、それらについて詳しく知り、どのように動作するかを学ぶことが、現代の技術に対応したダイナミックでレスポンスのよいプログラムを書くために必要不可欠です。