มาพูดถึงตรรกะแบบมีเงื่อนไข ซึ่งเป็นแนวคิดที่สำคัญทั่วๆ ไปในการเขียนโปรแกรม
ฉันหมายถึงอะไรโดยตรรกะแบบมีเงื่อนไข
เราได้เรียนรู้เกี่ยวกับบูลีนแล้วใช่ไหม
เรามีจริง.
และเรามีเท็จ
และบางท่านอาจสงสัยว่าทำไมจึงมีประโยชน์
และเมื่อพูดถึงตรรกะแบบมีเงื่อนไข บูลีนมีความสำคัญมากจริงๆ
ตัวอย่างเช่น สมมติว่าเราสร้างตัวแปรเป็น 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 แต่โดยปกติคุณทำตามคำสั่งนี้
ไม่เป็นไร.
นั่นเป็นจำนวนมาก
มาพักสมองและสำรวจหัวข้อนี้กันสักหน่อยดีกว่า
เจอกันใหม่ตอนหน้าค่ะ
ลาก่อน.