การเขียน if-else บรรทัดเดียวด้วย Python
2 min readApr 18, 2022
Post id 32, 04/18/2022
การแปลง if-else แบบปกติ เป็น if-else แบบ บรรทัดเดียว
if condition:
TRUE
else:
FALSE
แปลงได้เป็น
TRUE if condition else FALSE
ตัวอย่างเช่น
age = 20
if age<18:
chk = 'Minor'
else:
chk = 'Adult'print(chk)
# 'Adult'
แปลงได้เป็น
age = 20
chk = 'Minor' if age<18 else 'Adult'
print(chk)
# 'Adult'
การเขียนทั้งสองแบบนี้จะให้ผลลัพธ์เหมือนกัน
การแปลง if-elif-else เป็นแบบ บรรทัดเดียว
if cond1:
TRUE1
elif: cond2
TRUE2
else:
FALSE
แปลงได้เป็น
TRUE1 if cond1 else TRUE2 if cond2 else FALSE
ตัวอย่างเช่น
age = 20if age<12:
chk = 'Childen'
elif age<18:
chk = 'Minor'
else:
chk = 'Adult'print(chk)
# 'Adult'
แปลงได้เป็น
chk = 'Childen' if age<12 else 'Minor' if age<18 else 'Adult'
print(chk)
# 'Adult'
ตัวอย่างทดสอบความเข้าใจ
x = 1
if x % 2 == 0:
result = x * 2 + 10
else:
result = x / 2 - 10print(result)
# -9.5
ลองเขียนแยกออกมาก่อนว่าอันไหนคือ condition และ อันไหนคือ TRUE/FALSE
cond คือ x % 2 == 0
TRUE คือ x / 2 + 10
FALSE คือ x / 2 - 10
จากนั้นก็นำผลที่ได้ไปแทนที่ในรูปแบบ if-else บรรทัดเดียว
TRUE if cond else FALSE
จะได้
result = x / 2 + 10 if x % 2 == 0 else x / 2 - 10
หรือถ้าอยากให้ดูง่ายหน่อย ก็ใส่วงเล็บด้วยก็ได้ เช่น
result = (x / 2 + 10) if (x % 2 == 0) else (x / 2 - 10)