การเขียน if-else บรรทัดเดียวด้วย Python

Kritthanit Malathong
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 - 10
print(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)

--

--

No responses yet