โมดูล (Module) คือ ไฟล์ .py ที่ประกอบด้วยตัวแปร (ค่าคงที่) ฟังก์ชัน และคลาสต่างๆ ที่เกี่ยวข้องกัน
เรียกใช้ในโปรแกรมอื่นได้
จัดระเบียบโค้ดให้อ่านและเรียกใช้ได้ง่าย
นำโค้ดที่มีอยู่แล้วไปใช้งานได้สะดวก
กรณีที่เป็นการพัฒนาโปรแกรมขนาดใหญ่ ทำให้สามารถจัดระเบียบไฟล์ เพื่อง่ายต่อการแก้ไขและจัดการ
โมดูลมาตรฐาน (Built-in/Standard) โมดูลสำเร็จรูปที่ไพธอนเตรียมไว้ให้เรียกใช้งาน ดูได้ในเอกสารเกี่ยวกับ library ของไพธอน
ตัวอย่างโมดูลมาตราฐาน
โมดูลทางคณิตศาสตร์ เช่น math, random, statistics
โมดูลจัดการข้อความ เช่น string, re, unicodedata
โมดูลจัดการชนิดข้อมูล เช่น datetime, calendar, pprint
โมดูลสร้างเอง (User-defined) โมดูลที่ผู้ใช้สร้างขึ้นมาใช้งานเอง
คำสั่ง import
สามารถเรียกใช้ได้ทุกอย่างที่ประกาศในโมดูล แต่ต้องระบุชื่อโมดูลนำหน้าทุกครั้งที่เรียกใช้ในรูปแบบ
1) เรียกใช้โมดูลโดยใช้ชื่อของโมดูลเอง
import moduleName # เรียกใช้โมดูล
moduleName.function() # เรียกใช้ฟังก์ชันในโมดูล
moduleName.variable # เรียกใช้ตัวแปรในโมดูล
2) เรียกใช้โมดูลโดยตั้งชื่อใหม่ให้กับโมดูล
import moduleName as newModulename # เรียกใช้โมดูลโดยชื่อใหม่ให้โมดูลนั้น
newModuleName.function() # เรียกใช้ฟังก์ชันในโมดูล
newModuleName.variable # เรียกใช้ตัวแปรในโมดูล
คำสั่ง from ... import ...
3) เรียกใช้โมดูลโดยระบุฟังก์ชัน ตัวแปร หรือคลาสที่ต้องการใช้งาน
from module import function, function, ....
4) เรียกใช้โมดูลโดยระบุฟังก์ชัน ตัวแปร หรือคลาสที่ต้องการใช้งาน
from module import * เรียกใช้โมดูลโดยสามารถเรียกใช้ทุกอย่างที่ประกาศในโมดูล โดยไม่ต้องระบุชื่อโมดูลนำหน้าทุกครั้งที่ต้องใช้งาน
import math
print(math.cos(math.pi))
import math as m
print(m.cos(m.pi))
from math import *
print(cos(pi))
ตัวอย่างฟังก์ชันใน math
math.ceil(x) returns the ceiling of x, the smallest integer greater than or equal to x, i.e. ⌈x⌉ -> (math.ciel(3.1) = 4)
math.floor(x) returns the floor of x, the largest integer less than or equal to x, i.e. ⌊x⌋ -> math.floor(3.9) = 3
math.fabs(x) returns the absolute value of x,
i.e. |x| -> math.fabs(-3) = 3.0
math.factorial(x) returns x factorial. It raises ValueError if x is not integral or is negative.
i.e. x! -> math.factorial(4) = 24
แพ็คเกจ (Package) คือ โครงสร้างของการจัดเก็บไฟล์โมดูล โดยแพ็คเกจอาจประกอบด้วย 1 โมดูลหรือหลายโมดูลรวมกัน
ในกรณีที่มีหลายโมดูลสามารถจัดเก็บเป็นแพ็คเกจย่อย และออกแบบเป็นลำดับชั้นได้ ซึ่งโครงสร้างของแพ็คเกจก็คล้ายกับการจัดเก็บโฟลเดอร์ที่มีโฟลเดอร์ย่อยอยู่ภายในได้ และอ้างถึงได้ตามลำดับชั้น
โมดูลที่เกี่ยวข้องกันมักจะจัดเก็บไว้ในแพ็คเกจเดียวกัน โครงสร้างแบบแพ็คเกจทำให้สะดวกในการจัดการโมดูล เช่น การเผยแพร่ การนำไปใช้ซ้ำ การแก้ไข
โจทย์ทางคณิตศาสตร์
sin 30 degrees
sin pi + cos pi
log10 of x
exp(x)
tri_area = [ ab sin(c) ] / 2 # area of triangle, lengths of two sides (a, b) and an angle c
cir_area = pi x (r^2) # area of circle, radias r
provide any 2 values of a, b to solve the Pythagorean equation: a2 + b2 = c2. (ดู https://www.calculator.net/pythagorean-theorem-calculator.html)
โจทย์สุ่มค่า
สุ่มเลข 1-999 โดยเติมเลข 0 ข้างหน้าถ้าเลขไม่ถึง 3 หลัก
รับข้อมูลรหัสนักศึกษา 10 รหัส เก็บค่าไว้ในลิสต์ และสุ่มค่ามาจากลิสต์นั้น 3 ค่าที่ไม่ซ้ำกัน
สุ่มค่าเลขที่อยู่ในช่วง 0-1 จำนวน 10 ค่า
โจทย์สตริง
รับชื่อคนมา แล้วเปลี่ยนเป็นตัวอักษรตัวใหญ่ทั้งหมด
รับคำ 10 คำมาเก็บใน list แล้วเปลี่ยนตัวอักษรทุกคำให้เป็นตัวเล็กทั้งหมด
รับเลขบัญชีธนาคารที่คั่นด้วย - มาแล้ว เก็บเป็นเลขบัญชีที่ไม่มีเครื่องหมาย - คั่น (คำแนะนำ: ใช้ฟังก์ชัน join ในสตริง