Coding for KidsCoding for Kids
ระดับสร้างสรรค์ความท้าทายคู่มือครู
โหวตสำหรับฟีเจอร์
หลักสูตรการพัฒนาด้วย Python ขั้นสูง
บทที่
>
ระดับ

รายการขั้นสูง
การจัดเรียงชุด

วัตถุประสงค์

จัดระเบียบและทำอาหารโดยใช้ Sets เพื่อเรียงและรวมส่วนผสม

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

มีค่าคงที่ของลิสต์สาม (3) ตัว สอง (2) ตัวเป็นเนื้อสัตว์ ชื่อ: pack1 และ pack2 และอีกหนึ่ง (1) ตัวคือวัสดุสำหรับทำอาหาร ชื่อ ingredients. เดินไปยังเครื่องหมาย X สีส้มที่มืดและหันหน้าไปทางตู้เย็น ใช้ฟังก์ชัน collect() เพื่อหยิบ pack1 และ pack2 จากตู้เย็น เช่นนี้: player.collect(pack1).

เมื่อเนื้อสัตว์ถูกเก็บแล้ว เดินไปยังเครื่องหมาย X สีสว่างและหันหน้าไปทางเขียง ที่นี่เราจะตรวจสอบเนื้อหาของแพ็คโดยใช้ฟังก์ชัน speak() กับค่าคงที่ลิสต์ทั้งสองตัวที่คุณเก็บมา จากตรงนี้เราจะรวบรวมรายการโดยใช้ Sets เช่นเดียวกับในระดับก่อนหน้า สร้าง Sets สองตัวชื่อ set1 และ set2 และใช้ฟังก์ชัน set() มอบหมายค่า pack1 และ pack2 ให้กับพวกมัน เช่นนี้: set1 = set(pack1).

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

วิธีแรกในการทำเช่นนี้เรียกว่า systemic_difference ซึ่งจะช่วยให้เราคัดแยกรายการที่ไม่ซ้ำกันระหว่างแต่ละ Set สร้าง Set ชื่อ unique และใช้ Sets ทั้งสองตัวเพื่อเปรียบเทียบและระบุรายการที่ไม่ซ้ำกันด้วย systemic_difference เช่นนี้: unique = set1.symmetric_difference(set2). ใช้ฟังก์ชัน speak() กับ Set ที่คุณสร้างขึ้นเพื่อยืนยันเนื้อหาของชุด

ต่อด้วยการจัดเรียงโดยการสร้าง Set ชื่อ shared และใช้เมธอด intersection ที่เราได้เรียนรู้ในระดับก่อนหน้าเพื่อระบุรายการที่พบในทั้งสอง Sets ใช้ Sets ทั้งสองตัวเพื่อเปรียบเทียบและระบุรายการ เช่นนี้: shared = set1.intersection(set2). ใช้ฟังก์ชัน speak() กับ Set ที่คุณสร้างขึ้นเพื่อยืนยันเนื้อหาของชุด

สุดท้าย ใช้เมธอดที่เรียกว่า difference ซึ่งจะช่วยให้เราคัดแยกรายการที่พบในเพียงหนึ่ง Set เท่านั้นและไม่พบในอีกชุด สร้าง Sets สองตัวชื่อ meat1 และ meat2 ใช้ Sets เดิมทั้งสองตัวเพื่อเปรียบเทียบและระบุรายการโดยใช้ difference เช่นนี้: meat1 = set1.difference(set2) และ meat2 = set2.difference(set1). ใช้ฟังก์ชัน speak() กับ Sets เนื้อสัตว์ทั้งสองที่คุณสร้างขึ้นเพื่อยืนยันเนื้อหาของแต่ละชุด

ด้วยวิธีนี้ เนื้อสัตว์จะถูกจัดเรียงแล้ว เดินไปยังเครื่องหมาย X สีมืดเหนือพรมสีน้ำเงิน หันหน้าไปที่ตู้เย็นและใช้ฟังก์ชัน place() เพื่อเก็บ Set shared ที่คุณสร้างขึ้น เช่นนี้: player.place(shared). ด้วยวิธีนี้คุณจะเก็บส่วนผสมที่คุณไม่ได้ปรุงอาหารไว้

เดินไปยังเครื่องหมาย X สีทอง หันหน้าไปที่ตู้เก็บของและใช้ฟังก์ชัน collect() เพื่อรับค่าคงที่ลิสต์สุดท้ายชื่อ ingredients และใช้ฟังก์ชัน speak() เพื่อยืนยันเนื้อหาของมัน นำองค์ประกอบใน ingredients ไปยัง Set ใหม่ชื่อ set3. เมื่อคุณมีส่วนผสมทั้งหมดแล้ว ให้สร้าง Sets สองตัวชื่อ meal1 และ meal2 โดยใช้เมธอด union รวมทุกองค์ประกอบที่จำเป็นสำหรับการปรุงอาหาร

สำหรับ meal1 รวม set3 และ meat1 ดังนี้: meal1 = set3.union(meat1). เดินไปยังเครื่องหมาย X สีมืดเหนือพรมสีม่วง และกับ Set meal1 ใช้ฟังก์ชัน speak() เพื่อยืนยันเนื้อหาและฟังก์ชัน place() เพื่อปรุงอาหารในหม้อ

สำหรับ meal2 ทำเช่นเดียวกัน แต่ใช้เมธอด union กับ set3 และ meat2. เดินไปยังเครื่องหมาย X สีมืดเหนือพรมสีเหลืองและหันหน้าไปที่หม้อ ใช้ฟังก์ชัน speak() และ place() กับ meal2 เพื่อทำให้ระดับเสร็จสมบูรณ์

หนังสือโค้ด