การผสมประเภทของ argument
คราวนี้ลองผสมประเภทของ argument กัน โจทย์คือให้นิยามฟังก์ชัน sort_all_types() ซึ่งรับทั้ง positional arguments และ keyword arguments แบบรับค่าได้หลายตัว แล้วค้นหาตัวเลขและสตริงทั้งหมดที่อยู่ภายใน จากนั้นนำมาต่อกันตามประเภท ให้ใช้ฟังก์ชัน sort_types() ที่นิยามไว้ก่อนหน้า (มีอยู่ใน workspace แล้ว) ฟังก์ชันนี้รับ positional argument แบบหลายตัว และคืนค่าเป็น tuple ที่ประกอบด้วยลิสต์ของตัวเลขและลิสต์ของสตริง (พิมพ์ sort_types? เพื่อดูข้อมูลเพิ่มเติม)
ควรระลึกไว้ว่า keyword arguments แบบรับค่าได้หลายตัวนั้นโดยพื้นฐานแล้วคือ dictionary ดังนั้นเมื่อส่งค่าให้ฟังก์ชัน sort_types() จะต้องส่งเฉพาะค่า (values) เท่านั้น
เคล็ดลับ: เพื่อเรียกใช้ฟังก์ชัน sort_types() ให้ถูกต้อง ต้องนึกถึงการใช้สัญลักษณ์ * อีกแบบหนึ่ง
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
ฝึกทำโจทย์สัมภาษณ์งานเขียนโค้ดด้วย Python
คำแนะนำการฝึกหัด
- นิยาม argument ที่ส่งให้ฟังก์ชัน (จะตั้งชื่อใดก็ได้)
- ค้นหาตัวเลขและสตริงทั้งหมดใน argument ตัวที่ 1
- ค้นหาตัวเลขและสตริงทั้งหมดใน argument ตัวที่ 2
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Define the arguments passed to the function
def sort_all_types(____, ____):
# Find all the numbers and strings in the 1st argument
nums1, strings1 = ____(____)
# Find all the numbers and strings in the 2nd argument
nums2, strings2 = ____(____.____)
return (nums1 + nums2, strings1 + strings2)
res = sort_all_types(
1, 2.0, 'dog', 5.1, num1 = 0.0, num2 = 5, str1 = 'cat'
)
print(res)