จะก๊อปปี้โค้ดซ้ำๆ ไปทำไม? ในเมื่อเราสร้าง
รู้จัก ฟังก์ชัน (Functions) และ โมดูล (Modules) ใน Python
ยินดีด้วยครับ น้องๆ ก้าวมาไกลมากแล้ว! ตอนนี้เรามีปัญหาใหม่คือ ถ้าเราเขียนโค้ดที่ซับซ้อน เช่น โค้ดคำนวณภาษี แล้วต้องใช้โค้ดชุดนี้ในหลายๆ หน้าของโปรแกรม เราจะก๊อปปี้แปะโค้ด 10 บรรทัดนี้ไปทุกที่เลยเหรอ? ถ้าจะแก้โค้ดทีหนึ่ง ต้องตามแก้ 10 ที่เลยนะ! ไม่ดีแน่ๆ
ทางออกคือการสร้าง "ฟังก์ชัน (Function)" หรือเปรียบเหมือนการสร้าง "โรงงานคำสั่งส่วนตัว" ครับ เราจะรวบรวมโค้ด 10 บรรทัดนั้นไว้ในฟังก์ชันเดียว แล้วแปะป้ายชื่อไว้ เวลาจะใช้ก็แค่เรียกชื่อฟังก์ชันนั้น... ทีเดียวจบ!
การสร้างฟังก์ชันใน Python ง่ายมากๆ ครับ เราจะใช้คำสำคัญว่า def (ย่อมาจาก define) ตามด้วยชื่อฟังก์ชันที่เราตั้งเอง มีขั้นตอนดังนี้:
โรงงานที่ฉลาดขึ้น คือโรงงานที่เราส่งวัตถุดิบ (ข้อมูล) เข้าไปให้มันประมวลผล แล้วมันส่งสินค้า (ผลลัพธ์) กลับมาให้เราครับ
() ตอนนิยามฟังก์ชันreturn เพื่อส่งผลลัพธ์กลับไปให้จุดที่เรียกใช้นอกจากการสร้างฟังก์ชันเองแล้ว Python ยังมีโรงงานสำเร็จรูปเก่งๆ ที่เรียกว่า "โมดูล (Modules)" มาให้เราอิมพอร์ต (import) มาใช้งานได้ฟรีๆ เลยครับ เช่น หากต้องการใช้สูตรคณิตศาสตร์ขั้นสูง เราต้องอิมพอร์ตโมดูล math เข้ามาครับ
math:import math (สั่งอิมพอร์ตโรงงาน math มา)print(math.pi) (เรียกใช้ค่า พาย π แบบเป๊ะๆ -> 3.141592...)print(math.sqrt(25)) (เรียกใช้ฟังก์ชันถอดสแควรูท √ -> ได้ 5.0)
มาทดสอบความเป็นผู้จัดการโรงงานฟังก์ชันกัน!
ข้อที่ 1: คำสำคัญ (Reserved Word) ในข้อใด ที่ใช้สำหรับเริ่มต้นการนิยามฟังก์ชันในภาษา Python?
ข้อที่ 2: ข้อใดคือประโยชน์ที่ชัดเจนที่สุดของการแบ่งโค้ดออกเป็นฟังก์ชันย่อยๆ?
ข้อที่ 3: หากต้องการใช้ฟังก์ชันถอดสแควรูท math.sqrt() นักเรียนจำเป็นต้องใช้คำสั่งใดเป็นบรรทัดแรกของโปรแกรม?
© 2023 Smartyquizkids.com
All Rights Reserved.