เมื่อคุณทำงานกับคำสั่งแบบมีเงื่อนไข คุณอาจต้องการทำการเปรียบเทียบมากกว่าหนึ่งรายการในคำสั่ง ตัวอย่างเช่น คุณอาจต้องการตรวจสอบว่าคำสั่งสองคำประเมินว่าเป็นจริงหรือไม่ หรือหากข้อความสั่งหนึ่งในสองคำประเมินเป็นเท็จ
นั่นคือที่มาของตัวดำเนินการเชิงตรรกะของ Python ตัวดำเนินการเชิงตรรกะคือตัวดำเนินการชนิดพิเศษที่ให้คุณทำการเปรียบเทียบเชิงตรรกะได้มากกว่าหนึ่งรายการในคำสั่งแบบมีเงื่อนไข
บทช่วยสอนนี้จะกล่าวถึง พร้อมตัวอย่าง พื้นฐานของตัวดำเนินการ และวิธีใช้ตัวดำเนินการเชิงตรรกะสามตัวที่มีให้ใน Python
ตัวดำเนินการ Python
โอเปอเรเตอร์คือสัญลักษณ์ที่บ่งบอกถึงการดำเนินการพิเศษในไพธอน ตัวอย่างเช่น ตัวดำเนินการเครื่องหมายลบ (-) หมายถึงการดำเนินการลบ
ใน Python มีโอเปอเรเตอร์สามประเภทที่แตกต่างกัน เหล่านี้คือ:
- ตัวดำเนินการเลขคณิต:สิ่งเหล่านี้ช่วยให้คุณดำเนินการทางคณิตศาสตร์ในโปรแกรมได้
- ตัวดำเนินการเปรียบเทียบ:ช่วยให้คุณเปรียบเทียบค่า และคืนค่า True หรือคืนค่า False
- ตัวดำเนินการเชิงตรรกะ:สิ่งเหล่านี้ทำให้คุณสามารถรวมคำสั่งแบบมีเงื่อนไขได้
ตัวดำเนินการสองตัวที่สอง—การเปรียบเทียบและเชิงตรรกะ—อนุญาตให้โปรแกรมเมอร์ควบคุมการไหลของโปรแกรมได้ดีขึ้น ตัวอย่างเช่น คุณสามารถใช้ตัวดำเนินการเปรียบเทียบเพื่อตรวจสอบว่าเงื่อนไขเป็น True หรือไม่ และหากเป็นเช่นนั้น ให้เรียกใช้บล็อกโค้ดบางชุดในโปรแกรมของคุณ
ตัวดำเนินการเปรียบเทียบและตรรกะมักใช้กับ if
คำแถลง. ตัวอย่างเช่น สมมติว่าเราต้องการตรวจสอบว่าผู้ใช้เว็บไซต์ช็อปปิ้งออนไลน์มีอายุ 16 ปีขึ้นไปหรือไม่ เราสามารถทำได้โดยใช้รหัสนี้:
age = 17 if age >= 16: print("User is 16 or over!") else: print("User is under 16!")
รหัสของเราส่งคืน:ผู้ใช้อายุ 16 ปีขึ้นไป!
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
ในโปรแกรมนี้ เราใช้ตัวดำเนินการเปรียบเทียบเพื่อเปรียบเทียบว่าผู้ใช้อายุซึ่งเท่ากับ 17 ในกรณีนี้ มากกว่าหรือเท่ากับ 16 เนื่องจาก 17 มากกว่า 16 คำสั่งนี้จึงประเมินเป็น True และข้อความ User is 16 or over!
ถูกพิมพ์ไปที่คอนโซล
แต่ถ้าเราต้องการเรียกใช้การเปรียบเทียบหลายรายการใน if
คำแถลง? นั่นคือที่มาของตัวดำเนินการเชิงตรรกะ
ตัวดำเนินการตรรกะของ Python
Python มีโอเปอเรเตอร์ตรรกะสามตัวที่ให้คุณเปรียบเทียบค่าได้
ตัวดำเนินการเชิงตรรกะเหล่านี้ประเมินนิพจน์เป็นค่าบูลีน และส่งกลับค่า True หรือ False ขึ้นอยู่กับผลลัพธ์ของตัวดำเนินการ ตัวดำเนินการเชิงตรรกะสามตัวที่เสนอโดย Python มีดังนี้:
ชื่อ | คำอธิบาย | ตัวอย่าง |
และ | จริงถ้าทั้งสองนิพจน์เป็นจริง | a และ b |
หรือ | จริงถ้าอย่างน้อยหนึ่งนิพจน์เป็นจริง | a หรือ b |
ไม่ | จริงก็ต่อเมื่อนิพจน์เป็นเท็จ | ไม่ใช่ |
ตัวดำเนินการเชิงตรรกะมักจะใช้เพื่อประเมินว่านิพจน์สองนิพจน์หรือมากกว่านั้นประเมินวิธีใดวิธีหนึ่งหรือไม่
มาสำรวจตัวอย่างบางส่วนเพื่อแสดงให้เห็นว่าตัวดำเนินการเชิงตรรกะเหล่านี้ทำงานอย่างไร เราจะกลับไปที่ตัวอย่างการช็อปปิ้งออนไลน์ของเราตั้งแต่ก่อนหน้านี้
Python และโอเปอเรเตอร์
ตัวดำเนินการและจะประเมินเป็น True ถ้านิพจน์ทั้งหมดที่ระบุมีค่าเป็น True
สมมติว่าเรากำลังสร้างเว็บไซต์ช้อปปิ้งออนไลน์ ไซต์ของเราควรตรวจสอบเพื่อให้แน่ใจว่าผู้ใช้อายุเกิน 16 ปี และควรตรวจสอบให้แน่ใจว่าผู้ใช้มีบัญชีอยู่ในสถานะดี ในการทำเช่นนั้น เราสามารถใช้รหัสนี้:
age = 17 good_standing = True if (age >= 16) and (good_standing == True): print("This user's account can make a purchase.") else: print("This user's account cannot make a purchase.")
การคืนรหัสของเรา:บัญชีผู้ใช้นี้สามารถซื้อได้
ในโค้ดของเรา เราได้ใช้ and
คำสั่งเพื่อประเมินว่าผู้ใช้อายุ 16 ปีขึ้นไป และเพื่อประเมินว่าบัญชีของผู้ใช้อยู่ในสถานะดีหรือไม่ ในกรณีนี้ age >= 16
ถูกประเมินแล้ว good_standing == True
จะได้รับการประเมิน เนื่องจากข้อความทั้งสองนี้ประเมินเป็นจริง เนื้อหาของ if
. ของเรา คำสั่งจะถูกดำเนินการ
หากเงื่อนไขใดเงื่อนไขหนึ่งเหล่านี้ประเมินเป็นเท็จ—หากผู้ใช้อายุต่ำกว่า 16 ปี หรือมีบัญชีที่ไม่ได้อยู่ในสถานะดี—แสดงว่าเนื้อหาของelse
ของเรา คำสั่งจะถูกดำเนินการ
Python หรือ Operator
ตัวดำเนินการ or ประเมินเป็น True ถ้าอย่างน้อยหนึ่งนิพจน์ประเมินเป็น True
สมมติว่าเราต้องการให้ส่วนลด 5% แก่ผู้ซื้อทุกคนที่สมัครแผนสมาชิกของเรา และมอบส่วนลดให้กับผู้ที่มีอายุ 65 ขึ้นไปทุกคนที่ทำการซื้อ ในการทำเช่นนั้น เราสามารถใช้โปรแกรมต่อไปนี้:
loyalty_plan = False age = 67 if (loyalty_plan == True) or (age >= 65): discount = 5 else: discount = 0 print("Shopper discount: ", discount)
การคืนรหัสของเรา:ส่วนลดนักช้อป:5.
ในกรณีนี้ รหัสของเราจะประเมินว่า loyalty_plan
เท่ากับ True และยังประเมินว่า age
เท่ากับหรือมากกว่า 65 ในกรณีนี้ Loyalty_plan ไม่เท่ากับ True ดังนั้นคำสั่งนั้นจึงประเมินเป็น False แต่อายุมากกว่า 65 ดังนั้นข้อความดังกล่าวจึงประเมินเป็นจริง
เพราะเราระบุ or
คำสั่งในรหัสของเราและหนึ่งในเงื่อนไขของเราประเมินเป็นจริง เนื้อหาของ if
คำสั่งถูกเรียกใช้ อย่างไรก็ตาม หากผู้ใช้ของเราไม่ได้อยู่ในแผนความภักดีและอายุต่ำกว่า 65 ปี เนื้อหาใน else
ของเรา คำสั่งจะถูกเรียกใช้
ในกรณีนี้ ผู้ใช้ของเราได้รับส่วนลด 5% จากนั้นข้อความ Shopper discount:
ตามด้วยขนาดของส่วนลดของผู้ใช้ พิมพ์ไปที่คอนโซล
Python ไม่ใช่ตัวดำเนินการ
ตัวดำเนินการ not ประเมินเป็น True เฉพาะเมื่อนิพจน์ประเมินเป็น False
สมมติว่าส่วนลดของเราใช้ได้เพียงครั้งเดียว และเราต้องการให้ส่วนลดเฉพาะกับลูกค้าที่ยังไม่ได้ซื้อโดยใช้ส่วนลดเท่านั้น เราสามารถทำได้โดยใช้รหัสนี้:
used_discount = True if not(used_discount == True): print("This user has not used their discount.") else: print("This user has used their discount.")
การคืนรหัสของเรา:ผู้ใช้รายนี้ไม่ได้ใช้ส่วนลดของพวกเขา
ในโค้ดของเรา เราใช้คำสั่ง not เพื่อประเมินว่าคำสั่ง used_discount == True
ประเมินเป็นเท็จ ในกรณีนี้ เนื่องจากคำสั่งประเมินเป็น True คำสั่ง not
ประเมินเป็นเท็จ ส่งผลให้โค้ดอยู่ใน else
. ของเรา กำลังดำเนินการบล็อก
หากผู้ใช้ของเราไม่ได้ใช้ส่วนลด used_discount == True
จะถูกประเมินเป็นเท็จ ดังนั้น not
. ของเรา คำสั่งจะประเมินเป็น True และเนื้อหาของ if
. ของเรา คำสั่งจะถูกดำเนินการ
บทสรุป
ตัวดำเนินการเชิงตรรกะช่วยให้คุณควบคุมการไหลของโปรแกรมได้
ตัวดำเนินการตรรกะและช่วยให้คุณสามารถตรวจสอบว่านิพจน์สองนิพจน์เป็นจริงหรือไม่ ตัวดำเนินการตรรกะหรือ ช่วยให้คุณตรวจสอบว่านิพจน์หนึ่งในหลายนิพจน์เป็น True หรือไม่ และตัวดำเนินการ not ช่วยให้คุณตรวจสอบว่านิพจน์เป็นเท็จหรือไม่
ด้วยตัวอย่างที่ให้ไว้ในบทความนี้ คุณจะมีทุกสิ่งที่จำเป็นในการเริ่มใช้ตัวดำเนินการเชิงตรรกะในโค้ด Python ของคุณอย่างผู้เชี่ยวชาญ!