🐍 کتابخانه مرجع پایتون

📦 ماژول‌ها (Modules) در پایتون

ماژول‌ها فایل‌های پایتونی هستند که شامل توابع، کلاس‌ها و متغیرهای قابل استفاده مجدد می‌باشند. با استفاده از ماژول‌ها می‌توانید کد خود را سازمان‌دهی کرده و از تکرار کد جلوگیری کنید. پایتون دارای کتابخانه استاندارد بسیار غنی با ماژول‌های متعدد است.

🔹 وارد کردن ماژول با import

# وارد کردن کل ماژول
import math
import random

# استفاده از توابع ماژول
print(f"Pi: {math.pi}")
print(f"Square root of 16: {math.sqrt(16)}")
print(f"Random number between 1 and 10: {random.randint(1, 10)}")
⏳ برای اجرا دکمه را بزنید...

🔹 وارد کردن با نام مستعار (alias)

# استفاده از alias برای کوتاه‌تر کردن نام
import math as m
import random as rnd

print(f"Pi: {m.pi}")
print(f"Random number: {rnd.randint(1, 100)}")
⏳ برای اجرا دکمه را بزنید...

🔹 وارد کردن بخشی از ماژول با from ... import

# فقط توابع مورد نیاز را وارد کنید
from math import pi, sqrt, pow
from random import randint

print(f"Pi: {pi}")
print(f"Square root: {sqrt(25)}")
print(f"Power: {pow(2, 3)}")
print(f"Random: {randint(1, 6)}")
⏳ برای اجرا دکمه را بزنید...

🔹 وارد کردن همه چیز با from ... import *

⚠️ این روش توصیه نمی‌شود زیرا باعث تداخل نام‌ها می‌شود.

# وارد کردن همه توابع (ممکن است باعث تداخل شود)
from math import *

print(f"Pi: {pi}")
print(f"Cosine: {cos(0)}")
print(f"Factorial: {factorial(5)}")

🔹 ماژول‌های پرکاربرد کتابخانه استاندارد

ماژول کاربرد
math توابع ریاضی (sin, cos, sqrt, pi, ...)
random تولید اعداد تصادفی
datetime کار با تاریخ و زمان
os تعامل با سیستم‌عامل
sys اطلاعات سیستم و خط فرمان
json کار با داده‌های JSON
csv کار با فایل‌های CSV
re عبارات منظم (Regular Expressions)

🔹 کار با تاریخ و زمان (datetime)

import datetime

# تاریخ و زمان فعلی
now = datetime.datetime.now()
print(f"Current date and time: {now}")

# تاریخ فعلی
today = datetime.date.today()
print(f"Today: {today}")

# ساخت تاریخ دلخواه
birthday = datetime.date(2000, 5, 15)
print(f"Birthday: {birthday}")

# محاسبه تفاوت تاریخ‌ها
days_since_birth = (today - birthday).days
print(f"Days since birthday: {days_since_birth}")
⏳ برای اجرا دکمه را بزنید...

🔹 تعامل با سیستم‌عامل (os)

import os

# دریافت مسیر جاری
current_dir = os.getcwd()
print(f"Current directory: {current_dir}")

# لیست فایل‌های دایرکتوری جاری
files = os.listdir(".")
print(f"Files in current directory: {files}")

# بررسی وجود فایل
if os.path.exists("example.txt"):
    print("example.txt exists!")
else:
    print("example.txt does not exist.")
⏳ برای اجرا دکمه را بزنید...

🔹 اطلاعات سیستم و خط فرمان (sys)

import sys

# نسخه پایتون
print(f"Python version: {sys.version}")

# آرگومان‌های خط فرمان
print(f"Command line arguments: {sys.argv}")

# مسیرهای جستجوی ماژول
print(f"Module search path: {sys.path[:3]}")
⏳ برای اجرا دکمه را بزنید...

🔹 ساخت ماژول شخصی

شما می‌توانید فایل‌های پایتونی خود را به عنوان ماژول استفاده کنید.

فایل my_module.py (ماژول شخصی)

# my_module.py
def greet(name):
    return f"Hello, {name}!"

def add(a, b):
    return a + b

PI = 3.14159

استفاده از ماژول شخصی

# import my_module

print(my_module.greet("Saba"))
print(my_module.add(5, 3))
print(my_module.PI)

🔹 پکیج‌ها (Packages)

پکیج‌ها مجموعه‌ای از ماژول‌ها هستند که در یک دایرکتوری با فایل __init__.py قرار دارند.

# ساختار یک پکیج
# my_package/
#     __init__.py
#     module1.py
#     module2.py
#     subpackage/
#         __init__.py
#         module3.py

# استفاده از پکیج
# from my_package import module1
# from my_package.subpackage import module3

🔹 نصب پکیج‌ها با pip

# نصب یک پکیج
# pip install requests

# نصب نسخه خاص
# pip install requests==2.28.0

# مشاهده پکیج‌های نصب شده
# pip list

# حذف یک پکیج
# pip uninstall requests

🔹 مثال جامع: مدیریت زمان و فایل

import datetime
import os
import json

class DataLogger:
    def __init__(self, filename):
        self.filename = filename
        self.logs = []

    def log(self, message):
        """ثبت پیام با زمان فعلی"""
        timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        self.logs.append({"timestamp": timestamp, "message": message})

    def save(self):
        """ذخیره لاگ‌ها در فایل JSON"""
        with open(self.filename, "w") as file:
            json.dump(self.logs, file, indent=4)
        print(f"Logs saved to {self.filename}")

    def load(self):
        """بارگذاری لاگ‌ها از فایل JSON"""
        if os.path.exists(self.filename):
            with open(self.filename, "r") as file:
                self.logs = json.load(file)
            print(f"Logs loaded from {self.filename}")
        else:
            print(f"File {self.filename} not found.")

    def show(self):
        """نمایش همه لاگ‌ها"""
        print("\n--- Logs ---")
        for entry in self.logs:
            print(f"[{entry['timestamp']}] {entry['message']}")
        print("---\n")

# استفاده
logger = DataLogger("logs.json")

# ثبت چند پیام
logger.log("Application started")
logger.log("User logged in")
logger.log("Data processed successfully")

# نمایش لاگ‌ها
logger.show()

# ذخیره لاگ‌ها
logger.save()

# بارگذاری لاگ‌ها (در یک جلسه جدید)
logger.load()
logger.show()
⏳ برای اجرا دکمه را بزنید...

📌 نکات کلیدی

← قبلی: مدیریت خطا → بعدی: کلاس‌ها (OOP) ↑ بازگشت به فهرست مقدماتی