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

ฟังก์ชันขั้นสูง
ฟังก์ชันซ้อน

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

รวบรวม แจกจ่ายใหม่ และเก็บผ้าที่ถูกผลิตโดยเครื่องโดยใช้ฟังก์ชันซ้อน

บางครั้งคุณอาจต้องการวางฟังก์ชันภายในฟังก์ชันอื่นเพื่อเพิ่มความสามารถของฟังก์ชันนั้น ซึ่งเรียกว่า ฟังก์ชันซ้อน หรือฟังก์ชันภายใน มีการใช้งานในหลายกรณี ตั้งแต่การสร้างโค้ดที่ใช้งานซ้ำง่ายภายในฟังก์ชัน ไปจนถึงการป้องกันฟังก์ชันของคุณจากการแก้ไขโดยภายนอก

ภายใน workshop มีเครื่องผลิตผ้าหลายเครื่อง บางเครื่องมีผ้าที่พร้อมสำหรับการเก็บ บางเครื่องต้องการด้ายเพื่อจบกระบวนการผลิตผ้า เครื่องแต่ละเครื่องมีพรมอยู่ด้านหน้าซึ่งเป็นสี "red" หรือ "green" หรือพรมสีเขียว ซึ่งจะบอกวิธีการใช้งานของเครื่อง ในตัวแก้ไขโค้ดจะมีการเขียนฟังก์ชันที่จะช่วยให้เราควบคุมเครื่องและทำการเก็บหรือวางวัสดุจากเครื่องนั้น

def operate_machine(color): def collect_cloth(): # Collect Code player.speak("Cloth is ready for storage") def place_thread(): # Place Code player.speak("Machine needed more materials") if color == "green": collect_cloth() if color == "red": place_thread()

ฟังก์ชันนี้มีชื่อว่า operate_machine และรับอาร์กิวเมนต์ชื่อ color โดยขึ้นอยู่กับพรมสีที่อยู่หน้าของเครื่อง การใส่อาร์กิวเมนต์เป็น "red" หรือ "green" จะแตกต่างการทำงานของเครื่อง ทำให้คุณสามารถวางหรือเก็บวัสดุต่าง ๆ ได้

ภายในฟังก์ชันจะมี ฟังก์ชันซ้อน สองตัว ชื่อ collect_cloth() และ place_thread() ที่ใช้สำหรับวัตถุประสงค์ตามชื่อที่บ่งบอกไว้ ฟังก์ชันเหล่านี้ขาดบรรทัดที่จำเป็นในการดำเนินการ ใน collect_cloth() ให้เพิ่มบรรทัด player.collect("cloth") ตามด้วย player.speak("Quilt is ready for storage") และใน place_thread() ให้เพิ่มบรรทัด player.place("thread") ตามด้วย player.speak("Machine needed more materials")

เมื่อเพิ่มบรรทัดที่ขาดไปใน ฟังก์ชันซ้อน แล้ว ให้เดินไปที่เครื่องหมาย X ที่สว่างอยู่หน้ากระป๋องและเก็บ "thread" เพื่อใช้งานในเครื่อง ด้วยคำสั่ง player.collect("thread")

จากนั้นเดินไปที่เครื่องหมาย X สีเข้มภายใน workshop และใช้ฟังก์ชันที่กำหนดเอง operate_machine ขณะเผชิญหน้ากับเครื่อง โดยเพิ่มอาร์กิวเมนต์เป็น "red" หรือ "green" ขึ้นอยู่กับพรมสีที่เครื่องหมาย X ตั้งอยู่ ตัวอย่างเช่น: operate_machine("red") ซึ่งจะช่วยให้คุณสามารถวางด้ายและเก็บผ้าได้

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

หนังสือโค้ด