เขียนฟังก์ชันคำนวณอายุ และแปลงปีพุทธศักราชเป็นคริสต์ศักราช
โจทย์
จงเขียนฟังก์ชันคำนวณอายุ และแปลงปีพุทธศักราชเป็นคริสต์ศักราช
โปรแกรม
ฟังก์ชันธรรมดา
def convert_be_to_ce(year):
return year - 543
ฟังก์ชันแลมบ์ด้า
convert_be_to_ce = lambda year: year - 543
ฟังก์ชันธรรมดาพร้อมการระบุประเภทข้อมูล
def convert_be_to_ce(year: int) -> int:
return year - 543
คำอธิบายโปรแกรม
โปรแกรมนี้แสดงการสร้างฟังก์ชันสำหรับแปลงปีพุทธศักราชเป็นคริสต์ศักราชในรูปแบบต่างๆ ดังนี้:
ฟังก์ชันธรรมดา:
convert_be_to_ce(year)
: รับค่าปีพุทธศักราชและคืนค่าปีคริสต์ศักราช โดยลบด้วย 543
ฟังก์ชันแลมบ์ด้า:
convert_be_to_ce
: ฟังก์ชันแลมบ์ด้าสำหรับแปลงปีพุทธศักราชเป็นคริสต์ศักราช
ฟังก์ชันธรรมดาพร้อมการระบุประเภทข้อมูล:
convert_be_to_ce(year: int) -> int
: แปลงปีพุทธศักราชเป็นคริสต์ศักราช โดยระบุว่าพารามิเตอร์และค่าที่ส่งคืนเป็นประเภท int
การสร้างฟังก์ชันทั้งสามรูปแบบข้างต้นมีความแตกต่างกันดังนี้:
ฟังก์ชันธรรมดา: เป็นรูปแบบพื้นฐานที่ใช้คำสั่ง
def
ในการสร้างฟังก์ชัน เหมาะสำหรับฟังก์ชันที่มีหลายบรรทัดหรือมีความซับซ้อนฟังก์ชันแลมบ์ด้า: เป็นฟังก์ชันแบบสั้นๆ ที่เขียนในบรรทัดเดียวโดยใช้คำสั่ง
lambda
เหมาะสำหรับฟังก์ชันที่มีการคำนวณในบรรทัดเดียวแล้วคืนค่าฟังก์ชันธรรมดาพร้อมการระบุประเภทข้อมูล: คล้ายกับฟังก์ชันธรรมดา แต่มีการระบุประเภทข้อมูลของพารามิเตอร์และค่าที่ส่งคืน ช่วยให้โค้ดอ่านง่ายขึ้นและลดข้อผิดพลาดจากการใช้ข้อมูลผิดประเภท
แต่ละรูปแบบมีข้อดีและการใช้งานที่เหมาะสมแตกต่างกันไปตามสถานการณ์และความต้องการของโปรแกรมเมอร์ การเลือกใช้รูปแบบใดขึ้นอยู่กับความเหมาะสมของงาน ความซับซ้อนของฟังก์ชัน และรูปแบบการเขียนโค้ดที่ต้องการ