Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python:ส่งคืนค่าหลายค่าจากฟังก์ชัน

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

ฟังก์ชัน 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 ชั้นนำและแหล่งข้อมูลการเรียนรู้ออนไลน์