ฟังก์ชัน (Functions)
แพ็กโค้ดให้ใช้ซ้ำได้ ใน Python
ฟังก์ชันใน Python
ฟังก์ชัน = แพ็กโค้กเป็นกล่อง ใช้ซ้ำได้ จัดการง่าย
ใน Python ใช้คำสั่ง def (ย่อจาก define) ประกาศ
ฟังก์ชันแรก
def greet():
print("สวัสดี!")
greet() # เรียกใช้ → สวัสดี!
greet() # เรียกอีก → สวัสดี!
จบบรรทัด def ด้วย : แล้วโค้ดข้างใน ย่อหน้า 4 ช่อง
รับค่าเข้า: Parameter
def greet(name): # name = parameter
print("สวัสดี " + name)
greet("สมชาย") # "สมชาย" = argument
greet("มาลี")
ค่าเริ่มต้น (Default)
def greet(name="เพื่อน"):
print(f"สวัสดี {name}")
greet() # สวัสดี เพื่อน (ใช้ค่าเริ่มต้น)
greet("บอย") # สวัสดี บอย
หลาย parameter
def add(a, b):
print(a + b)
add(3, 5) # 8
ส่งค่ากลับ: return
def multiply(a, b):
return a * b
result = multiply(4, 6)
print(result) # 24
⚠️ เจอ
returnฟังก์ชัน หยุดทันที ถ้าไม่มีreturnจะคืนNone(เทียบเท่าundefined/null)
ลองทำจริง: คำนวณส่วนลด
def calculate_final_price(price, discount_percent):
discount = price * (discount_percent / 100)
return price - discount
print(calculate_final_price(1000, 20)) # 800.0
print(calculate_final_price(500, 10)) # 450.0
คืนหลายค่าพร้อมกัน (Python ทำได้สบาย!)
def min_max(numbers):
return min(numbers), max(numbers)
low, high = min_max([3, 8, 1, 9])
print(low) # 1
print(high) # 9
ขอบเขตตัวแปร (Scope)
ตัวแปรในฟังก์ชัน ใช้ในนั้นได้อย่างเดียว:
def test():
local = "อยู่ในนี้"
print(local) # ✅
test()
# print(local) # ❌ NameError!
Keyword Arguments (เรียกตามชื่อ)
def create_user(name, age, city="กทม."):
print(f"{name}, {age}, {city}")
# เรียกตามลำดับปกติ
create_user("อร", 25)
# เรียกตามชื่อ (ไม่ต้องจำลำดับ)
create_user(name="บอย", age=30, city="เชียงใหม่")
# กระโดดข้ามตัวที่มีค่าเริ่มต้น
create_user("เชียร์", 22, city="ภูเก็ต")
Argument แบบไม่จำกัด: *args
เมื่อไม่รู้ว่าจะรับกี่ตัว:
def sum_all(*numbers):
total = 0
for n in numbers:
total += n
return total
print(sum_all(1, 2, 3)) # 6
print(sum_all(10, 20, 30, 40)) # 100
*numbers รวม argument ทั้งหมดเป็น tuple
Docstring — เขียนคำอธิบายฟังก์ชัน
def add(a, b):
"""บวกเลขสองตัวแล้วคืนผลลัพธ์"""
return a + b
print(add.__doc__) # แสดงคำอธิบาย
help(add) # แสดงคำอธิบายแบบเป็นระเบียบ
💡 เป็นนิสัยที่ดี — เขียน docstring อธิบายว่าฟังก์ชันทำอะไร
ฟังก์ชันเป็น "พลเมืองชั้นหนึ่ง"
ใน Python ฟังก์ชันคือตัวแปรชนิดหนึ่ง ส่งไปไหนต่อไหนได้:
def shout(text):
return text.upper()
my_func = shout
print(my_func("hi")) # HI
ตั้งชื่อฟังก์ชัน
Python ใช้ snake_case เหมือนตัวแปร:
- ✅
calculate_total,send_message,check_login - ❌
calculateTotal
สรุป
| แนวคิด | สรุป |
|---|---|
def name(): | ประกาศฟังก์ชัน |
| parameter / argument | ช่องรับ / ค่าที่ส่ง |
return | ส่งค่ากลับ |
name="default" | ค่าเริ่มต้น |
*args | รับ argument กี่ตัวก็ได้ |
docstring """...""" | อธิบายฟังก์ชัน |
บทหน้า: จัดการข้อมูลแบบกลุ่มด้วย List, Dict, Tuple 📚
อ่านจบแล้ว? ทำเครื่องหมายว่าเสร็จเพื่อบันทึกความคืบหน้า
แบบทดสอบ
ตอบให้ครบแล้วกด “ตรวจคำตอบ” เพื่อเช็คความเข้าใจ
1. ใน Python ใช้คำสั่งใดประกาศฟังก์ชัน?
2. คำสั่งใดใช้ส่งค่ากลับจากฟังก์ชัน Python?
3. ค่าเริ่มต้นของ parameter ใน Python เขียนอย่างไร?
กำลังโหลด…