Python If แบบบรรทัดเดียว: ตัวดำเนินการเทอร์นารีและ List Comprehensions

目次

1. บทนำ

ในการเขียนโปรแกรม Python การเขียนคำสั่ง if บนบรรทัดเดียวช่วยทำให้โค้ดง่ายขึ้นและมีประโยชน์เป็นพิเศษในสถานการณ์ที่ต้องมีการแยกสาขาเงื่อนไขบ่อยครั้ง ในบทความนี้ เราจะอธิบายอย่างละเอียดหลายเทคนิคสำหรับการเขียนคำสั่ง Python “if” บนบรรทัดเดียว เรียนรู้วิธีเขียนโค้ดที่อ่านง่ายและมีประสิทธิภาพด้วยตัวอย่างเชิงปฏิบัติเช่น ตัวดำเนินการ ternary และ list comprehensions

2. วิธีเขียน if บนบรรทัดเดียวโดยใช้ตัวดำเนินการ ternary ของ Python

ใน Python คุณสามารถเขียนคำสั่ง if บนบรรทัดเดียวโดยใช้ตัวดำเนินการ ternary (conditional expression) ได้ ซึ่งมีประโยชน์เมื่อคืนค่าตามเงื่อนไขและช่วยให้โค้ดของคุณกระชับ

ไวยากรณ์ของตัวดำเนินการ ternary

ตัวดำเนินการ ternary ของ Python เขียนดังนี้:

variable = value1 if condition else value2

ด้วยไวยากรณ์นี้ “value1” จะถูกคืนค่าหากเงื่อนไขเป็น True และ “value2” จะถูกคืนค่าหากเป็น False

ตัวอย่าง: ตรวจสอบเลขคู่หรือคี่

เช่น คุณสามารถตรวจสอบว่าตัวเลขเป็นเลขคู่หรือคี่และคืนสตริงที่แตกต่างกันตามผลลัพธ์ได้ดังนี้:

number = 4
result = "even" if number % 2 == 0 else "odd"
print(result)  # Output: even

เพราะคุณสามารถเขียนคำสั่ง if บนบรรทัดเดียวแบบนี้ ทำให้สะดวกมากสำหรับสาขาเงื่อนไขที่ง่าย

การใช้งานจริงของตัวดำเนินการ ternary

เช่น คุณสามารถใช้ตัวดำเนินการ ternary เพื่อแสดงข้อความขึ้นอยู่กับว่าผู้ใช้ล็อกอินหรือไม่

is_logged_in = True
message = "Welcome" if is_logged_in else "Please log in"
print(message)  # Output: Welcome

ตัวดำเนินการ ternary เหมาะสำหรับการเลือกอย่างง่ายตามเงื่อนไข อย่างไรก็ตาม การเขียนตรรกะที่ซับซ้อนบนบรรทัดเดียวอาจทำให้การอ่านยาก จึงแนะนำให้ใช้เฉพาะในกรณีที่ตรงไปตรงมานั้นเท่านั้น

3. การรวม List Comprehensions กับ if Statements

list comprehensions ของ Python ให้วิธีที่ทรงพลังในการเขียนโค้ดสั้น ๆ เพื่อสร้างรายการ เมื่อรวมกับ if statements คุณสามารถสร้างรายการตามเงื่อนไขที่กำหนดได้

ไวยากรณ์พื้นฐานของ List Comprehensions

เมื่อใช้ if statement ใน list comprehension คุณเขียนแบบนี้:

list = [expression for variable in iterable if condition]

ตัวอย่าง: สร้างรายการของเลขคู่

เพื่อเก็บเฉพาะเลขคู่จาก 0 ถึง 9 ลงในรายการ เขียนแบบนี้:

even_numbers = [x for x in range(10) if x % 2 == 0]
print(even_numbers)  # Output: [0, 2, 4, 6, 8]

ตัวอย่างการประยุกต์ใช้ List Comprehensions

list comprehensions ยังมีประโยชน์สำหรับการกรองและแปลงข้อมูล ตัวอย่างเช่น สามารถช่วยในการดึงเฉพาะคำที่มีความยาวกำหนดจากรายการสตริงได้

words = ["apple", "banana", "cherry", "date"]
filtered_words = [word for word in words if len(word) > 5]
print(filtered_words)  # Output: ['banana', 'cherry']

โดยใช้ list comprehensions คุณสามารถทำให้โค้ดสั้นลงในขณะที่ดึงหรือแปลงข้อมูลตามเงื่อนไขได้อย่างมีประสิทธิภาพ

4. การใช้ if และ for บนบรรทัดเดียวของ Python

โดยการรวม for และ if statements คุณสามารถเขียนโค้ดบรรทัดเดียวที่ประมวลผลเฉพาะองค์ประกอบที่ตรงตามเงื่อนไขที่กำหนด ซึ่งเป็นประโยชน์สำหรับการทำให้การดำเนินการกับรายการขนาดใหญ่เรียบง่ายขึ้น

ไวยากรณ์บนบรรทัดเดียวสำหรับ if และ for statements

ไวยากรณ์พื้นฐานเป็นดังนี้

list = [expression for variable in iterable if condition]

ตัวอย่าง: สร้างรายการของกำลังสองของเลขคู่

เพื่อสร้างรายการของกำลังสองของเลขคู่จาก 1 ถึง 10 ใช้โค้ดต่อไปนี้

squared_evens = [x**2 for x in range(1, 11) if x % 2 == 0]
print(squared_evens)  # Output: [4, 16, 36, 64, 100]

ตัวอย่างการประยุกต์: กรองข้อมูลตามเงื่อนไขเฉพาะ

โค้ดนี้จะดึงเฉพาะตัวเลขบวกจากรายการและเก็บไว้ในรายการใหม่

numbers = [-5, -1, 2, 8, -3, 7]
positive_numbers = [num for num in numbers if num > 0]
print(positive_numbers)  # Output: [2, 8, 7]

การเขียน if และ for ร่วมกันบนบรรทัดเดียวแบบนี้ช่วยลดความซ้ำซ้อนของโค้ดในขณะที่ทำให้การจัดการข้อมูลมีประสิทธิภาพ

5. if บนบรรทัดเดียวพร้อมการกำหนดค่าโดยใช้ expression (Walrus operator)

นิพจน์การกำหนดค่า (ตัวดำเนินการวาลรัส) :=, ที่แนะนำตั้งแต่ Python 3.8 เป็นต้นไป, ทำให้สามารถกำหนดค่าตัวแปรภายในคำสั่ง if ได้ คุณลักษณะสำคัญคือมันทำให้คุณสามารถประเมินเงื่อนไขพร้อมกับเก็บผลลัพธ์ของการคำนวณไว้ได้

ไวยากรณ์และการใช้งานพื้นฐานของนิพจน์การกำหนดค่า

if (variable := expression) condition:
    process

ตัวอย่าง: ใช้ความยาวของรายการเป็นเงื่อนไข

ความยาวของรายการถูกดึงมาและประเมินเป็นเงื่อนไข พร้อมกับทำการประมวลผลตามนั้น

some_list = [1, 2, 3, 4, 5]
if (length := len(some_list)) > 3:
    print(f"The length of the list is {length}, which is greater than 3")
# Output: The length of the list is 5, which is greater than 3

กรณีการใช้งานเชิงปฏิบัติ

โดยการใช้ตัวดำเนินการวาลรัส คุณสามารถหลีกเลี่ยงการคำนวณซ้ำซ้อนและอาจปรับปรุงประสิทธิภาพได้ มันมีประสิทธิภาพเป็นพิเศษในสถานการณ์ที่ผลลัพธ์ของการคำนวณ—เช่นการดำเนินการกับรายการหรือสตริง—ต้องนำกลับมาใช้ใหม่

6. หมายเหตุเกี่ยวกับการใช้คำสั่ง if แบบบรรทัดเดียว

คำสั่ง if แบบบรรทัดเดียวมีพลังมาก แต่การใช้มากเกินไปอาจทำให้อ่านยาก ใช้เฉพาะการตรวจสอบเงื่อนไขง่าย ๆ เท่านั้น และเปลี่ยนไปใช้คำสั่ง if ปกติเมื่อจำเป็นต้องใช้ตรรกะที่ซับซ้อนมากขึ้น

7. สรุปและขั้นตอนต่อไป

ในบทความนี้ เราได้แนะนำเทคนิคต่าง ๆ สำหรับการเขียนคำสั่ง if ของ Python ในบรรทัดเดียว ตั้งแต่การแยกเงื่อนไขอย่างง่ายจนถึงการจัดการรายการและการใช้ตัวดำเนินการวาลรัส เราได้อธิบายถึงประโยชน์และข้อควรระวังของคำสั่ง if แบบบรรทัดเดียว ลองนำเทคนิคเหล่านี้ไปใช้เพื่อทำให้การเขียนโปรแกรม Python ของคุณในชีวิตประจำวันมีประสิทธิภาพมากขึ้น

侍エンジニア塾