บทที่ 5: ฟังก์ชัน (Functions)

5.1 การสร้างและการใช้งานฟังก์ชันใน Python

ฟังก์ชัน (Function) เป็นเครื่องมือที่ช่วยให้เราสามารถแยกส่วนของโค้ดออกมาเป็นโมดูลย่อย ๆ เพื่อใช้ซ้ำหรือจัดการโค้ดให้เป็นระเบียบมากขึ้น ฟังก์ชันช่วยให้การเขียนโปรแกรมง่ายและมีประสิทธิภาพมากขึ้น เราสามารถกำหนดฟังก์ชันของเราเองหรือใช้ฟังก์ชันที่มีอยู่แล้วใน Python

การสร้างฟังก์ชันใน Python

ในการสร้างฟังก์ชันใน Python เราใช้คำสั่ง def ตามด้วยชื่อฟังก์ชัน และตามด้วยวงเล็บที่อาจมีพารามิเตอร์ ฟังก์ชันจะมีบล็อกโค้ดที่อยู่ภายใน ซึ่งจะทำงานเมื่อเรียกใช้ฟังก์ชันนั้น

โครงสร้างของฟังก์ชัน

def ชื่อฟังก์ชัน(พารามิเตอร์):
    # โค้ดที่ต้องการให้ฟังก์ชันทำงาน
    return ค่าที่ต้องการส่งกลับ (ถ้ามี)

  • def: คำสั่งที่ใช้สร้างฟังก์ชัน
  • ชื่อฟังก์ชัน: ชื่อที่ตั้งให้กับฟังก์ชัน (ควรตั้งให้สื่อถึงการทำงานของฟังก์ชัน)
  • พารามิเตอร์ (Parameters): ค่าที่ส่งเข้าไปให้ฟังก์ชันเพื่อใช้ในการประมวลผล (อาจมีหรือไม่มีก็ได้)
  • return: ใช้คืนค่ากลับไปเมื่อฟังก์ชันทำงานเสร็จ (อาจมีหรือไม่มีก็ได้)
ตัวอย่างการสร้างและเรียกใช้ฟังก์ชัน

ตัวอย่างที่ 1: ฟังก์ชันง่าย ๆ ที่ไม่รับพารามิเตอร์

def say_hello():
    print("Hello, World!")
    
# เรียกใช้ฟังก์ชัน
say_hello()

อธิบาย: ฟังก์ชัน say_hello() จะพิมพ์ข้อความ "Hello, World!" เมื่อถูกเรียกใช้

ตัวอย่างที่ 2: ฟังก์ชันที่รับพารามิเตอร์

def greet(name):
    print("Hello,", name)
    
# เรียกใช้ฟังก์ชันพร้อมส่งค่าพารามิเตอร์
greet("Alice")

อธิบาย: ฟังก์ชัน greet(name) รับพารามิเตอร์ชื่อ name และแสดงข้อความทักทายโดยใช้ค่าที่ถูกส่งเข้ามา

ตัวอย่างที่ 3: ฟังก์ชันที่คืนค่าด้วย return

def add_numbers(x, y):
    return x + y
    
# เรียกใช้ฟังก์ชันและเก็บผลลัพธ์
result = add_numbers(5, 10)
print("Result:", result)

อธิบาย: ฟังก์ชัน add_numbers(x, y) รับตัวเลขสองตัวและคืนค่าผลรวมของมันเมื่อถูกเรียกใช้

ฟังก์ชันที่มีค่าเริ่มต้นของพารามิเตอร์ (Default Parameters)

ใน Python เราสามารถกำหนดค่าพารามิเตอร์เริ่มต้นให้กับฟังก์ชันได้ หากผู้ใช้ไม่ส่งค่ามา ฟังก์ชันจะใช้ค่าที่กำหนดเป็นค่าเริ่มต้น

ตัวอย่างฟังก์ชันที่มีค่าเริ่มต้น

def greet(name="Guest"):
    print("Hello,", name)
    
# เรียกใช้ฟังก์ชันโดยไม่ส่งค่าพารามิเตอร์
greet()

# เรียกใช้ฟังก์ชันพร้อมส่งค่าพารามิเตอร์
greet("Alice")

อธิบาย: ฟังก์ชัน greet(name) จะใช้ค่า "Guest" เป็นค่าเริ่มต้นหากไม่มีการส่งค่าพารามิเตอร์มา แต่ถ้ามีการส่งค่าใหม่ ฟังก์ชันจะใช้ค่านั้นแทน

การส่งหลายค่ากลับจากฟังก์ชัน

Python สามารถคืนค่าหลาย ๆ ค่าได้ในฟังก์ชันเดียว

ตัวอย่างการคืนค่าหลายค่า

def calculate(a, b):
    sum_result = a + b
    difference = a - b
    return sum_result, difference
    
# เรียกใช้ฟังก์ชันและรับค่าหลายค่า
add, sub = calculate(10, 5)
print("Sum:", add)
print("Difference:", sub)

อธิบาย: ฟังก์ชัน calculate(a, b) คืนค่าทั้งผลบวกและผลต่างกลับมา

ฟังก์ชันแบบ Lambda

นอกจากการสร้างฟังก์ชันแบบปกติแล้ว Python ยังรองรับการสร้างฟังก์ชันแบบสั้น ๆ ที่เรียกว่า ฟังก์ชัน Lambda ฟังก์ชัน Lambda เหมาะสำหรับฟังก์ชันที่ต้องการเขียนให้สั้นกระชับและไม่ต้องการใช้งานซ้ำ

ตัวอย่างฟังก์ชัน Lambda

# ฟังก์ชัน lambda สำหรับบวกตัวเลขสองตัว
add = lambda x, y: x + y
print(add(5, 3))

อธิบาย: ฟังก์ชัน lambda สร้างฟังก์ชันที่ไม่ต้องระบุชื่อ โดยใช้สำหรับงานที่ไม่ซับซ้อน

สรุป

การสร้างและใช้งานฟังก์ชันใน Python เป็นวิธีที่ช่วยให้การเขียนโปรแกรมเป็นระเบียบและมีประสิทธิภาพมากขึ้น ฟังก์ชันช่วยให้เราสามารถแยกโค้ดออกเป็นส่วนย่อย ๆ ทำให้สามารถใช้งานซ้ำได้ ฟังก์ชันยังสามารถรับพารามิเตอร์และคืนค่ากลับได้ ทำให้การพัฒนาโปรแกรมที่ซับซ้อนเป็นเรื่องง่ายขึ้น