はじめに
この実験では、Python で値が False かどうかを確認する方法を学びます。実験ではまず、False の値について調べ、変数に False を代入し、その値と型を出力し、条件文で使用する方法を示します。false_values.py ファイルを作成し、is_valid に False を代入し、if 文を使ってその値を確認します。
次に、実験では False と直接比較する方法と、偽の値 (falsy values) との違いについて説明します。
False の値を調べる
このステップでは、Python の False の値について学びます。False の値を理解することは、条件文を書き、プログラムの流れを制御するために重要です。Python では、False は偽のブール値を表す組み込み定数です。これは 2 つのブール値のうちの 1 つで、もう 1 つは True です。
まず、VS Code エディタを使って、~/project ディレクトリに false_values.py という名前の Python ファイルを作成しましょう。
~/project/false_values.py
次に、エディタで false_values.py を開き、以下のコードを追加します。
## ブール値 False を変数に代入する
is_valid = False
## 変数の値を出力する
print(is_valid)
## 変数の型を確認する
print(type(is_valid))
このコードスニペットでは、まずブール値 False を変数 is_valid に代入します。次に、その変数の値と型を出力します。
スクリプトを実行するには、ターミナルを開き、以下のコマンドを実行します。
python ~/project/false_values.py
以下の出力が表示されるはずです。
False
<class 'bool'>
この出力は、変数 is_valid がブール値 False を保持し、その型が bool であることを確認します。
次に、False の値が条件文でどのように使われるかを調べましょう。false_values.py ファイルを変更して、以下のコードを追加します。
is_valid = False
if is_valid == False:
print("The value is False")
else:
print("The value is True")
この例では、if 文を使って is_valid の値が False と等しいかどうかを確認します。もし等しければ、if ブロック内のコードが実行されます。そうでなければ、else ブロック内のコードが実行されます。
スクリプトを再度実行します。
python ~/project/false_values.py
以下の出力が表示されるはずです。
The value is False
この出力は、False の値が特定の条件に基づいてプログラムの流れを制御するためにどのように使われるかを示しています。
False と直接比較する
このステップでは、Python で値を False と直接比較する方法を学びます。False と直接比較することで、コードがより読みやすく簡潔になることがあります。
前のステップで作成した false_values.py ファイルを引き続き使用します。このファイルを変更して、False との直接比較を実演します。
VS Code エディタで false_values.py を開き、コードを以下のように変更します。
is_valid = False
if is_valid is False:
print("The value is False")
else:
print("The value is True")
この例では、is 演算子を使って変数 is_valid が False と同一であるかどうかを確認しています。is 演算子はオブジェクトの同一性をチェックします。つまり、2 つの変数がメモリ内の同じオブジェクトを参照しているかどうかを検証します。ブール値の場合、is と == はしばしば同じように動作しますが、True と False はシングルトンオブジェクトであるため、通常は is を使ってチェックすることが推奨されます。
スクリプトを実行します。
python ~/project/false_values.py
以下の出力が表示されるはずです。
The value is False
次に、少し異なるシナリオを考えてみましょう。false_values.py ファイルを変更して、以下のコードを追加します。
is_valid = False
if not is_valid:
print("The value is False")
else:
print("The value is True")
この例では、not 演算子を使って is_valid が False であるかどうかを確認しています。not 演算子は変数のブール値を反転させます。これは変数が False であるかどうかを確認する一般的で簡潔な方法です。
スクリプトを再度実行します。
python ~/project/false_values.py
同じ出力が表示されるはずです。
The value is False
is False と not is_valid の両方が、Python で False の値をチェックする有効な方法です。どちらを選ぶかは、しばしば個人の好みとコードの読みやすさによって決まります。not 演算子は一般的により Pythonic で読みやすいとされています。
Falsy な値と区別する
このステップでは、Python のブール値 False と他の「偽の値(falsy values)」を区別する方法を学びます。Python では、特定の値はブールコンテキストで False と評価されるため、明示的に False ではなくても「偽の値」と見なされます。この違いを理解することは、正確な条件文を書くために重要です。
一般的な偽の値には以下が含まれます。
False(ブール値)None0(int、floatなど、あらゆる数値型のゼロ)""(空文字列)[](空リスト){}(空辞書)()(空タプル)
偽の値を調べるために、false_values.py ファイルを変更しましょう。VS Code エディタで false_values.py を開き、以下のコードを追加します。
def check_falsy(value):
if value:
print(f"{value!r} is truthy")
else:
print(f"{value!r} is falsy")
check_falsy(False)
check_falsy(None)
check_falsy(0)
check_falsy("")
check_falsy([])
check_falsy({})
check_falsy(())
このコードは、check_falsy という関数を定義しています。この関数は値を入力として受け取り、if 文を使ってその値が真(truthy)か偽(falsy)かをチェックします。その後、さまざまな偽の値を使って関数を呼び出します。f 文字列内の !r は、値の表現を出力することを保証し、異なる種類の空の値を区別するのに役立ちます。
スクリプトを実行します。
python ~/project/false_values.py
以下の出力が表示されるはずです。
False is falsy
None is falsy
0 is falsy
'' is falsy
[] is falsy
{} is falsy
() is falsy
この出力は、check_falsy 関数に渡したすべての値が Python で偽の値と見なされることを示しています。
次に、これが条件文にどのように影響するかを見てみましょう。false_values.py ファイルを変更して、以下のコードを追加します。
empty_list = []
if empty_list:
print("The list is not empty")
else:
print("The list is empty")
この例では、空リストが真か偽かをチェックしています。空リストは偽の値なので、else ブロック内のコードが実行されます。
スクリプトを実行します。
python ~/project/false_values.py
以下の出力が表示されるはずです。
The list is empty
偽の値を理解することは、正しく効率的な Python コードを書くために不可欠です。条件文を書く際にはこれらの値に注意し、コードが期待通りに動作するようにしてください。
まとめ
この実験では、Python の False の値を調べ始め、False がブール値の偽を表す組み込み定数であることを理解しました。false_values.py ファイルを作成し、変数に False を割り当て、その値と型を出力して、ブール値であることを確認しました。
次に、if 文を使って変数の値が False と等しいかどうかをチェックし、False の値が条件に基づいてプログラムの流れを制御できることを実演しました。この実験では、引き続き False との直接比較や、偽の値(falsy values)との区別について調べます。



