はじめに
Pythonは、そのシンプルで読みやすい構文が特徴です。この特徴の一つとして、if文を一行で書く方法があります。if文を一行で書くことでコードを簡潔にすることができます。さらに、特定の条件に基づく簡単な処理を行う場合に非常に有用です。以前の記事でもif文についての基本的な操作方法を解説しましたが、今回はその続編として、この記事では、Pythonでif文を一行で書く方法やその使い方について詳しく解説します。
if文を一行で書く際の基本構文
Pythonでif文を一行で書く場合、基本的な構文は次のようになります。
<Trueの場合の処理> if <条件> else <Falseの場合の処理>
この構文を使うと、条件がTrueの場合に実行される処理とFalseの場合に実行される処理を一行で記述できます。例えば、以下のように記述することができます。
# 変数aが10以上なら"High"、それ以外なら"Low"を返す
a = 15
result = "High" if a >= 10 else "Low"
print(result)
# 実行結果
# High
この例では、変数aの値が10以上であればHighを、そうでなければLowをresultに代入します。
活用例
if文を一行で書く構文は、条件に基づいて値を選択する場合に非常に便利です。ここでは、いくつかの活用例を紹介します。
例①:リストの要素に条件を適用
リスト内の各要素に対して条件を適用し、新しいリストを作成する場合に使用できます。
numbers = [1, 2, 3, 4, 5]
# 偶数なら"Even"、奇数なら"Odd"を返すリストを作成
labels = ["Even" if num % 2 == 0 else "Odd" for num in numbers]
print(labels)
# 実行結果
# ['Odd', 'Even', 'Odd', 'Even', 'Odd']
この例では、偶数か奇数かに基づいてEvenまたはOddのラベルを生成しています。
例②:関数内での適用
関数内で使用すると、関数の処理を簡潔に書くことができます。
def check_number(n):
return "Positive" if n > 0 else "Negative or Zero"
print(check_number(5))
print(check_number(-3))
# 実行結果
# Positive
# Negative or Zero
この関数では、引数nの値によって出力される文字が変わります。nが正の数であればPositiveが出力されます。一方、それ以外の場合はNegative or Zeroが出力されます。
if文とリスト内包表記の組み合わせ
リスト内包表記とif文を組み合わせて条件に基づいてリストを作成できます。
numbers = [1, 2, 3, 4, 5]
# 偶数のみを含む新しいリストを作成
even_numbers = [num for num in numbers if num % 2 == 0]
print(even_numbers)
# 実行結果
# [2, 4]
この例では、リストnumbersから偶数のみを抽出して新しいリストeven_numbersを作成しています。さらに、リスト内包表記で一行でif-else文を記述することも可能です。
# 各要素が偶数ならそのまま、奇数なら-1に置き換えるリストを作成
modified_numbers = [num if num % 2 == 0 else -1 for num in numbers]
print(modified_numbers)
# 実行結果
# [-1, 2, -1, 4, -1]
この例では、各数値が偶数であればそのまま、奇数であれば-1に置き換えた新しいリストを作成しています。
複数の条件でif文を一行で書く
複数の条件を持つ場合も、一行でif文を記述することができます。例えば、数値の範囲に基づいて異なる値を返す場合です。
score = 85
grade = "A" if score >= 90 else "B" if score >= 80 else "C" if score >= 70 else "D" if score >= 60 else "F"
print(grade)
# 実行結果
# B
この例では、スコアの値に基づいて適切なグレードが返されます。このように、複数の条件を連続して評価する場合にも条件式が有効です。
最後に
if文を一行で書くことで、条件に基づく処理をシンプルに記述できます。基本的な構文を理解することで、さまざまな場面で活用することができます。是非、日常のコーディングに取り入れて、効率的にプログラミングを行ってください。この記事を読んでいただき、ありがとうございました!質問やフィードバックがあれば、コメント欄に残してください。皆さんの声をもとに、より良いコンテンツを提供していきたいと思います。これからもよろしくお願いします!
私の経歴などについては以下の記事から確認することができます!
ブログランキングに参加しています。ぜひクリックで応援お願いします
コメント