ไฟล์ที่ประกอบไปด้วยโค้ด Python ซึ่งอาจประกอบด้วยฟังก์ชัน, ตัวแปร, และคลาสต่าง ๆ สามารถทำงานได้อย่างอิสระจากกัน หากมีหลายโมดูลที่เกี่ยวข้องกันจะถูกรวบรวมและจัดเก็บไว้เป็น "แพ็กเกจ" (package) โมดูลหนึ่งสามารถอ้างอิงหรือเรียกใช้งานโมดูลอื่นได้ด้วยคำสั่ง import เพื่อทำให้โมดูลต่าง ๆ สามารถทำงานร่วมกันได้ โมดูลช่วยให้การจัดการโปรแกรมที่มีขนาดใหญ่เป็นระเบียบมากขึ้น โดยการแบ่งโค้ดเป็นส่วน ๆ ที่สามารถนำไปใช้งานซ้ำหรือแยกพัฒนาได้อย่างสะดวก ซึ่งโปรแกรมที่พัฒนาในไพธอน (Python) สามารถประกอบด้วยโมดูลที่ผู้เขียนสร้างขึ้นและโมดูลมาตรฐานของไพธอน (Python) เอง
การสร้างโมดูลใน Python เป็นเรื่องง่าย เพียงสร้างไฟล์ .py ที่มีชุดคำสั่งที่ต้องการแล้วบันทึกไฟล์ไว้ จากนั้นสามารถเรียกใช้งานโมดูลนี้ในไฟล์ Python อื่นได้ด้วยคำสั่ง import
💻 ตัวอย่าง สร้างโมดูล (โมดูล calculator.py ที่มีฟังก์ชัน add และ subtract สำหรับการคำนวณ)
💻 ตัวอย่าง การใช้งานโมดูล (ไฟล์ main.py เรียกใช้ฟังก์ชันจากไฟล์ calculator.py ที่เพิ่งสร้าง)
บรรทัดที่ 1
เป็นการนำเข้า (import) โมดูลที่ชื่อว่า calculator ซึ่งเป็นไฟล์ที่สร้างขึ้นในตัวอย่างประกอบด้วยฟังก์ชันการคำนวณบวกและลบ ที่สำคัญโมดูลนี้ต้องอยู่ในตำแหน่งที่สามารถเข้าถึงได้ (ในโฟลเดอร์เดียวกันหรือใน Pythonpath)
บรรทัดที่ 2
เป็นการเรียกใช้ฟังก์ชัน add จากโมดูล calculator โดยส่งค่าพารามิเตอร์เข้าไป คือ 5 และ 3 ฟังก์ชันนี้จะทำการบวกค่า 5 และ 3 เข้าด้วยกัน ผลลัพธ์ที่ได้จะถูกเก็บไว้ในตัวแปร result_add
บรรทัดที่ 3
เป็นการเรียกใช้ฟังก์ชัน subtract จากโมดูล calculator โดยส่งค่าพารามิเตอร์เข้าไป คือ 10 และ 7 ฟังก์ชันนี้จะทำการลบ 7 ออกจาก 10 ผลลัพธ์ที่ได้ จะถูกเก็บไว้ในตัวแปร result_sub
บรรทัดที่ 4
เป็นการใช้ฟังก์ชัน print เพื่อแสดงผลลัพธ์ของการบวก โดยใช้ฟอร์แมตสตริง (f-string) เพื่อแทรกค่าในตัวแปร result_add ลงในข้อความ "ผลบวก: "
บรรทัดที่ 5
เป็นการใช้ฟังก์ชัน print เช่นเดียวกับบรรทัดที่ 4 แต่จะแสดงผลลัพธ์ของการลบ โดยแทรกค่าจากตัวแปร result_sub ลงในข้อความ "ผลลบ: "
เพิ่มเติม : นอกจากการ import โมดูลทั้งหมด ยังสามารถเลือกนำเข้าเฉพาะฟังก์ชันหรือคลาสจากโมดูลนั้น ๆ ได้โดยใช้คำสั่ง from ... import ...
💻 ตัวอย่าง การใช้งานเฉพาะฟังก์ชันหรือคลาสจากโมดูล (คำสั่ง from ... import ...)
เป้นการนำเข้าเฉพาะฟังก์ชัน add จากโมดูล calculator ทำให้ไม่จำเป็นต้องพิมพ์ calculator.add() แต่สามารถเรียกใช้ add() ได้ทันที
หากชื่อของโมดูลยาวเกินไปหรือต้องการตั้งชื่อที่สั้นกว่า สามารถตั้งชื่อเล่นให้กับโมดูลได้
โดยใช้คำสั่ง as
💻 ตัวอย่าง การตั้งชื่อเล่นให้กับโมดูล (คำสั่ง as)
แพ็กเกจ (Package) ใน Python คือการรวมกลุ่มของโมดูลหลาย ๆ โมดูลไว้ในโฟลเดอร์เดียวกัน โดยมีโครงสร้างที่ชัดเจนเพื่อช่วยให้การจัดการโปรแกรมที่ซับซ้อนมีประสิทธิภาพมากขึ้น การใช้แพ็กเกจช่วยให้สามารถจัดระเบียบโค้ดได้ดีและทำให้การนำไปใช้ใหม่เป็นไปได้ง่ายขึ้น
1. สร้างโฟลเดอร์สำหรับเก็บแพ็กเกจ
2. สร้างไฟล์ __init__.py ในโฟลเดอร์ของแพ็กเกจ “mypackage” (ต้องมีไฟล์ชื่อ __init__.py แม้ว่าไฟล์จะว่างเปล่า) เพื่อบอกว่าโฟลเดอร์นี้ คือ แพ็กเกจ
3. สร้างโมดูลที่ต้องการรวมไว้ในโฟลเดอร์ของแพ็กเกจ
4. การใช้งานแพ็กเกจ สามารถนำแพ็กเกจ “mypackage” ไปใช้งานได้โดยใช้คำสั่ง import
💻 ตัวอย่าง การใช้งานแพ็กเกจ
คือ ชุดของโมดูลที่ถูกพัฒนาขึ้นและมีมาพร้อมกับการติดตั้ง Python โดยไม่ต้องติดตั้งเพิ่มเติม โมดูลเหล่านี้มีฟังก์ชันและคลาสที่มีประโยชน์สำหรับการพัฒนาโปรแกรมและช่วยให้ไม่ต้องเขียนโค้ดซ้ำในฟังก์ชันที่มีการใช้งานบ่อย จึงทำให้การพัฒนาโปรแกรมเป็นไปได้อย่างรวดเร็วและมีประสิทธิภาพมากขึ้น
math ฟังก์ชันทางคณิตศาสตร์
random การสร้างตัวเลขสุ่ม
datetime การจัดการวันที่และเวลา
math.sqrt(x) คืนค่ารากที่สองของ x
math.sqrt(25) → 5.0
math.pow(x, y) ยกกำลัง x^y
math.pow(2, 3) → 8.0
math.fabs(x) คืนค่าสัมบูรณ์ของ x
math.fabs(-7) → 7.0
math.factorial(x) คืนค่าฟังก์ชัน x! (x ต้องเป็นจำนวนเต็มบวก)
math.factorial(5) → 120
math.floor(x) คืนค่าปัดเศษลงของ x เป็นจำนวนเต็ม
math.floor(4.8) → 4
math.ceil(x) คืนค่าปัดเศษขึ้นของ x เป็นจำนวนเต็ม
math.ceil(4.2) → 5
math.trunc(x) คืนค่าส่วนจำนวนเต็มของ x
math.trunc(4.9) → 4
math.log(x, [base]) คืนค่าลอการิทึมของ x โดยมีฐานเป็น base (ค่าเริ่มต้นคือ e)
math.log(100, 10) → 2.0
math.exp(x) คืนค่า e^x (e ยกกำลัง x) math.exp(2) → 7.389...
math.degrees(x) แปลงค่าระดับเรเดียนเป็นองศา
math.degrees(math.pi) → 180.0
math.radians(x) แปลงค่าองศาเป็นเรเดียน
math.radians(180) → 3.14159...
math.sin(x) คืนค่าไซน์ของ x (เรเดียน)
math.sin(math.pi/2) → 1.0
math.cos(x) คืนค่าคอสายน์ของ x (เรเดียน)
math.cos(math.pi) → -1.0
math.tan(x) คืนค่าแทนเจนต์ของ x (เรเดียน)
math.tan(math.pi/4) → 1.0
math.asin(x) คืนค่าไซน์กลับของ x (เป็นเรเดียน)
math.asin(1) → 1.5708... (π/2 เรเดียน)
math.acos(x) คืนค่าคอสายน์กลับของ x (เป็นเรเดียน)
math.acos(1) → 0.0
math.atan(x) คืนค่าแทนเจนต์กลับของ x (เป็นเรเดียน)
math.atan(1) → 0.78539... (π/4 เรเดียน)
math.sinh(x) คืนค่าซินไฮเพอร์โบลิกของ x (เรเดียน)
math.sinh(1) → 1.1752...
math.cosh(x) คืนค่าคอสไฮเพอร์โบลิกของ x (เรเดียน)
math.cosh(1) → 1.54308...
math.tanh(x) คืนค่าแทนไฮเพอร์โบลิกของ x (เรเดียน)
math.tanh(1) → 0.76159...
math.pi ค่าคงที่ของ pi (π)
math.pi → 3.14159...
math.e ค่าคงที่ของ e
math.e → 2.71828...
math.gcd(x, y) คืนค่า หรม. ของ x และ y
math.gcd(8, 12) → 4
math.isfinite(x) ตรวจสอบว่า x เป็นจำนวนจำกัดหรือไม่
math.isfinite(100) → True
math.isinf(x) ตรวจสอบว่า x เป็นค่าบวก/ลบอนันต์หรือไม่
math.isinf(float('inf')) → True
math.isnan(x) ตรวจสอบว่า x เป็นค่า NaN (Not a Number) หรือไม่
math.isnan(float('nan')) → True
random.random() คืนค่าเลขทศนิยมสุ่มในช่วง [0.0, 1.0)
random.random() → 0.5432...
random.randint(a, b) คืนค่าเลขจำนวนเต็มสุ่มในช่วง [a, b]
random.randint(1, 10) → 7
random.uniform(a, b) คืนค่าเลขทศนิยมสุ่มในช่วง [a, b]
random.uniform(1.0, 10.0) → 5.432...
random.choice(seq) คืนค่าหนึ่งค่าแบบสุ่มจากลำดับที่กำหนด (list, tuple, etc.)
random.choice([1, 2, 3, 4, 5]) → 3
random.shuffle(seq) สลับตำแหน่งสมาชิกในลำดับ (in-place)
random.shuffle(my_list)
random.sample(population, k) คืนค่าสุ่ม k ค่า จากลำดับหรือกลุ่มตัวเลขที่กำหนด
random.sample([1, 2, 3, 4, 5], 2) → [2, 5]
random.seed(a=None) กำหนดค่าเริ่มต้นให้กับตัวสร้างเลขสุ่ม (เพื่อให้ผลลัพธ์เป็นแบบเดิมในแต่ละครั้ง)
random.seed(10)
random.choices (population, weights=None, k=1) คืนค่าลำดับของค่าที่สุ่มออกมาตามน้ำหนักที่กำหนด
random.choices([1, 2, 3, 4], weights=[10, 1, 1, 1], k=3)
datetime.datetime.now() คืนค่าเวลาปัจจุบันในรูปแบบวัตถุ datetime
datetime.datetime.now() → 2024-10-10 15:00:00
datetime.datetime.today() คืนค่าวันปัจจุบันในรูปแบบวัตถุ datetime
datetime.datetime.today() → 2024-10-10 00:00:00
datetime.date(year, month, day) สร้างวัตถุ date ตามปี เดือน และวัน
datetime.date(2024, 10, 10) → 2024-10-10
datetime.time(hour, minute, second) สร้างวัตถุ time ตามชั่วโมง นาที และวินาที
datetime.time(15, 30, 45) → 15:30:45
datetime.timedelta(days, seconds, microseconds) ใช้สำหรับการคำนวณระยะเวลาระหว่างวันที่
datetime.timedelta(days=5) → 5 วัน
datetime.datetime.strftime(format) แปลงวัตถุ datetime เป็นสตริงตามรูปแบบที่กำหนด
now.strftime('%Y-%m-%d') → "2024-10-10"
datetime.datetime.strptime(date_string, format) แปลงสตริงเป็นวัตถุ datetime ตามรูปแบบที่กำหนด
datetime.strptime('2024-10-10', '%Y-%m-%d') → 2024-10-10
datetime.date.weekday() คืนค่าเลขวันในสัปดาห์ (0=จันทร์, 6=อาทิตย์)
datetime.date(2024, 10, 10). weekday() → 3
datetime.datetime.combine(date, time) รวมวัตถุ date และ time เป็นวัตถุ datetime
datetime.combine(date, time) → 2024-10-10 15:30:45
หากต้องการใช้โมดูลที่ไม่ได้มาพร้อมกับ Python สามารถติดตั้งโมดูลเพิ่มเติมผ่าน pip
ซึ่งเป็นโปรแกรมจัดการแพ็กเกจที่ช่วยให้ผู้ใช้สามารถติดตั้ง, อัปเกรด, และจัดการโมดูลต่าง ๆ ที่ดาวน์โหลดจาก PyPI (Python Package Index) โดย Thonny สามารถใช้ Thonny Shell เพื่อทำการติดตั้งโมดูลได้อย่างสะดวก โดยไม่ต้องออกจากโปรแกรม หรือเปิด Command Prompt หรือ Terminal แยกต่างหาก จึงทำให้การติดตั้งโมดูลเป็นไปได้อย่างราบรื่นและรวดเร็ว
เปิด Thonny เริ่มต้นโดยการเปิดโปรแกรม Thonny บนคอมพิวเตอร์
ใช้คำสั่ง “!pip install <ชื่อโมดูล> ใน Shell เพื่อทำการติดตั้งโมดูลจาก PyPI เช่น ถ้าต้องการติดตั้งโมดูล requests ให้พิมพ์ “!pip install requests” แล้ว Enter หากต้องการตรวจสอบการติดตั้งสามารถทำได้โดยการใช้คำสั่ง “!pip show <ชื่อโมดูล>
💻 ตัวอย่าง การติดตั้งและตรวจสอบโมดูลด้วย Thonny Shell
หลังจากติดตั้งโมดูลเสร็จสิ้นแล้ว สามารถนำเข้าและใช้งานโมดูลนั้นในโค้ดได้ตามปกติ
💻 ตัวอย่าง การใช้งานโมดูลที่ติดตั้งจากภายนอก
หากต้องการอัปเกรดโมดูลที่ติดตั้งแล้วให้เป็นเวอร์ชันล่าสุดให้ใช้คำสั่ง “!pip install --upgrade <ชื่อโมดูล>”
💻 ตัวอย่าง การใช้งานโมดูลที่ติดตั้งจากภายนอก
หากต้องการลบโมดูลที่ไม่ใช้งานแล้ว สามารถลบได้ด้วยโค้ดโปรแกรมดังนี้
💻 ตัวอย่าง การลบโมดูล