เขียนฟังก์ชันคำนวณอายุ และแปลงปีพุทธศักราชเป็นคริสต์ศักราช

 

โจทย์

จงเขียนฟังก์ชันคำนวณอายุ และแปลงปีพุทธศักราชเป็นคริสต์ศักราช

โปรแกรม

ฟังก์ชันธรรมดา

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

คำอธิบายโปรแกรม

โปรแกรมนี้แสดงการสร้างฟังก์ชันสำหรับแปลงปีพุทธศักราชเป็นคริสต์ศักราชในรูปแบบต่างๆ ดังนี้:

  1. ฟังก์ชันธรรมดา:

    • convert_be_to_ce(year): รับค่าปีพุทธศักราชและคืนค่าปีคริสต์ศักราช โดยลบด้วย 543

  2. ฟังก์ชันแลมบ์ด้า:

    • convert_be_to_ce: ฟังก์ชันแลมบ์ด้าสำหรับแปลงปีพุทธศักราชเป็นคริสต์ศักราช

  3. ฟังก์ชันธรรมดาพร้อมการระบุประเภทข้อมูล:

    • convert_be_to_ce(year: int) -> int: แปลงปีพุทธศักราชเป็นคริสต์ศักราช โดยระบุว่าพารามิเตอร์และค่าที่ส่งคืนเป็นประเภท int

การสร้างฟังก์ชันทั้งสามรูปแบบข้างต้นมีความแตกต่างกันดังนี้:

  1. ฟังก์ชันธรรมดา: เป็นรูปแบบพื้นฐานที่ใช้คำสั่ง def ในการสร้างฟังก์ชัน เหมาะสำหรับฟังก์ชันที่มีหลายบรรทัดหรือมีความซับซ้อน

  2. ฟังก์ชันแลมบ์ด้า: เป็นฟังก์ชันแบบสั้นๆ ที่เขียนในบรรทัดเดียวโดยใช้คำสั่ง lambda เหมาะสำหรับฟังก์ชันที่มีการคำนวณในบรรทัดเดียวแล้วคืนค่า

  3. ฟังก์ชันธรรมดาพร้อมการระบุประเภทข้อมูล: คล้ายกับฟังก์ชันธรรมดา แต่มีการระบุประเภทข้อมูลของพารามิเตอร์และค่าที่ส่งคืน ช่วยให้โค้ดอ่านง่ายขึ้นและลดข้อผิดพลาดจากการใช้ข้อมูลผิดประเภท

แต่ละรูปแบบมีข้อดีและการใช้งานที่เหมาะสมแตกต่างกันไปตามสถานการณ์และความต้องการของโปรแกรมเมอร์ การเลือกใช้รูปแบบใดขึ้นอยู่กับความเหมาะสมของงาน ความซับซ้อนของฟังก์ชัน และรูปแบบการเขียนโค้ดที่ต้องการ