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

ฟังก์ชันขั้นสูง
ฟังก์ชันพหุรูป

ในบทนี้เราจะสำรวจฟังก์ชันแบบใหม่ ๆ การใช้งานที่หลากหลายสำหรับฟังก์ชันเหล่านี้ และวิธีการใช้งานให้เกิดประโยชน์สูงสุดเมื่อเขียนโค้ดด้วย Python.

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

Guide

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

ตรวจสอบสถานะของพืชผลและลูกหมู และยืนยันการจัดส่งอุปทานโดยใช้ฟังก์ชันพหุรูป

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

ในการทำงานเหล่านี้ คุณสามารถใช้ฟังก์ชันพหุรูปได้ ในกรณีนี้เราจะใช้ฟังก์ชัน len()

ฟังก์ชันพหุรูปคือฟังก์ชันที่สามารถใช้งานร่วมกับข้อมูลชนิดต่าง ๆ ได้ ตัวอย่างเช่น ฟังก์ชัน len() ใช้สำหรับคำนวณความยาวของวัตถุ ซึ่งวัตถุเหล่านี้สามารถเป็นข้อมูลชนิดต่าง ๆ เช่น list, dictionary และแม้แต่ string

เริ่มต้นโดยการนับจำนวนที่เครื่องหมาย X สีเข้มด้านล่างในทุ่ง ก่อนที่จะไปที่เครื่องหมาย X สีอ่อนในโรงเรือน

ภายในสนามที่อยู่ติดถนนมีลูกหมูหลายตัว ชื่อของพวกมันคือ "Peggle", "Peter", "Piper", "Pedro" ให้นำชื่อของพวกมันใส่ใน list เพื่อที่คุณจะได้นับจำนวน เช่นนี้: piglets = ["Peggle", "Peter", "Piper", "Pedro"]

สร้างตัวแปรชื่อ number เพื่อเก็บความยาวของ list โดยใช้ฟังก์ชัน len() เช่นนี้: number = len(piglets)

เมื่อคุณตั้งค่า list และตัวแปรเรียบร้อยแล้ว ให้ออกเดินไปที่เครื่องหมาย X สีเข้มด้านหน้าสนามลูกหมู หันหน้าเข้าหาสนามและใช้ฟังก์ชัน speak เพื่อ นับจำนวนลูกหมูโดยใช้ฟังก์ชัน speak() ใช้ตัวแปร number เพื่อแสดงผล เช่นนี้: player.speak("There are d% Piglets" % (number) )

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

มีพืชผล 3 ประเภท ได้แก่ "Tomatoes", "Pumpkins", "Eggplant". นับจำนวนพืชผลที่เติบโตของแต่ละชนิดและเก็บไว้ใน dictionary เช่นนี้:

crops = {} crops["Tomato"] = number of tomato crops crops["Pumpkin"] = number of Pumpkin crops crops["Eggplant"] = number of Eggplant crops

เมื่อคุณได้เติม dictionary ด้วยค่าที่ถูกต้องแล้ว ให้ใช้ฟังก์ชัน speak() ควบคู่กับฟังก์ชัน len() เพื่อคำนวณจำนวนประเภทของพืชผลที่มีอยู่ เช่นนี้: player.speak("There are d% types of crops" % ( len(crops) ) )

เมื่อคุณได้นับลูกหมูและพืชผลแล้ว ให้ออกเดินไปที่เครื่องหมาย X สีเข้มบนพรมสีม่วงเพื่อดูคำสั่งซื้อพืชผลที่จะส่งออก

มีค่าคงที่ตัวแปรชื่อ order ซึ่งเก็บ string ที่ประกอบด้วยคำสั่งซื้อพืชผลที่จะส่งออก

เราจำเป็นต้องตรวจสอบคำสั่งซื้อคืออะไรและมีคำสั่งซื้อทั้งหมดจำนวนเท่าใด โดยสามารถทำสิ่งนี้ได้โดยใช้ฟังก์ชัน speak() และการแยก string รวมถึงการใช้ฟังก์ชัน len()

player.speak( [*order] ) player.speak("There are d% orders of crops going out" % ( len(order) ) )

โดยการใส่ตัวแปร string ลงในวงเล็บและมี * เราสามารถใช้ตัวดำเนินการแยก string ได้ ตัวอย่างเช่น: [*string] สิ่งที่ทำคือการนำ string แยกออกเป็นตัวอักษรแต่ละตัวและนำมารวมอยู่ใน list โดยตัวอย่าง [*string] จะได้ผลลัพธ์เป็น list ['s', 't', 'r', 'i', 'n', 'g']. ในกรณีที่ใช้ len() กับ string มันจะนับจำนวนอักขระใน string นั้น

เพื่อสรุปแบบฝึกหัด ให้ออกเดินไปที่เครื่องหมาย X สีทองด้านขวาของโรงเรือน และตรวจสอบว่าต้องส่งมอบอาหารให้ลูกหมูกี่ปอนด์

สร้างตัวแปรชื่อ food โดยใช้ค่าจากตัวแปร number ที่คุณสร้างไว้ก่อนหน้านี้คูณกับ 35 เพื่อคำนวณจำนวนปอนด์ เช่นนี้: food = number * 35

ขณะที่หันหน้าเข้าหาโรงเรือน ให้ใช้ฟังก์ชัน speak() ควบคู่กับตัวแปร food เพื่อแสดงจำนวนอาหารที่จัดส่งเข้ามา เช่นนี้: player.speak("There are d% pounds of food coming in" % (food) )

หนังสือโค้ด