目次
1. พื้นฐานของตัวดำเนินการ `or` ใน Python
ตัวดำเนินการ `or` คืออะไร?
ตัวดำเนินการor เป็นหนึ่งในตัวดำเนินการเชิงตรรกะของ Python โดยจะคืนค่า True หากเงื่อนไขใดเงื่อนไขหนึ่งจากสองเงื่อนไขเป็น True และจะคืนค่า False ก็ต่อเมื่อเงื่อนไขทั้งสองเป็น False เท่านั้น ตัวดำเนินการนี้มักใช้เมื่อรวมหลายเงื่อนไขเข้าด้วยกัน ทำให้การแยกเงื่อนไขเป็นไปอย่างกระชับวิธีการใช้งานพื้นฐาน
ตัวดำเนินการor ใช้งานดังนี้: เงื่อนไขสองเงื่อนไขจะถูกรวมด้วย or หากเงื่อนไขใดเงื่อนไขหนึ่งเป็น True ผลลัพธ์โดยรวมจะเป็น Truea = 5
b = 10
if a > 3 or b < 5:
print("เงื่อนไขใดเงื่อนไขหนึ่งเป็นจริง")
else:
print("ทั้งสองเงื่อนไขเป็นเท็จ")ในตัวอย่างนี้ a > 3 เป็น True และ b < 5 เป็น False แต่เนื่องจากใช้ตัวดำเนินการ or หากเงื่อนไขใดเงื่อนไขหนึ่งเป็น True การประเมินผลโดยรวมจะเป็น Trueคุณสมบัติของตัวดำเนินการ or
ตัวดำเนินการ or มีคุณสมบัติที่เรียกว่าการประเมินแบบลัดวงจร (Short-circuit evaluation) ซึ่งหมายความว่า หากเงื่อนไขด้านซ้ายเป็น True เงื่อนไขด้านขวาจะไม่ถูกประเมินและจะข้ามไป สิ่งนี้มีประโยชน์ในการประหยัดทรัพยากรการประมวลผล ตัวอย่างเช่น ในโค้ดต่อไปนี้ เงื่อนไขแรกเป็น True ดังนั้น b == 10 จะไม่ถูกประเมินa = 5
b = 10
if a > 3 or b == 10:
print("เนื่องจาก a มากกว่า 3 การประเมินจึงสิ้นสุดที่นี่") 
Ad
2. การใช้ `if` statement และตัวดำเนินการ `or`
การใช้ตัวดำเนินการ `or` กับหลายเงื่อนไข
ใน `if` statement ของ Python ตัวดำเนินการor มีประโยชน์อย่างมากเมื่อต้องการประเมินหลายเงื่อนไข ตัวอย่างเช่น หากต้องการดำเนินการบางอย่างเมื่อเงื่อนไขใดเงื่อนไขหนึ่งเป็นจริง การใช้ or จะช่วยให้โค้ดกระชับขึ้น ต่อไปนี้เป็นตัวอย่างการใช้ตัวดำเนินการ or เพื่อกำหนดการกระทำตามอายุของผู้ใช้:age = 16
if age < 18 or age > 65:
print("มีสิทธิ์ได้รับส่วนลด")
else:
print("ไม่มีสิทธิ์ได้รับส่วนลด")ในตัวอย่างนี้ ส่วนลดจะใช้กับผู้ใช้ที่มีอายุต่ำกว่า 18 ปีหรือมากกว่า 65 ปี การใช้ or ทำให้สามารถรวมสองเงื่อนไขได้อย่างง่ายดายการรวมหลายเงื่อนไขกับ `or`
เงื่อนไขที่ซับซ้อนขึ้นก็สามารถทำให้ง่ายขึ้นได้ด้วยor ในตัวอย่างต่อไปนี้ จะใช้ตัวแปรหลายตัว และการดำเนินการจะถูกเรียกใช้หากตัวแปรใดตัวแปรหนึ่งตรงตามเงื่อนไขที่กำหนดtemperature = 35
humidity = 70
if temperature > 30 or humidity > 60:
print("ควรเปิดแอร์")
else:
print("ไม่จำเป็นต้องเปิดแอร์")ในกรณีนี้ หากอุณหภูมิสูงกว่า 30 องศาเซลเซียสหรือความชื้นสูงกว่า 60% จะแนะนำให้เปิดเครื่องปรับอากาศ การใช้ or สามารถทำให้การตัดสินใจในชีวิตประจำวันง่ายขึ้นได้เช่นกัน
3. การประยุกต์ใช้ตัวดำเนินการ `or`
ตัวอย่างการใช้ตัวดำเนินการ `or` นอกเหนือจาก `if` statement
ตัวดำเนินการor สามารถใช้ได้ในหลายสถานการณ์ นอกเหนือจากใน `if` statement โดยเฉพาะอย่างยิ่งมีประโยชน์ในการตั้งค่าค่าเริ่มต้น ตัวอย่างเช่น สามารถตรวจสอบว่าอ็อบเจกต์เช่นลิสต์หรือพจนานุกรมเป็น None หรือว่างเปล่าหรือไม่ และกำหนดค่าเริ่มต้นในกรณีดังกล่าวdef get_list(l=None):
l = l or []
return l
print(get_list()) # ผลลัพธ์: []
print(get_list([1, 2, 3])) # ผลลัพธ์: [1, 2, 3]ในตัวอย่างนี้ โค้ดจะคืนค่าลิสต์ว่างเมื่อลิสต์เป็น None การใช้ตัวดำเนินการ or ช่วยให้สามารถเขียนโค้ดที่เรียบง่ายโดยไม่ต้องใช้การแยกเงื่อนไขการใช้ `or` หลายตัว
บางครั้งอาจมีการเชื่อมเงื่อนไขตั้งแต่สามเงื่อนไขขึ้นไปด้วยor ในกรณีดังกล่าว เงื่อนไขจะถูกประเมินจากซ้ายไปขวา และค่าแรกที่เป็น True จะถูกส่งคืนresult = None or "default" or "another"
print(result) # ผลลัพธ์: defaultในตัวอย่างนี้ None แรกจะถือเป็น False ดังนั้น “default” ถัดไปจะถูกส่งคืนเป็นผลลัพธ์ ด้วยวิธีนี้ การใช้ตัวดำเนินการ or ช่วยให้สามารถเลือกค่าที่เหมาะสมที่สุดจากหลายเงื่อนไขได้Ad
4. ความแตกต่างระหว่าง `and` และ `or`
ความแตกต่างพื้นฐาน
and และ or เป็นตัวดำเนินการเชิงตรรกะทั้งคู่ แต่มีการทำงานที่แตกต่างกันโดยสิ้นเชิง ตัวดำเนินการ or จะคืนค่า True หากเงื่อนไขใดเงื่อนไขหนึ่งเป็น True ในขณะที่ตัวดำเนินการ and จะคืนค่า True ก็ต่อเมื่อเงื่อนไขทั้งสองเป็น True เท่านั้น ตัวอย่างเช่น ลองดูโค้ดต่อไปนี้:a = True
b = False
if a and b:
print("ทั้งสองเป็นจริง")
else:
print("อย่างใดอย่างหนึ่งหรือทั้งสองเป็นเท็จ")ในตัวอย่างนี้ แม้ว่า a จะเป็น True แต่เนื่องจาก b เป็น False ผลลัพธ์โดยรวมจึงเป็น False และ `else` clause จะถูกเรียกใช้ เมื่อเปรียบเทียบกับตัวดำเนินการ or ความแตกต่างที่สำคัญของ and คือทั้งสองเงื่อนไขจะต้องเป็น Trueตัวอย่างการใช้งานกับหลายเงื่อนไข
เมื่อใช้and และ or ร่วมกัน แนะนำให้ใช้วงเล็บเพื่อทำให้เงื่อนไขชัดเจนขึ้นtemperature = 25
weather = "rainy"
if (temperature > 20 and temperature < 30) or weather == "rainy":
print("ควรพกร่มออกไปด้วย")
else:
print("ไม่จำเป็นต้องพกร่ม")ในกรณีนี้ หากอุณหภูมิอยู่ระหว่าง 20 ถึง 30 องศาเซลเซียส หรือสภาพอากาศมีฝน จะแนะนำให้พกร่ม การรวม and และ or ช่วยให้สามารถแสดงเงื่อนไขที่ซับซ้อนได้อย่างกระชับ
5. การเพิ่มประสิทธิภาพของตัวดำเนินการ `or`
การเพิ่มประสิทธิภาพด้วยการประเมินแบบลัดวงจร
หนึ่งในข้อได้เปรียบที่สำคัญที่สุดของตัวดำเนินการor คือคุณสมบัติ “การประเมินแบบลัดวงจร” ซึ่งหากเงื่อนไขด้านซ้ายเป็น True เงื่อนไขด้านขวาจะไม่ถูกประเมิน สิ่งนี้ช่วยหลีกเลี่ยงการคำนวณที่ไม่จำเป็นและช่วยเพิ่มความเร็วในการประมวลผล ตัวอย่างเช่น ในโค้ดต่อไปนี้ หาก can_edit() เป็น True ฟังก์ชัน can_publish() จะไม่ถูกเรียกใช้def can_edit():
return True
def can_publish():
print("ฟังก์ชันนี้จะไม่ถูกเรียก")
return True
if can_edit() or can_publish():
print("สามารถแก้ไขหรือเผยแพร่ได้")ในตัวอย่างนี้ เนื่องจากด้านซ้ายของ or เป็น True ฟังก์ชัน can_publish() จะไม่ถูกเรียกใช้ และไม่มีการประมวลผลที่ไม่จำเป็นเกิดขึ้น การแยกเงื่อนไขโดยใช้ or จึงเป็นเทคนิคสำคัญในการเขียนโค้ดที่มีประสิทธิภาพตัวอย่างการใช้งานจริง
เมื่อต้องจัดการกับชุดข้อมูลขนาดใหญ่ หรือเมื่อต้องประมวลผลหลายเงื่อนไขอย่างรวดเร็ว การใช้ประโยชน์จากการประเมินแบบลัดวงจรสามารถช่วยลดเวลาในการประมวลผลได้ การใช้ตัวดำเนินการor ช่วยให้สามารถหลีกเลี่ยงการประมวลผลที่ไม่จำเป็นและสร้างโค้ดที่มีประสิทธิภาพได้
Ad
6. สรุป
ทบทวนตัวดำเนินการ `or`
ตัวดำเนินการor มีบทบาทสำคัญอย่างยิ่งในฐานะพื้นฐานของการดำเนินการเชิงตรรกะในการเขียนโปรแกรม Python โดยมีคุณสมบัติที่ส่งคืน True หากเงื่อนไขใดเงื่อนไขหนึ่งจากหลายเงื่อนไขเป็น True และมักใช้ในสถานการณ์ต่างๆ เช่น การแยกเงื่อนไขและการตั้งค่าค่าเริ่มต้น นอกจากนี้ ตัวดำเนินการ or ยังทำการประเมินแบบลัดวงจร ซึ่งนำไปสู่การเพิ่มประสิทธิภาพลองใช้ในโค้ดจริง
นอกเหนือจากทฤษฎีแล้ว ขอแนะนำอย่างยิ่งให้ลองใช้ตัวดำเนินการor ในสภาพแวดล้อมการพัฒนา Python จริงๆ ลองใช้ตั้งแต่การใช้งานพื้นฐานไปจนถึงตัวอย่างการประยุกต์ใช้ที่หลากหลาย และดูว่าโค้ดทำงานอย่างไร การสัมผัสกับการทำงานของเงื่อนไขและวิธีการเขียนโค้ดที่มีประสิทธิภาพด้วยตัวเองจะช่วยให้เข้าใจได้ลึกซึ้งยิ่งขึ้น


