0%
در حال بارگذاری...

جستجو در سایت

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

پایتون | Python مقدماتی

تا حالا شده بخوای یه کار پیچیده مثل محاسبه جذر یا تولید عدد تصادفی رو انجام بدی، اما نخوای کدش رو از صفر بنویسی؟ 🧩 ماژول‌ها و کتابخانه‌ها مثل جعبه‌ابزارهای آماده پایتون هستن که کار رو راحت می‌کنن! برای مثال، می‌تونی با یه خط کد تاریخ امروز رو بگیری یا یه عدد تصادفی بسازی. تو این درس، با ماژول‌ها و کتابخانه‌های پایتون آشنا می‌شی و یاد می‌گیری چطور ازشون استفاده کنی. بنابراین، اگر درس‌های ۱ تا ۵ (متغیرها، شرط‌ها، حلقه‌ها، داده‌ساختارها، توابع و فایل‌ها) رو یاد گرفتی، حالا آماده‌ای که کدت رو سریع‌تر و قوی‌تر کنی! 🚀 با مثال‌های واقعی، جداول مقایسه، ۱۲ تمرین و یه پروژه جذاب، این درس تو رو برای ساخت برنامه‌های متنوع آماده می‌کنه. بریم شروع کنیم! 🎉

ماژول چیه و چرا مهمه؟ 🧰

ماژول یه فایل پایتونیه که کدهای آماده (مثل توابع و متغیرها) رو در اختیارت قرار می‌ده. برای مثال، ماژول math توابع ریاضی مثل جذر و توان رو داره. علاوه بر این، ماژول‌ها باعث می‌شن:

  • سادگی: کد کمتری می‌نویسی.
  • استفاده مجدد: از کدهای آماده دیگران استفاده می‌کنی.
  • نظم: پروژه‌ت تمیز و سازمان‌یافته می‌مونه.

به همین دلیل، ماژول‌ها برای برنامه‌نویسی حرفه‌ای ضروری‌ان. برای استفاده، از import استفاده می‌کنی:

import math
print(math.sqrt(16))  # خروجی: ۴.۰

بنابراین، با import ماژول رو به برنامه‌ت اضافه می‌کنی و با نقطه (.) به توابعش دسترسی داری.

ماژول math: ابزار ریاضی 🧮

ماژول math برای محاسبات ریاضی عالیه. برای مثال، چند تابع پرکاربرد:

تابع کارکرد مثال
sqrt(x) جذر x math.sqrt(25) → ۵.۰
pow(x, y) x به توان y math.pow(2, 3) → ۸.۰
ceil(x) بالاترین عدد صحیح math.ceil(4.2) → ۵

به عنوان مثال:

import math
print(math.sqrt(9))  # 3.0
print(math.pi)  # 3.141592653589793

💡 نکته: math.pi یه ثابت آماده برای عدد پی‌ست.

ماژول random: تصادف و شانس 🎲

ماژول random برای تولید اعداد یا انتخاب تصادفی مناسبه. برای مثال:

import random
print(random.randint(1, 10))  # عدد تصادفی بین ۱ تا ۱۰

به علاوه، چند تابع مهم:

  • random.choice(lst): یه مورد تصادفی از لیست
  • random.shuffle(lst): به‌هم‌ریختن لیست
  • random.random(): عدد اعشاری تصادفی بین ۰ تا ۱

به عنوان مثال:

import random
items = ["سیب", "موز", "پرتقال"]
print(random.choice(items))  # یه میوه تصادفی
random.shuffle(items)
print(items)  # لیست به‌هم‌ریخته

💡 نکته: هربار که کد رو اجرا کنی، خروجی random فرق می‌کنه!

ماژول datetime: کار با تاریخ و زمان ⏰

ماژول datetime برای مدیریت تاریخ و زمان کاربردیه. برای مثال:

from datetime import datetime
now = datetime.now()
print(now)  # تاریخ و زمان فعلی

علاوه بر این، می‌تونی تاریخ رو فرمت کنی:

from datetime import datetime
today = datetime.now()
print(today.strftime("%Y-%m-%d"))  # مثل ۲۰۲۵-۱۱-۰۹

💡 نکته: strftime برای فرمت دلخواه تاریخ (مثل سال-ماه-روز) استفاده می‌شه.

ماژول os: کار با سیستم‌عامل 💾

ماژول os برای کار با فایل‌ها و پوشه‌ها مناسبه. برای مثال:

import os
print(os.getcwd())  # مسیر فعلی پروژه

به علاوه، چند تابع مهم:

  • os.listdir(): لیست فایل‌های پوشه
  • os.mkdir(name): ساخت پوشه
  • os.remove(file): حذف فایل

برای مثال:

import os
os.mkdir("test_folder")  # ساخت پوشه
print(os.listdir())  # نمایش فایل‌ها و پوشه‌ها

💡 هشدار: با os.remove مراقب باش، چون فایل رو برای همیشه حذف می‌کنه!

ترکیب با درس‌های قبلی: ماژول‌ها و کدهای تو 📦

برای مثال، می‌تونی ماژول‌ها رو با توابع (درس ۴) و فایل‌ها (درس ۵) ترکیب کنی:

import random
def random_grade():
    return random.randint(0, 20)
grades = [random_grade() for _ in range(5)]
with open("grades.txt", "w") as file:
    for grade in grades:
        file.write(f"{grade}\n")

بنابراین، ماژول‌ها کدهای درس‌های قبلی رو قوی‌تر می‌کنن.

مثال‌های عملی: دنیای واقعی 💡

برای مثال، بیایم چند برنامه کاربردی بسازیم:

۱. محاسبه مساحت دایره:

import math
def circle_area(radius):
    return math.pi * math.pow(radius, 2)
radius = float(input("شعاع دایره: "))
print(f"مساحت: {circle_area(radius):.2f}")

۲. بازی حدس عدد:

import random
def guess_game():
    number = random.randint(1, 10)
    guess = int(input("یه عدد بین ۱ تا ۱۰ حدس بزن: "))
    if guess == number:
        print("آفرین! درست حدس زدی!")
    else:
        print(f"اشتباه! عدد {number} بود.")
guess_game()

۳. ثبت تاریخ ورود:

from datetime import datetime
def log_entry(filename="log.txt"):
    with open(filename, "a") as file:
        file.write(f"ورود: {datetime.now()}\n")
log_entry()

به همین دلیل، این مثال‌ها درس‌های قبلی رو با ماژول‌ها ترکیب می‌کنن. کدها رو توی lesson6_examples.py ذخیره کن.

خطاهای رایج و راه‌حل‌ها ⚠️

به طور کلی، این خطاها تو کار با ماژول‌ها شایعن:

خطا علت راه‌حل
ModuleNotFoundError ماژول وارد نشده یا نصب نیست املا رو چک کن یا ماژول رو نصب کن (مثل pip install)
AttributeError دسترسی به تابع یا ویژگی ناموجود نام تابع یا ویژگی رو با مستندات چک کن
FileNotFoundError فایل یا پوشه وجود نداره مسیر رو با os.getcwd() چک کن

برای مثال:

import math
print(math.sqr(16))  # خطا: AttributeError
# حل:
print(math.sqrt(16))  # درست

تمرین‌ها: مهارتت رو تست کن! 📝

برای تسلط، این ۱۲ تمرین رو حل کن:

  1. تابعی بنویس که با math مساحت مستطیل رو حساب کنه.
  2. برنامه‌ای که عدد تصادفی بین ۱ تا ۱۰۰ چاپ کنه.
  3. تابعی که تاریخ امروز رو به فرمت روز/ماه/سال چاپ کنه.
  4. برنامه‌ای که فایل‌های پوشه فعلی رو لیست کنه.
  5. تابعی که با random.choice یه رنگ تصادفی از لیست انتخاب کنه.
  6. برنامه‌ای که یه لیست رو با random.shuffle به‌هم بریزه.
  7. تابعی که فاصله دو نقطه رو با فرمول جذر (درس ۱) و math حساب کنه.
  8. برنامه‌ای که زمان فعلی رو توی فایل ذخیره کنه.
  9. تابعی که بررسی کنه پوشه وجود داره یا نه (os.path.exists).
  10. برنامه بازی حدس عدد با ۳ شانس.
  11. تابعی که عدد رو به نزدیک‌ترین عدد صحیح گرد کنه.
  12. برنامه‌ای که یه دیکشنری رو با random پر کنه و توی فایل ذخیره کنه.

💡 نکته: هر تمرین رو توی فایل جدا (ex1.py، ex2.py) ذخیره کن.

پروژه کوچک: تاس دیجیتال با تاریخچه 🎲

برای مثال، بیایم یه برنامه تاس دیجیتال بسازیم که نتیجه رو ذخیره کنه:

  1. عدد تصادفی بین ۱ تا ۶ تولید کن.
  2. نتیجه و زمان رو توی فایل ذخیره کن.
  3. امکان نمایش تاریخچه.
import random
from datetime import datetime

def roll_dice(filename="dice_history.txt"):
    roll = random.randint(1, 6)
    with open(filename, "a") as file:
        file.write(f"{roll} - {datetime.now()}\n")
    return roll

def show_history(filename="dice_history.txt"):
    try:
        with open(filename, "r") as file:
            print("تاریخچه تاس:")
            for line in file:
                print(line.strip())
    except FileNotFoundError:
        print("هیچ تاریخچه‌ای نیست!")

while True:
    print("\n=== تاس دیجیتال ===")
    action = input("پرتاب (r)، تاریخچه (h)، خروج (q): ")
    if action == "q":
        break
    elif action == "r":
        print(f"نتیجه تاس: {roll_dice()}")
    elif action == "h":
        show_history()
print("خداحافظ!")

💡 تست کن: تاس بنداز، تاریخچه رو چک کن و فایل dice_history.txt رو ببین.

سؤالات متداول (FAQ) ❓

به طور کلی، این سؤالات برای مبتدی‌ها رایجه:

  • ماژول چطور پیدا کنم؟ مستندات پایتون یا help(ماژول) رو چک کن.
  • چرا random هربار فرق می‌کنه؟ چون تصادفیه! برای نتایج ثابت از random.seed() استفاده کن.
  • چطور ماژول نصب کنم؟ با pip install نام_ماژول (بعداً یاد می‌گیری).
  • خطای ماژول چطور رفع کنم؟ املا و نصب ماژول رو چک کن.

جمع‌بندی و قدم بعدی ⏭️

تبریک! 🚀 تو این درس ماژول‌ها و کتابخانه‌های پایتون رو یاد گرفتی و با بیش از ۱۲ مثال و یه پروژه، حسابی مسلط شدی. بنابراین، حالا می‌تونی از ابزارهای آماده برای سریع‌تر کردن کدهات استفاده کنی. علاوه بر این، درس بعدی (برنامه‌نویسی شیءگرا) بهت یاد می‌ده چطور اشیاء و کلاس‌ها بسازی. در نهایت، تمرین‌ها رو توی PythonLessons ذخیره کن و اگه دوست داشتی، توی GitHub آپلود کن تا پیشرفتت رو نشون بدی! 😎

ارسال نظر جدید

گزارش دیدگاه