לדלג לתוכן

המודולים הכי שימושיים בפייתון למתחילים

בואו נדבר בכנות. אחד הדברים הכי מבזבזי זמן שמתחילים עושים הוא לכתוב מאפס פונקציה שכבר קיימת, מוכנה ובדוקה, בתוך פייתון עצמה. פייתון מגיעה עם מה שנקרא "סוללות כלולות" - ספרייה עצומה של מודולים מובנים שפותרים בעיות נפוצות בלי שתצטרכו להתקין שום דבר. הנה סיור בכמה מהשימושיים ביותר בשבילכם כמתחילים.

os - שיחה עם מערכת ההפעלה

המודול os נותן לכם גישה למערכת ההפעלה - קבצים, תיקיות, משתני סביבה.

import os

print(os.getcwd())          # התיקייה הנוכחית
os.mkdir("new_folder")      # יצירת תיקייה חדשה
print(os.listdir("."))      # רשימת קבצים בתיקייה

שימושי כשאתם צריכים לתפעל קבצים ותיקיות, אבל היום ברוב המקרים עדיף להשתמש ב-pathlib שהוא נוח יותר, ונדבר עליו עוד רגע.

pathlib - הדרך המודרנית לעבוד עם קבצים

pathlib הוא השדרוג הנוח והקריא יותר ל-os לכל מה שקשור לנתיבי קבצים.

from pathlib import Path

folder = Path("my_project")
file = folder / "data.txt"

print(file.exists())
print(file.suffix)

שימו לב לתחביר עם / בין תיקייה לקובץ, זה לא מקרי - זה מייצר נתיב תקין בין אם אתם על ווינדוס, לינוקס או מק, בלי שתצטרכו לדאוג להבדלים בין מערכות ההפעלה.

datetime - תאריכים ושעות

כל פרויקט אמיתי בשלב מסוים צריך להתמודד עם תאריכים, וזה תמיד מסתבך יותר ממה שחושבים.

from datetime import datetime, timedelta

now = datetime.now()
print(now.strftime("%d/%m/%Y"))

tomorrow = now + timedelta(days=1)
print(tomorrow)

strftime נותן לכם שליטה מלאה על איך התאריך מוצג, ו-timedelta נותן לכם דרך פשוטה לחשב הפרשי זמן.

random - הגרלות ואקראיות

בשביל משחקים, סימולציות, או פשוט לבחור משהו רנדומלי:

import random

print(random.randint(1, 6))          # הטלת קובייה
print(random.choice(["א", "ב", "ג"])) # בחירה רנדומלית מרשימה
random.shuffle(my_list)               # ערבוב רשימה במקום

טיפ קטן - random הרגיל מספיק לגמרי למשחקים ותרגילים, אבל הוא לא מתאים לשום דבר שקשור לאבטחה או הצפנה. לזה יש מודול נפרד בשם secrets.

json - עבודה עם נתונים מובנים

json הוא הפורמט הכי נפוץ להעברת נתונים בין תוכנות, במיוחד כשמדברים עם שרתים ו-API.

import json

data = {"name": "דן", "age": 25}
text = json.dumps(data, ensure_ascii=False)
print(text)

parsed = json.loads(text)
print(parsed["name"])

dumps הופך אובייקט פייתון למחרוזת json, loads עושה את הכיוון ההפוך. שימו לב לפרמטר ensure_ascii=False, בלעדיו טקסט בעברית יהפוך לקוד יוניקוד לא קריא.

collections - מבני נתונים חכמים יותר

מודול שהרבה מתחילים לא מכירים, אבל שווה זהב. הכוכב שלו הוא Counter:

from collections import Counter

text = "שלום שלום עולם"
word_counts = Counter(text.split())
print(word_counts)
print(word_counts.most_common(1))

שורה אחת סופרת לכם כמה פעמים כל מילה מופיעה. בלי Counter הייתם צריכים מילון, לולאה, ובדיקות אם המפתח כבר קיים.

re - ביטויים רגולריים

מודול חזק מאוד לחיפוש דפוסים בטקסט, אבל הוא נושא שלם בפני עצמו עם עקומת לימוד לא קטנה. אם אתם רק מתחילים, מספיק שתדעו שהוא קיים - נדבר עליו לעומק בפוסט נפרד.

הטעות הנפוצה - לא לבדוק אם זה כבר קיים

הרבה מתחילים כותבים פונקציה שסופרת מילים, או ממירה תאריך, או מערבבת רשימה, בלי לדעת שפייתון כבר עשתה את זה בשבילם, בצורה יעילה ובדוקה יותר ממה שהם יכתבו בעצמם. לפני שאתם כותבים פונקציה, שווה תמיד לשאול - "האם זה כבר קיים במודול מובנה?".

לסיכום

המודולים המובנים של פייתון הם אחד היתרונות הכי גדולים של השפה. אתם לא צריכים לזכור את כל הפונקציות בעל פה, מספיק שתדעו שהמודולים האלה קיימים ומתי לפנות אליהם. עם הזמן, השימוש בהם הופך לטבעי כמו שימוש ב-print.

בקורס התכנות הבסיסי שלנו יש פרק שלם שעובר על המודולים המובנים הכי שימושיים, עם תרגילים מעשיים על כל אחד מהם.

גלו עוד מודולים שימושיים בקורס תכנות בסיסי

לא בטוחים איזה מודול מתאים למה שאתם מנסים לבנות? תשאלו בקהילה, זה בדיוק בשביל זה.

הצטרפו לקהילה בדיסקורד