ข้ามไปยังเนื้อหาบทเรียน

Python Functions - สร้างชุดคำสั่งส่วนตัว เขียนครั้งเดียวใช้ได้ตลอดไป

Isara K. อัปเดต 24 Jan 2026 23 ครั้ง

เบื่อไหมครับที่ต้องก๊อปปี้โค้ดเดิมๆ ไปวางหลายๆ ที่ในโปรเจกต์? วันนี้เราจะมาทำความรู้จักกับ Function (ฟังก์ชัน) เครื่องมือที่จะช่วยให้โค้ดของคุณสะอาด เป็นระเบียบ และทำงานได้เหมือนมือโปรตามหลักการ DRY (Don't Repeat Yourself) ครับ

Function คืออะไร?

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


1. โครงสร้างและการสร้าง Function

ใน Python เราจะใช้คีย์เวิร์ด def (ย่อมาจาก Define) ตามด้วยชื่อฟังก์ชันและเครื่องหมายวงเล็บครับ

# การสร้างฟังก์ชัน
def welcome_msg():
    print("ยินดีต้อนรับเข้าสู่ระบบ devhub.in.th")

# การเรียกใช้งาน
welcome_msg()

การรับค่าเข้า (Parameters & Arguments)

ฟังก์ชันจะเก่งขึ้นมากถ้าเรารับค่ามาประมวลผลได้ครับ

  • Parameter: คือชื่อตัวแปรที่เรากำหนดไว้ในวงเล็บตอนสร้างฟังก์ชัน
  • Argument: คือค่าจริงๆ ที่เราส่งเข้าไปตอนเรียกใช้
คำศัพท์ หน้าที่ ตัวอย่าง
Parameter ตัวแปรรับค่า (วางไว้ที่ชื่อฟังก์ชัน) def add(x, y):
Argument ค่าที่ส่งไปให้ฟังก์ชันทำงาน add(10, 20)

2. การส่งค่ากลับด้วย Return

ฟังก์ชันส่วนใหญ่ไม่ได้มีหน้าที่แค่แสดงผล (print) แต่ต้อง "ส่งค่า" กลับมาให้เราเอาไปคำนวณต่อครับ เราจะใช้คำสั่ง return

def calculate_area(width, height):
    area = width * height
    return area

# นำค่าที่ได้มาเก็บไว้ในตัวแปร
my_room = calculate_area(5, 4)
print(f"พื้นที่ห้องขนาด: {my_room} ตร.ม.")

3. ขอบเขตตัวแปร (Local vs Global Scope)

เรื่องนี้สำคัญมากครับ! ตัวแปรที่สร้าง "ข้างใน" ฟังก์ชันจะเรียกว่า Local Variable ซึ่งคนข้างนอกจะมองไม่เห็นและเรียกใช้ไม่ได้

Blockquote: "จำไว้ว่า... อะไรที่เกิดขึ้นในฟังก์ชัน ก็จะจบลงในฟังก์ชัน (ยกเว้นเราจะ return มันออกมา!)"


Workshop: ระบบคำนวณเกรดแบบฟังก์ชัน

def check_grade(score):
    if score >= 80:
        return "A"
    elif score >= 50:
        return "Pass"
    else:
        return "Fail"

# เรียกใช้งานซ้ำๆ ได้ง่ายๆ
print(check_grade(85)) # Output: A
print(check_grade(45)) # Output: Fail

Isara K.

Isara K.

ผู้เขียน

potatoman