if文でandとorを両方使う場合、複数の条件を組み合わせてより複雑な条件分岐を作成できます。
ただし、複数の論理演算子を使用するときは、条件の評価順序を明確にするために括弧()を使うことが良い実践です。
これにより、プログラムの意図を明確にし、読みやすく保つことができます。
例
以下の例では、年齢(age)と学生かどうか(is_student)、そして収入(income)に基づいて条件分岐をしています。
age = 24
is_student = True
income = 30000
if (age > 18 and is_student) or income > 50000:
print("割引が適用されます。")
else:
print("割引は適用されません。")
この条件分岐では、以下の2つの条件のいずれかが満たされた場合に「割引が適用されます。」と出力します。
- age > 18 and is_studentがTrueである場合(つまり、18歳を超える学生である場合)
- income > 50000がTrueである場合(つまり、収入が50,000を超える場合)
and演算子は、両方の条件がTrueである場合にTrueを返し、or演算子は、いずれかの条件がTrueである場合にTrueを返します。この例では、18歳以上で学生であるか、または収入が50,000以上のいずれか一方を満たせば割引が適用されます。
データが有るか無いかの判断方法
Pythonでデータがあるかないかを判断する場合、主にリスト、文字列、辞書などのコンテナ型のデータが空かどうかを確認します。これは非常に一般的な操作で、Pythonのif文を使って簡単に行うことができます。
リスト、文字列、辞書での判断
これらの型でデータが存在するかどうかを判断するには、直接コンテナを条件式に使用します。
Pythonでは空のリスト[]、空の文字列””、空の辞書{}はすべてFalseと評価されます。そのため、これらのコンテナに何かデータが含まれている場合はTrueと評価され、条件分岐で利用できます。
リストの例
my_list = [1, 2, 3]
if my_list:
print("リストにはデータがあります。")
文字列の例
my_string = "Hello"
if my_string:
print("文字列にはデータがあります。")
辞書型の例
my_dict = {"name": "Alice"}
if my_dict:
print("辞書にはデータがあります。")
Noneの判断
NoneはPythonで「何もない」状態を表す特別な値です。
変数がNoneかどうかをチェックするには、is Noneまたはis not Noneを使用します。
my_var = None
if my_var is None:
print("変数はNoneです。")
else:
print("変数には何らかのデータがあります。")
is not Noneを使用する例
def get_user_info(user_id):
# ユーザー情報を取得する仮の関数
# この例では、user_idが1の場合にのみユーザー情報を返し、それ以外はNoneを返します
if user_id == 1:
return {"name": "aoyama", "age": 30}
else:
return None
# ユーザーIDを使ってユーザー情報を取得
user_info = get_user_info(1)
# 取得した情報がNoneでないかチェック
if user_info is not None:
print("ユーザー情報が見つかりました:", user_info)
else:
print("指定されたユーザー情報は存在しません。")
この例では、get_user_info関数はユーザーIDに基づいてユーザー情報を返しますが、該当するユーザーがいない場合はNoneを返します。
user_infoがNoneでないことをチェックすることで、関数が実際にユーザー情報を返した場合のみ処理を進めることができます。