หน่วยที่ 2 EP.6: โรงงานคำสั่งส่วนตัว (Functions & Modules)
  • By Admin
  • 6
  • 7 เม.ย. 2569

หน่วยที่ 2 EP.6: โรงงานคำสั่งส่วนตัว (Functions & Modules)

จะก๊อปปี้โค้ดซ้ำๆ ไปทำไม? ในเมื่อเราสร้าง

🛠️ หน่วยที่ 2 EP.6 โรงงานคำสั่งส่วนตัว

รู้จัก ฟังก์ชัน (Functions) และ โมดูล (Modules) ใน Python

ยินดีด้วยครับ น้องๆ ก้าวมาไกลมากแล้ว! ตอนนี้เรามีปัญหาใหม่คือ ถ้าเราเขียนโค้ดที่ซับซ้อน เช่น โค้ดคำนวณภาษี แล้วต้องใช้โค้ดชุดนี้ในหลายๆ หน้าของโปรแกรม เราจะก๊อปปี้แปะโค้ด 10 บรรทัดนี้ไปทุกที่เลยเหรอ? ถ้าจะแก้โค้ดทีหนึ่ง ต้องตามแก้ 10 ที่เลยนะ! ไม่ดีแน่ๆ

ทางออกคือการสร้าง "ฟังก์ชัน (Function)" หรือเปรียบเหมือนการสร้าง "โรงงานคำสั่งส่วนตัว" ครับ เราจะรวบรวมโค้ด 10 บรรทัดนั้นไว้ในฟังก์ชันเดียว แล้วแปะป้ายชื่อไว้ เวลาจะใช้ก็แค่เรียกชื่อฟังก์ชันนั้น... ทีเดียวจบ!

🎁 1. ประโยชน์ของฟังก์ชัน

  • ประหยัดเวลา: เขียนโค้ดชุดเดิมแค่ครั้งเดียว แต่เรียกใช้ได้ไม่จำกัดรอบ
  • โค้ดสะอาดอ่านง่าย: แบ่งโปรแกรมขนาดใหญ่ออกเป็นส่วนย่อยๆ ที่ทำหน้าที่ชัดเจน
  • ดูแลรักษาง่าย: ถ้าต้องการแก้ไขตรรกะ แก้แค่ในฟังก์ชันเดียว ผลลัพธ์จะเปลี่ยนไปทุกที่ที่เรียกใช้

🏗️ 2. วิธีนิยามฟังก์ชัน (User-Defined Functions)

การสร้างฟังก์ชันใน Python ง่ายมากๆ ครับ เราจะใช้คำสำคัญว่า def (ย่อมาจาก define) ตามด้วยชื่อฟังก์ชันที่เราตั้งเอง มีขั้นตอนดังนี้:

🚨 กฎเหล็ก: การตั้งชื่อฟังก์ชันใช้กฎเดียวกับการตั้งชื่อตัวแปร (ห้ามขึ้นต้นด้วยตัวเลข, ห้ามเว้นวรรค) และคำสั่งที่อยู่ข้างในฟังก์ชันต้อง ย่อหน้า (Indentation) เสมอ!
# 1. นิยามฟังก์ชัน (สร้างโรงงาน)
def say_hello():
    print("สวัสดีครับ")
    print("ยินดีต้อนรับสู่บทเรียนฟังก์ชัน")

# 2. เรียกใช้ฟังก์ชัน (สั่งโรงงานทำงาน)
say_hello()
say_hello() # เรียกซ้ำอีกรอบก็ยังได้

🕹️ 3. ฟังก์ชันที่รับส่งข้อมูลได้ (Parameters & Return)

โรงงานที่ฉลาดขึ้น คือโรงงานที่เราส่งวัตถุดิบ (ข้อมูล) เข้าไปให้มันประมวลผล แล้วมันส่งสินค้า (ผลลัพธ์) กลับมาให้เราครับ

  • พารามิเตอร์ (Parameter): เปรียบเหมือน "ช่องรับวัตถุดิบ" คือตัวแปรที่อยู่ภายในวงเล็บ () ตอนนิยามฟังก์ชัน
  • รีเทิร์น (Return): เปรียบเหมือน "ช่องส่งสินค้าออก" ใช้คำสั่ง return เพื่อส่งผลลัพธ์กลับไปให้จุดที่เรียกใช้
# ฟังก์ชันคำนวณพื้นที่วงกลม รับรัศมี (radius)
def cal_area(radius):
    area = 3.14159 * (radius ** 2)
    return area # ส่งผลลัพธ์กลับมา

result = cal_area(10) # เรียกใช้โดยส่งเลข 10 ไปให้
print("พื้นที่วงกลม:", result)

📦 4. โมดูลสำเร็จรูป (Modules)

นอกจากการสร้างฟังก์ชันเองแล้ว Python ยังมีโรงงานสำเร็จรูปเก่งๆ ที่เรียกว่า "โมดูล (Modules)" มาให้เราอิมพอร์ต (import) มาใช้งานได้ฟรีๆ เลยครับ เช่น หากต้องการใช้สูตรคณิตศาสตร์ขั้นสูง เราต้องอิมพอร์ตโมดูล math เข้ามาครับ

ตัวอย่างการใช้โมดูล math:

import math (สั่งอิมพอร์ตโรงงาน math มา)
print(math.pi) (เรียกใช้ค่า พาย π แบบเป๊ะๆ -> 3.141592...)
print(math.sqrt(25)) (เรียกใช้ฟังก์ชันถอดสแควรูท √ -> ได้ 5.0)

✍️ มินิควิซ ทบทวนความรู้ (EP.6)

มาทดสอบความเป็นผู้จัดการโรงงานฟังก์ชันกัน!

ข้อที่ 1: คำสำคัญ (Reserved Word) ในข้อใด ที่ใช้สำหรับเริ่มต้นการนิยามฟังก์ชันในภาษา Python?

ข้อที่ 2: ข้อใดคือประโยชน์ที่ชัดเจนที่สุดของการแบ่งโค้ดออกเป็นฟังก์ชันย่อยๆ?

ข้อที่ 3: หากต้องการใช้ฟังก์ชันถอดสแควรูท math.sqrt() นักเรียนจำเป็นต้องใช้คำสั่งใดเป็นบรรทัดแรกของโปรแกรม?


แชร์ :

บทเรียนอื่น ๆ