‫มาพูดถึงตรรกะแบบมีเงื่อนไข ซึ่งเป็นแนวคิดที่สำคัญทั่วๆ ไปในการเขียนโปรแกรม
‫ฉันหมายถึงอะไรโดยตรรกะแบบมีเงื่อนไข
‫เราได้เรียนรู้เกี่ยวกับบูลีนแล้วใช่ไหม
‫เรามีจริง.
‫และเรามีเท็จ
‫และบางท่านอาจสงสัยว่าทำไมมันถึงมีประโยชน์มาก
‫และเมื่อพูดถึงตรรกะแบบมีเงื่อนไข บูลีนมีความสำคัญมากจริงๆ
‫ตัวอย่างเช่น สมมติว่าเราสร้างตัวแปรเป็น alt
‫และคุณรู้อะไรไหม
‫เราจะสร้างรถยนต์ที่ตรวจจับโดยอัตโนมัติว่าคุณสามารถสตาร์ทเครื่องยนต์ได้หรือไม่
‫บางทีหากคุณอายุไม่มากพอ เครื่องยนต์จะสตาร์ทไม่ติดและไม่อนุญาตให้คุณขับเพื่อให้แน่ใจว่ารถคันนี้ปลอดภัยสุดๆ
‫และมีเพียงผู้ที่มีอายุมากกว่า 18 ปีเท่านั้นที่สามารถขับมันได้
‫แล้วเราจะเขียนโค้ดแบบนั้นได้อย่างไร?
‫สมมติว่าเทสลามีคุณสมบัติใหม่เช่นนี้
‫เราจะมีบางอย่างที่เหมือนเก่า และเราจะตั้งค่านี้เป็น
‫จริง.
‫ถูกต้อง.
‫บางทีเราอาจมีอย่างอื่น
‫บางทีมันอาจจะตรวจสอบใบอนุญาตเพื่อให้แน่ใจว่าเรามีใบอนุญาตเพื่อให้เราสามารถพูดได้ว่าเป็นใบอนุญาต
‫จากนั้นเราสามารถตั้งค่าเป็นจริงได้
‫ตอนนี้สิ่งเหล่านี้สามารถเปลี่ยนแปลงได้จริงและเท็จขึ้นอยู่กับผู้ใช้และไดรเวอร์
‫แต่เมื่อฉันพูดถึงเงื่อนไข นี่คือสิ่งที่ฉันหมายถึง
‫ใน Python เราสามารถใช้ if คีย์เวิร์ดเพื่อบอกว่าเงื่อนไขบางอย่างมีอยู่หรือไม่ และนี่เป็นเพียงฉันเขียนมัน
‫มันไม่มีอยู่จริง
‫คุณจะเห็นว่าฉันได้ขีดเส้นใต้สีแดงพร้อมไวยากรณ์ที่ไม่ถูกต้อง
‫แต่ในที่นี้เราต้องการพูดถึงเงื่อนไขที่ประเมินว่าเป็นจริงหรือเท็จ
‫ในกรณีของเรา เราสามารถพูดได้ว่า เฮ้ ถ้าเก่า ซึ่งประเมินอะไรได้ดี มีค่าจริง
‫ถ้าจริงก็พิมพ์
‫คุณอายุมากพอที่จะขับรถ
‫ตอนนี้มีสิ่งใหม่สองสามอย่างที่นี่
‫หนึ่ง ฉันได้เพิ่มอัฒภาคหรือทวิภาค
‫แล้วคุณจะเห็นว่าการเยื้องต่างกัน
‫แท้ที่จริงแล้วเมื่อผมกด Enter
‫หลังจาก Cullen คุณจะเห็นว่ามันให้พื้นที่ฉันโดยอัตโนมัติ
‫สิ่งนี้บอกล่าม Python ว่าฉันกำลังจะทำคำสั่ง if ซึ่งเป็นการดำเนินการตามเงื่อนไข
‫และหากสิ่งนี้เกิดขึ้นจริง
‫เรียกใช้ทุกอย่างที่อยู่ภายในนี้ที่มีการเยื้องนี้
‫และถ้าฉันทำอะไรโดยไม่มีการเยื้อง สมมุติว่าพิมพ์
‫ตรวจสอบ.
‫สิ่งนี้สำหรับล่าม Python เป็นเหมือนบรรทัดใหม่ทั้งหมด
‫มันไม่ได้เป็นส่วนหนึ่งของบล็อก F นี้
‫และถ้าคุณใช้ระลอกคลื่นที่คุณเห็นตรงนี้, ผมจะได้เครื่องหมายลบเล็กน้อยหากผมคลิกตรงนี้
‫คุณเห็นว่ามันซ่อนอย่างไร
‫สิ่งที่มันทำคือมันบอกว่า เฮ้ นี่คือบล็อคโค้ดตรงนี้
‫มันเป็นเรื่องทั้งหมดในตัวเอง
‫แต่สิ่งภายนอกที่ไม่ได้เยื้องอย่างดีจะไม่เป็นของมัน
‫สำหรับล่าม Python จะบอกว่า ฉันมีบรรทัดนี้ แล้วก็มีบรรทัดนี้
‫ให้ฉันแสดงให้คุณเห็นว่าฉันหมายถึงอะไรหากฉันเรียกใช้โปรแกรมนี้
‫ฉันเข้าใจว่าคุณโตพอที่จะขับรถ
‫แล้วฉันยังได้รับเช็ค
‫ตรวจสอบ.
‫แต่ถ้าผมบอกว่าของเก่าตอนนี้เป็นเท็จล่ะ?
‫คุณคิดว่าจะเกิดอะไรขึ้น?
‫ถ้าฉันเรียกใช้สิ่งนี้
‫ฉันเข้าใจ?
‫ตรวจสอบ.
‫ล่าม Python ของเรากำลังจะบอกว่า เฮ้ ตั้งค่าผลลัพธ์ของตัวแปรเป็นเท็จ เฮ้ ชุดได้รับอนุญาตเท่ากับจริง
‫แล้วก็ไปต่อแถวสาม
‫ไม่ ไม่มีอะไรที่นั่น
‫ฉันจะไปต่อสายเพื่อ
‫นี่ถ้าแก่แล้วจริงมั้ย?
‫เลขที่
‫หากทั้งหมดนี้เป็นเท็จและล่ามจะบอกว่า อ้อ ฉันควรจะรันโค้ดชิ้นนี้เท่านั้นหากสิ่งนี้เป็นจริง
‫เพราะตอนนี้เป็นเท็จ ฉันจะเพิกเฉยต่อสิ่งที่อยู่ข้างใต้นี้และไปที่ บรรทัดถัดไปที่ไม่มีการเยื้อง
‫มันจะพิมพ์ ตรวจสอบ ตรวจสอบ
‫และนี่คือพลังของเงื่อนไข
‫เราสามารถข้ามบรรทัดได้
‫ล่ามไม่สนใจด้วยซ้ำว่ามีอะไรอยู่ที่นี่ เพราะฉันเพิ่งบอกโปรแกรมของฉันให้ข้ามจากบรรทัดที่
‫4 ไปบรรทัดที่ 6
‫มันเจ๋งแค่ไหน?
‫เราจึงได้เรียนรู้ว่ามี this if คีย์เวิร์ด แต่ก็มีอีกสิ่งหนึ่งที่เราสามารถใช้เรียกว่า else
‫และคุณจะสังเกตได้ว่าฉันไม่ได้เพิ่มเข้าไปในการเยื้อง
‫และอย่างอื่นตามชื่อก็พูดง่ายๆ
‫เฮ้ถ้าสิ่งนี้เป็นจริงก็ทำเช่นนี้
‫อย่างอื่นยังทำเช่นนี้
‫และอีกครั้ง คุณเห็นว่าฉันได้เพิ่มการเยื้อง
‫ดังนั้นลองเดาว่าจะเกิดอะไรขึ้นในโปรแกรมนี้
‫ถ้าฉันคลิกเรียกใช้
‫ฉันได้รับเช็ค
‫ตรวจสอบเพราะมันบอกว่า เฮ้ เก่าแล้ว
‫จริงหรือ?
‫ไม่มันไม่จริง
‫ตกลง.
‫ฉันจะเพิกเฉยอย่างสมบูรณ์ว่าล่ามเห็นอย่างอื่น
‫นี่ไม่เป็นความจริง
‫ดังนั้นฉันจะวิ่ง
‫เมื่อใดก็ตามที่ค่านี้เป็นเท็จ ฉันจะเรียกใช้เสมอ
‫พิมพ์ตรวจสอบ
‫ตรวจสอบ.
‫ถ้าฉันเปลี่ยนล่ะ?
‫เก่าถึงตอนนี้เท่ากับจริงหรือไม่?
‫จะเกิดอะไรขึ้นต่อไป?
‫ดี.
‫ฉันเข้าใจ?
‫คุณอายุมากพอที่จะขับรถ
‫อื่น.
‫ทำงานเฉพาะเมื่อบล็อก f ของรหัสประเมินเป็นเท็จ
‫เยี่ยมมาก
‫ไม่เป็นไร.
‫ผมขอถามอะไรคุณอีก.
‫ถ้าฉันพิมพ์ที่นี่ล่ะ
‫และขอเปลี่ยนสิ่งนี้เพื่อคุณอายุไม่ถึง
‫ถ้าฉันเรียกใช้สิ่งนี้
‫นั่นคือสิ่งที่คุณคาดหวัง?
‫ฉันหวังว่าตอนนี้คุณจะเห็นด้วยว่านี่เป็นพฤติกรรมที่คาดหวังเพราะความเก่าเป็นความจริง
‫ฉันจะพิมพ์สิ่งนี้ จากนั้นล่าม Python จะพูดว่า นี่เป็นเรื่องจริง ดังนั้นฉันจะเพิกเฉยต่อบล็อกทั้งหมดแล้วไปที่บรรทัดถัดไป
‫มีอะไรอยู่ในบรรทัดที่แปด?
‫ไม่มีอะไร.
‫ฉันจะไปที่บรรทัดที่ 9 และฉันจะพิมพ์ OC OC OC
‫อย่างที่คุณเห็น ตอนนี้เรากำลังควบคุมการไหลของโปรแกรมของเรา โดยที่แทนที่จะเริ่มจาก 1 ถึง 9 แค่บรรทัดต่อบรรทัด
‫ตอนนี้เรากำลังพูดถึงบรรทัดที่สี่ ตรวจสอบบางอย่าง
‫และตามนั้น ให้ข้ามไปสองสามบรรทัด
‫เยี่ยมมาก
‫ไม่เป็นไร.
‫มีอีกสิ่งหนึ่งที่ฉันต้องการแสดงให้คุณเห็น
‫และมันคือ L
‫ถ้า.
‫และฉันรู้ว่าลักษณะนี้ดูแปลก
‫คุณจะคิดว่ามันจะเป็นอย่างอื่นถ้า แต่
‫ไม่ไม่ไม่.
‫มันคือล.
‫เอฟ
‫และคุณคิดว่าสิ่งนี้ทำอะไร?
‫คุณใช้มันร่วมกับถ้าคุณพูดอะไรบางอย่าง
‫ถ้า.
‫มิฉะนั้น.
‫อื่น.
‫ถ้า.
‫เงื่อนไขอื่น.
‫เอาเป็นว่า.
‫ได้รับใบอนุญาต
‫แล้วทำเงื่อนไขอื่น
‫สมมุติว่าพิมพ์
‫คุณสามารถขับรถได้แล้ว
‫ลองผ่านเรื่องนี้อีกครั้ง
‫จะบอกว่าคนนี้โตพอมั้ย?
‫หากบุคคลนั้นแก่พอและสิ่งนี้ประเมินว่าเป็นจริง
‫ดีแล้วฉันต้องการให้คุณ
‫เรียกใช้สิ่งนี้
‫มิฉะนั้น.
‫ฉันต้องการให้คุณใช้เงื่อนไขนี้
‫เฮ้ จริงเหรอ?
‫เลขที่
‫ถ้าไม่จริงก็ข้ามไปที่อื่น
‫แล้วจะเกิดอะไรขึ้นหากฉันคลิกเรียกใช้
‫เราได้รับจริงสำหรับบล็อกเงื่อนไขแรกตรงนี้
‫ตัวแปลอัตโนมัติของ Python จะบอกว่า เราเพิ่งรู้ความจริงที่นี่ ดังนั้นฉันจะเพิกเฉยและเพิกเฉยต่อสิ่งนี้แล้วพิมพ์
‫ตกลงตกลง.
‫แต่สมมุติว่าของเก่าตอนนี้เป็นเท็จ
‫จะเกิดอะไรขึ้นต่อไป?
‫ถ้าฉันคลิกเรียกใช้
‫นี้เป็นเท็จ
‫ล่าม Python จะบอกว่า ไม่ ไม่สนใจบล็อกนี้ และฉันจะไป เฮ้ อย่างอื่นถ้ามีเงื่อนไข
‫เฮ้ บุคคลนี้ได้รับอนุญาตหรือไม่
‫ใช่พวกเขาเป็น
‫ดังนั้นฉันจะพิมพ์
‫คุณสามารถขับรถได้เลยและไม่ต้องสนใจอย่างอื่น
‫ดังนั้นมันจึงทำงานเช่นนี้
‫เกิดอะไรขึ้นถ้าทั้งสองนี้เป็นเท็จ?
‫อย่างที่คุณจินตนาการได้ ล่าม Python จะไม่สนใจ มันจะเรียกใช้คำสั่งนี้ ไม่
‫นี่เป็นเท็จ ไม่ นี่เป็นเท็จ
‫และสุดท้ายมันก็จะรันสิ่งนี้
‫คุณเห็นไหมว่าอย่างอื่นเป็นสิ่งที่จับได้
‫ทั้งหมดนั่นคือ ถ้าเงื่อนไขเหล่านี้ไม่เป็นจริง เราจะดำเนินการนี้
‫ดังนั้นจึงเป็นตัวสำรองในแง่หนึ่ง
‫เฮ้ ถ้าทุกอย่างล้มเหลว ก็แค่ทำสิ่งนี้
‫เยี่ยมมาก
‫ทีนี้ ถ้าคุณดูโปรแกรมนี้ คุณคิดว่า อืม โปรแกรมนี้ใช้งานไม่ได้จริงๆ ใช่ไหม
‫ฉันหมายถึง เรากำลังตรวจสอบว่าบุคคลนั้นเก่าหรือไม่ และบุคคลนั้นได้รับอนุญาตหรือไม่ แต่เราไม่ควรตรวจสอบทั้งคู่
‫เราต้องการใครสักคนที่มีใบอนุญาตและแก่พอที่จะทำให้แห้ง
‫อืม.
‫นี่คือ.
‫นี่เป็นโปรแกรมบั๊กกี้
‫หากเราใช้สิ่งนี้ในเทสลา เราจะถูกฟ้องร้องเป็นจำนวนมากใช่ไหม?
‫เพราะเราสามารถหาใครสักคนที่อาจได้รับใบอนุญาตแต่ยังไม่โตพอ ซึ่งฉันคิดว่าไม่สมเหตุสมผล
‫แต่เราสามารถหาคนที่อายุมากพอแต่ไม่เคยได้รับใบขับขี่ และเราสามารถเข้าถึงรถได้ พวกเขาสามารถสตาร์ทเครื่องยนต์และขับได้
‫โอ้ นั่นเป็นคดีความที่รอให้เกิดขึ้น
‫แล้วเราจะแก้ไขได้อย่างไร?
‫อืม.
‫คุณรู้ไหมว่าพลังคืออะไร?
‫ว่านี่คือการแสดงออกใช่มั้ย?
‫ถ้าคุณจำได้ นิพจน์คือสิ่งที่สร้างมูลค่า
‫และนั่นหมายความว่านี่ไม่จำเป็นต้องให้คุณรู้ แค่มีจริงตรงนี้ อาจเป็นนิพจน์
‫ผมจะบอกได้ว่าถ้าใช่
‫เก่าและได้รับใบอนุญาต
‫แล้วฉันก็ทำได้
‫และนี่คือสิ่งใหม่ที่เราไม่เคยเห็นมาก่อน
‫ตอนจบ.
‫นี่เป็นอีกหนึ่งคีย์เวิร์ดใน Python
‫และในวิดีโอหน้า เราจะพูดถึงคำหลักเหล่านี้เพิ่มเติม
‫แต่นี่ควรอ่านเหมือนภาษาอังกฤษใช่ไหม
‫หากเก่าและได้รับอนุญาต ให้ทำดังนี้
‫ตอนนี้เราสามารถลบ LEF ออกได้แล้ว
‫แล้วที่นี่.
‫นิพจน์ทั้งสองจำเป็นต้องประเมินค่าความจริง
‫นั่นคือไม่ว่าอะไรจะเกิดขึ้นที่นี่
‫สิ่งนี้ต้องประเมินว่าเป็นจริง
‫และสิ่งนี้ต้องประเมินให้เป็นจริง
‫และเฉพาะเมื่อทั้งสองเป็นจริงอีกครั้งในสถานะสิ้นสุด แสดงว่าคุณอายุมากพอที่จะขับรถและคุณมีใบอนุญาต
‫เพื่อที่ว่าถ้าฉันเรียกใช้สิ่งนี้
‫ฉันได้รับอัตราข้อผิดพลาดเพราะหรือไม่ใช่ข้อผิดพลาด แต่มันเข้าไปในบล็อกเพราะทั้งสองอย่างนี้เป็นเท็จ
‫หากเพียงหนึ่งในนั้นเป็นจริงและฉันคลิกเรียกใช้
‫คุณไม่ได้อายุมากเพราะทั้งสองอย่างนี้ต้องเป็นความจริง
‫ถ้าฉันคลิกเรียกใช้
‫เฮ้.
‫เอาล่ะ รถกำลังสตาร์ท
‫คุณสามารถขับรถออกไปพร้อมกับเทสลาของคุณ
‫ตกลง.
‫ก่อนที่ฉันจะจบวิดีโอนี้ เพราะมันเยอะมาก ฉันอยากจะสังเกตสิ่งหนึ่งนั่นคือคำสั่ง
‫l if
‫คำสั่งจริงมีประโยชน์จริง ๆ เพราะเมื่อคุณมีโค้ดแบบนี้ คุณจะมีคำสั่ง
‫if และคำสั่ง L
‫โดยปกติคุณจะเห็นเพียงอย่างใดอย่างหนึ่งเท่านั้น
‫ฉันหมายถึง แน่นอน ในส่วนอื่นของโปรแกรม ฉันอาจมีคำสั่ง if อื่น และคำสั่ง
‫if ร่วมกับคำสั่ง else อื่นในนี้
‫แต่โดยปกติเมื่อคุณรวมกลุ่มนี้ไว้ด้วยกัน คุณจะเห็นเพียงหนึ่ง if และอีกอันหนึ่ง แต่คุณสามารถมี
‫FS ได้หลายตัว ดังนั้นฉันสามารถมีเงื่อนไขอื่นที่นี่ จากนั้นฉันสามารถมีอีกเงื่อนไขหนึ่งที่นี่ และคุณสามารถมีได้มากเท่าที่คุณ
‫ต้องการ.
‫ในที่สุด โปรแกรมจะประเมินเงื่อนไขข้อใดข้อหนึ่งเป็นจริง หรือจะเข้าสู่เงื่อนไขอื่น
‫BLOCK แต่โดยปกติคุณทำตามคำสั่งนี้
‫ไม่เป็นไร.
‫นั่นเป็นจำนวนมาก
‫มาพักสมองและสำรวจหัวข้อนี้กันสักหน่อยดีกว่า
‫เจอกันใหม่ตอนหน้าค่ะ
‫ลาก่อน.