บทที่ 3.1: พื้นฐานฟังก์ชันและการจัดการอาร์กิวเมนต์ (Functions Basics)
เอกสารนี้อธิบายเกี่ยวกับการประกาศฟังก์ชัน (Function Definition) การส่งค่าพารามิเตอร์ (Parameters) การคืนค่าด้วย return คำสั่ง pass และการส่งฟังก์ชันเป็นอาร์กิวเมนต์
1. การประกาศและการเรียกใช้งานฟังก์ชัน (Defining & Calling Functions)
ฟังก์ชันคือชุดคำสั่งย่อยที่ถูกจัดกลุ่มไว้ด้วยกันเพื่อให้สามารถนำกลับมาเรียกใช้งานซ้ำได้ โดยใช้คีย์เวิร์ด def
1.1 โครงสร้างพื้นฐาน
# การประกาศฟังก์ชัน
def greet_user(name):
"""Docstring: ฟังก์ชันสำหรับทักทายผู้ใช้งาน"""
print(f"สวัสดี, {name}!")
# การเรียกใช้งานฟังก์ชัน (Function Call)
greet_user("Alex") # Output: สวัสดี, Alex!
1.2 การคืนค่าจากฟังก์ชัน (return)
ฟังก์ชันสามารถส่งค่าผลลัพธ์กลับไปยังจุดที่เรียกใช้งานได้ด้วยคำสั่ง return (หากไม่มีคำสั่ง return ฟังก์ชันจะคืนค่าเป็น None โดยอัตโนมัติ)
def calculate_rectangle_area(width, height):
area = width * height
return area
# รับค่าผลลัพธ์เก็บไว้ในตัวแปร
result = calculate_rectangle_area(5, 10)
print(f"พื้นที่สี่เหลี่ยม: {result}") # Output: พื้นที่สี่เหลี่ยม: 50
2. ประเภทของพารามิเตอร์ (Function Parameters)
2.1 Positional Arguments (พารามิเตอร์ตามตำแหน่ง)
การส่งค่าตามลำดับของพารามิเตอร์ที่กำหนดไว้ในฟังก์ชัน
def describe_pet(animal_type, pet_name):
print(f"ฉันมี {animal_type} ชื่อว่า {pet_name}")
# ส่งค่าตามตำแหน่ง
describe_pet("สุนัข", "โจ๊กเกอร์")
2.2 Keyword Arguments (พารามิเตอร์แบบระบุชื่อ)
การระบุชื่อพารามิเตอร์ตอนส่งค่า ทำให้ไม่ต้องกังวลเรื่องลำดับ
2.3 Default Arguments (พารามิเตอร์ค่าเริ่มต้น)
การกำหนดค่าเริ่มต้นให้กับพารามิเตอร์ กรณีที่ผู้เรียกใช้งานไม่ได้ส่งค่าเข้ามา
def register_user(username, role="guest"):
print(f"ผู้ใช้: {username} | สิทธิ์: {role}")
register_user("alex123") # ใช้ค่า default -> ผู้ใช้: alex123 | สิทธิ์: guest
register_user("admin_boss", "admin") # เปลี่ยนค่า -> ผู้ใช้: admin_boss | สิทธิ์: admin
3. การคืนค่าหลายค่า (Returning Multiple Values)
Python อนุญาตให้ฟังก์ชันคืนค่าหลายค่าพร้อมกันได้ในรูปแบบของ Tuple
def get_min_max(numbers):
return min(numbers), max(numbers)
# รับค่าแบบ Multiple Assignment
lowest, highest = get_min_max([10, 5, 20, 8, 15])
print(f"ต่ำสุด: {lowest}, สูงสุด: {highest}") # Output: ต่ำสุด: 5, สูงสุด: 20
4. คำสั่ง pass สำหรับฟังก์ชันโครงร่าง
หากต้องการสร้างโครงร่างฟังก์ชันไว้ก่อนแต่ยังไม่อยากเขียนโค้ดภายใน ให้ใช้คำสั่ง pass เพื่อป้องกันข้อผิดพลาดทางไวยากรณ์ (IndentationError)