คุณสามารถคืนค่าหลายค่าได้โดยการรวมค่าเหล่านั้นไว้ในพจนานุกรม ทูเพิล หรือรายการ ชนิดข้อมูลเหล่านี้ช่วยให้คุณจัดเก็บค่าที่คล้ายกันได้หลายค่า คุณสามารถแยกค่าแต่ละค่าออกจากค่าเหล่านี้ได้ในโปรแกรมหลักของคุณ หรือคุณสามารถส่งผ่านหลายค่าและคั่นด้วยเครื่องหมายจุลภาคได้
ฟังก์ชัน Python สามารถคืนค่าได้หลายค่า หากต้องการคืนค่าหลายค่า คุณสามารถส่งคืนพจนานุกรม, Python tuple หรือรายการไปยังโปรแกรมหลักของคุณ
คู่มือนี้จะกล่าวถึงวิธีการคืนค่าหลายค่าให้กับโปรแกรมหลักโดยใช้สองวิธีนี้ เริ่มกันเลย
Python:ส่งคืนค่าหลายค่า
คุณสามารถคืนค่าหลายค่าจากฟังก์ชัน Python โดยใช้:
- รายการที่ประกอบด้วยหลายค่า
- ทูเพิลที่มีค่าหลายค่า
- พจนานุกรมที่มีหลายระเบียน
- ค่าหลายค่าคั่นด้วยเครื่องหมายจุลภาค
ชนิดข้อมูลทั้งหมดข้างต้นทำให้คุณสามารถจัดเก็บค่าได้หลายค่า วิธีแก้ปัญหาในการคืนค่าหลายค่าโดยคั่นด้วยเครื่องหมายจุลภาคเป็นวิธีที่สง่างามที่สุด เนื่องจากวิธีนี้ทำให้เจตนาของคุณชัดเจน:เพื่อคืนค่าหลายค่าที่แยกจากกันกลับไปที่โปรแกรมหลักของคุณ
คำสั่งส่งคืน Python ส่งค่าจากฟังก์ชันไปยังโปรแกรมหลัก คำสั่งนี้ใช้บ่อยที่สุดเพื่อคืนค่าหนึ่งค่าไปยังโปรแกรมหลัก สามารถใช้เพื่อคืนค่าหลายค่าไปยังโปรแกรมหลักได้
Python:ส่งคืนค่าหลายค่าด้วยเครื่องหมายจุลภาค
คุณสามารถคืนค่าหลายค่าได้โดยแยกค่าที่คุณต้องการส่งคืนด้วยเครื่องหมายจุลภาค ค่าเหล่านี้ควรปรากฏหลังคำสั่งส่งคืน Python ของคุณ
เราจะเขียนโปรแกรมที่คำนวณจำนวนการขายที่ร้านขายอุปกรณ์อิเล็กทรอนิกส์ เราจะนับยอดขายที่มีมูลค่ามากกว่า $500 เท่านั้น โปรแกรมของเราจะคำนวณมูลค่าเฉลี่ยของการขายแต่ละครั้งด้วย
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
ในการเริ่มต้น ให้กำหนดอาร์เรย์ Python ที่มีรายการขาย:
sales = [59.99, 240.00, 655.25, 75.99]
ต่อไป เขียนฟังก์ชัน Python ที่คำนวณจำนวนยอดขายที่มีมูลค่ามากกว่า $500 และมูลค่าการซื้อเฉลี่ย:
def calculate_data(sales): over_limit = 0 for s in sales: if s > 500: over_limit += 1 average_purchase = sum(sales) / len(sales) return over_limit, average_purchase
ฟังก์ชันของเราทำซ้ำทุกการขายในรายการของเราโดยใช้ for loop หากการขายมีมูลค่ามากกว่า $500 ตัวแปร Python “over_limit” ของเราจะเพิ่มขึ้นหนึ่งรายการ จากนั้นเราจะคำนวณมูลค่าเฉลี่ยของการซื้อโดยการหารมูลค่ารวมของยอดขายทั้งหมดด้วยจำนวนการขายที่ทำ
ที่ส่วนท้ายของฟังก์ชัน ให้ใช้คำสั่ง return เพื่อคืนค่า "over_limit" และ "average_purchase" ไปยังโปรแกรมหลักของเรา
ที่เหลือก็แค่เรียกใช้ฟังก์ชันของเราและแสดงข้อมูลที่โปรแกรมคำนวณไปที่คอนโซล:
over_limit, average_purchase = calculate_data(sales) print("{} sales were made over $500. The average purchase was ${}.".format(over_limit, round(average_purchase)))
เราปัดเศษการซื้อเฉลี่ยเป็นทศนิยมสองตำแหน่งโดยใช้ round() กระบวนการ. รหัสของเราพิมพ์ข้อความแจ้งค่าที่เราคำนวณไว้ เริ่มต้นโปรแกรมของเรา:
1 sales were made over $500. The average purchase was $258.
โปรแกรมของเราประสบความสำเร็จในการบอกเราว่ามียอดขายมากกว่า $500 และราคาเฉลี่ยของการซื้อเป็นเท่าใด
รหัสนี้ใช้งานได้เนื่องจากคำสั่ง "return" เปลี่ยนค่าของเราให้เป็น tuple และส่งคืนรายการ tuple ไปยังโปรแกรมหลักของเรา จากนั้นเราคลาย tuple นี้ออกเป็นสองตัวแปรในบรรทัดของโค้ดนี้:
over_limit, average_purchase = calculate_data(sales)
Python:ส่งคืนค่าหลายค่าด้วย List หรือ Tuple
ทั้งรายการและทูเพิลช่วยให้คุณเก็บค่าได้หลายค่า ซึ่งหมายความว่าเราสามารถใช้เพื่อคืนค่าหลายค่าไปยังโปรแกรมหลักของเราได้
การใช้รายการหรือทูเพิลจะดีที่สุดถ้าค่าที่คุณกำลังส่งคืนมีความสัมพันธ์บางอย่าง แต่คุณสามารถใช้วิธีนี้เพื่อคืนค่าชุดค่าต่างๆ ได้
เราจะคืนขนาดการซื้อโดยเฉลี่ยและจำนวนการซื้อที่มีมูลค่ามากกว่า $500 ให้กับโปรแกรมหลักของเรา ในการทำเช่นนั้น ให้ย้อนกลับไปดูตัวอย่างของเราก่อนหน้านี้และทำการเปลี่ยนแปลงเล็กน้อยเพื่อใช้รายการ:
def calculate_data(sales): over_limit = 0 for s in sales: if s > 500: over_limit += 1 average_purchase = sum(sales) / len(sales) return [over_limit, average_purchase]
เราเพิ่งแยกค่าของเราออกเป็นรายการเดียว รายการของเราประกอบด้วยจำนวนการซื้อที่มีมูลค่ามากกว่า $500 และมูลค่าการซื้อเฉลี่ยตามลำดับ
เราสามารถส่งคืนโครงสร้างข้อมูลทูเพิลได้ ในการทำเช่นนั้น เราจะแทนที่วงเล็บเหลี่ยมของเราด้วยวงเล็บปีกกา ปัจจัยสำคัญที่ต้องพิจารณาคือ ทูเพิลไม่สามารถมีค่าที่ซ้ำกันได้ หากมีโอกาสสองค่าที่คุณส่งผ่านไปยังโปรแกรมหลักจะเท่ากัน ให้หลีกเลี่ยงการใช้ทูเพิล
ในการเข้าถึงค่าเหล่านี้ในโปรแกรมหลักของเรา เราต้องใช้การจัดทำดัชนี:
values = calculate_data(sales) print("{} sales were made over $500. The average purchase was ${}.".format(values[0], round(values[1])))
เราใช้ไวยากรณ์ values[0] เพื่อเข้าถึงค่าแรกในรายการที่ฟังก์ชันคำนวณ_data() ของเราส่งคืน ซึ่งสอดคล้องกับค่าของ “over_limit” ในฟังก์ชันของเรา เราใช้ไวยากรณ์ values[1] เพื่อเข้าถึงมูลค่าของการซื้อโดยเฉลี่ย
รหัสของเราส่งคืน:
1 sales were made over $500. The average purchase was $258.
โค้ดของเราทำงานเหมือนกับตัวอย่างที่แล้ว แต่คราวนี้เราใช้รายการเพื่อแยกค่าในโค้ดของเรา
Python:ส่งคืนค่าหลายค่าด้วยพจนานุกรม
เราสามารถคืนค่าหลายค่าจากฟังก์ชันโดยใช้พจนานุกรมได้
ในตัวอย่างที่แล้ว เราคืนค่าเพียงสองค่าไปยังโปรแกรมหลักของเรา วิธีนี้ทำให้สะดวกที่จะใช้ไวยากรณ์การคลายการแพ็ก (โดยที่คุณ "แยก" ค่าออกเป็นหลายตัวแปร)
หากเราทำงานกับค่าต่างๆ มากกว่า การส่งกลับพจนานุกรมที่เชื่อมโยงแต่ละค่ากับป้ายกำกับอาจทำได้ง่ายกว่า มาแก้ไขฟังก์ชันสุดท้ายของเราเพื่อใช้พจนานุกรมเพื่อคืนค่าหลายค่าไปยังโปรแกรมหลักของเรา:
def calculate_data(sales): over_limit = 0 for s in sales: if s > 500: over_limit += 1 average_purchase = sum(sales) / len(sales) return { "limit": over_limit, "average": average_purchase }
ฟังก์ชันของเราส่งคืนพจนานุกรมที่มีสองคีย์และค่า คีย์ "ขีดจำกัด" และ "ค่าเฉลี่ย" สามารถใช้เพื่อระบุแต่ละค่าโดยไม่ซ้ำกัน ตอนนี้ เราต้องแก้ไขการเรียกฟังก์ชันและคำสั่งพิมพ์เพื่อรองรับรูปแบบใหม่นี้:
values = calculate_data(sales) print("{} sales were made over $500. The average purchase was ${}.".format(values["limit"], round(values["average"])))
เราคืนพจนานุกรมกลับไปที่โปรแกรมหลักของเรา เรากำหนดพจนานุกรมนี้ให้กับตัวแปร "ค่า" จากนั้น เราใช้การจัดทำดัชนีเพื่อดึงค่าของ “ขีดจำกัด” และ “ค่าเฉลี่ย”
เริ่มต้นโปรแกรมของเรา:
1 sales were made over $500. The average purchase was $258.
โปรแกรมของเราส่งคืนการตอบกลับแบบเดิม สิ่งนี้เป็นที่คาดหมายเนื่องจากสิ่งที่เราได้ทำทั้งหมดได้เปลี่ยนวิธีการที่เราคืนค่าไปยังโปรแกรมหลักของเรา ตรรกะการคำนวณของเรายังคงเหมือนเดิม
บทสรุป
คุณสามารถคืนค่าหลายค่าจากฟังก์ชันโดยใช้พจนานุกรม ทูเพิล หรือรายการ ชนิดข้อมูลเหล่านี้ช่วยให้คุณเก็บค่าได้หลายค่า ไม่มีรูปแบบเฉพาะสำหรับการคืนค่าหลายค่า แต่วิธีการเหล่านี้ใช้แทนได้ดี
วิธีที่คั่นด้วยเครื่องหมายจุลภาคจะกระชับและเข้าใจง่ายขึ้นหากคุณกำลังทำงานกับค่าชุดเล็กๆ สมมติว่าคุณกำลังคืนค่าช่วงค่าที่มากขึ้นจากฟังก์ชัน คุณอาจต้องการใช้พจนานุกรมเพื่อส่งค่าหลายค่ากลับไปยังโปรแกรมหลัก
คุณต้องการที่จะเร่งการเดินทางของคุณในการเรียนรู้ภาษาการเขียนโปรแกรม Python หรือไม่? ดูคู่มือ How to Learn Python สำหรับคำแนะนำเกี่ยวกับหลักสูตร Python ชั้นนำและแหล่งข้อมูลการเรียนรู้ออนไลน์