יסודות Python
הדפסה וקלט
הדפסה בסיסית:
הדפסה עם משתנים:
קבלת קלט מהמשתמש:
הדפסה ללא שורה חדשה:
משתנים
משתנה הוא כמו קופסה שאפשר לשים בה מידע. אפשר לתת לקופסה שם (כמו "age" או "name") ולשים בה ערך (כמו 25 או "Alice"). ב-Python לא צריך להגדיר מראש איזה סוג מידע יהיה במשתנה - Python מבין את זה לבד!
הגדרת משתנים:
השמה מרובה:
החלפת ערכים:
בדיקת טיפוס:
אופרטורים
אופרטורים אריתמטיים:
אופרטורי השוואה:
אופרטורים לוגיים:
אופרטורי השמה:
הערות
הערה בשורה אחת:
הערה מרובת שורות:
טיפוסי נתונים
int - מספרים שלמים (1, 2, 100, -5)
float - מספרים עשרוניים (3.14, 2.5, -0.1)
str - טקסט ("Hello", "Python")
bool - אמת או שקר (True, False)
למה זה חשוב? לא אפשר לחבר מספר עם טקסט ישירות - צריך להמיר קודם!
מספרים
מספרים שלמים (int):
מספרים עשרוניים (float):
מספרים מרוכבים (complex):
המרות בין טיפוסים:
Boolean
ערכי אמת:
המרה ל-Boolean:
None
ערך ריק:
פעולות מתמטיות
פונקציות מובנות:
מודול math:
מספרים אקראיים
מודול random:
מחרוזות (Strings)
למה זה חשוב? רוב התוכניות עובדות עם טקסט - שמות, כתובות, הודעות, תוכן מאתרים...
טיפ: מחרוזות ב-Python הן immutable - לא ניתן לשנות אותן, רק ליצור חדשות.
f-strings - הדרך המודרנית והנוחה ביותר לשלב משתנים בטקסט!
יצירת מחרוזות
מחרוזות בסיסיות:
תווים מיוחדים:
פעולות על מחרוזות
חיבור ושכפול:
אורך וגישה לתווים:
בדיקות:
מתודות מחרוזת
שינוי רישיות:
חיפוש והחלפה:
פיצול וחיבור:
הסרת רווחים:
יישור:
בדיקות תוכן:
עיצוב מחרוזות
f-strings (Python 3.6+):
format():
% formatting (ישן):
רשימות (Lists) ו-Tuples
Tuple - כמו ספר קבוע שלא ניתן לשנות אותו. משתמשים בסוגריים עגולים ( )
מתי להשתמש במה? List כשצריך לשנות את הנתונים, Tuple כשהנתונים קבועים (כמו קואורדינטות).
רשימות - יצירה וגישה
יצירת רשימות:
גישה לאיברים:
שינוי איברים:
מתודות רשימה
הוספת איברים:
הסרת איברים:
חיפוש ומיון:
העתקה:
פעולות על רשימות
פונקציות מובנות:
לולאות על רשימות:
Tuples
יצירת Tuples:
גישה ל-Tuples:
Unpacking:
מתודות Tuple:
טיפים שימושיים
יצירת רשימות מיוחדות:
שילוב רשימות:
מילונים (Dictionaries) ו-Sets
לדוגמה:
{"name": "Alice", "age": 25} - "name" זה המפתח, "Alice" זה הערך.Set (קבוצה) - אוסף של פריטים ייחודיים ללא כפילויות, כמו קבוצה במתמטיקה.
למה זה שימושי? מילון מאפשר לחפש מידע מהר מאוד לפי שם, במקום לחפש לפי מיקום.
מילונים - יצירה וגישה
יצירת מילונים:
גישה לערכים:
שינוי והוספה:
מתודות מילון
הסרת איברים:
בדיקות:
קבלת מפתחות וערכים:
לולאות על מילונים:
Sets (קבוצות)
יצירת Sets:
הוספה והסרה:
פעולות קבוצות:
בקרת זרימה (Control Flow)
if/else - "אם... אז..." - מאפשר לתוכנית להחליט מה לעשות בהתאם לתנאי.
for - לולאה שעוברת על רשימה או טווח מספרים.
while - לולאה שממשיכה כל עוד תנאי מסוים מתקיים.
למה זה חשוב? בלי בקרת זרימה, התוכנית רק תריץ שורה אחר שורה ללא החלטות.
תנאים - if/elif/else
תנאי בסיסי:
תנאי בשורה אחת:
תנאים מרובים:
לולאות - for
לולאת for בסיסית:
לולאה על רשימה:
לולאה על מילון:
לולאות - while
לולאת while בסיסית:
לולאה אינסופית:
break, continue, pass
break - יציאה מלולאה:
continue - דילוג על איטרציה:
pass - ביצוע ריק:
else בלולאות:
פונקציות (Functions)
למה זה שימושי? במקום לכתוב את אותו קוד 10 פעמים, כותבים פונקציה אחת וקוראים לה 10 פעמים.
פרמטרים - זה המרכיבים שאתה נותן לפונקציה (כמו ביצים וקמח למתכון).
return - מה שהפונקציה מחזירה בסוף (כמו העוגה המוכנה).
הגדרת פונקציות
פונקציה בסיסית:
פונקציה עם פרמטרים:
פונקציה עם ערך החזרה:
פרמטרים עם ברירת מחדל:
פרמטרים מתקדמים
*args - מספר משתנה של ארגומנטים:
**kwargs - ארגומנטים עם שם:
שילוב של הכל:
פונקציות מתקדמות
Lambda - פונקציות אנונימיות:
פונקציות מקוננות:
Decorators:
פונקציות שימושיות
map, filter, reduce:
עבודה עם קבצים
with open() - הדרך הבטוחה לפתוח קבצים. הקובץ נסגר אוטומטית בסוף!
מצבי פתיחה:
• "r" - קריאה (read) - רק לקרוא מהקובץ
• "w" - כתיבה (write) - מוחק את הקובץ הישן וכותב חדש
• "a" - הוספה (append) - מוסיף בסוף הקובץ הקיים
encoding="utf-8" - חשוב לעברית! מבטיח שהטקסט יוצג נכון.
קריאה וכתיבה בסיסית
קריאת קובץ:
כתיבה לקובץ:
קריאת שורות לרשימה:
מצבי פתיחה
מצבים שונים:
עבודה עם נתיבים
מודול os:
מודול pathlib (מודרני):
JSON ו-CSV
עבודה עם JSON:
עבודה עם CSV:
תכנות מונחה עצמים (OOP)
אובייקט (Object) - דוגמה ספציפית מהמחלקה. כמו בית אמיתי שנבנה לפי התוכנית.
מאפיינים (Attributes) - מאפיינים של האובייקט (צבע, גודל, שם).
מתודות (Methods) - פעולות שהאובייקט יכול לעשות (ללכת, לדבר, לחשב).
למה זה שימושי? מאפשר לארגן קוד מורכב בצורה הגיונית וקלה לתחזוקה.
מחלקות בסיסיות
הגדרת מחלקה:
מתודות ומאפיינים:
ירושה (Inheritance)
ירושה בסיסית:
super() - קריאה למחלקת אב:
מתודות מיוחדות
Magic methods:
Properties ו-Encapsulation
@property decorator:
מודולים וחבילות
חבילה (Package) - תיקייה שמכילה מספר מודולים.
למה זה שימושי? במקום לכתוב הכל מאפס, משתמשים בקוד שכבר נכתב!
pip - מנהל החבילות של Python. מאפשר להתקין אלפי ספריות בפקודה אחת.
דוגמה: צריך לעבוד עם תאריכים? יש מודול datetime. צריך מספרים אקראיים? יש מודול random.
ייבוא מודולים
דרכי ייבוא:
יצירת מודול משלך:
חבילות (Packages)
מבנה חבילה:
התקנת חבילות
pip - מנהל חבילות:
טיפול בשגיאות (Exception Handling)
try/except - "נסה לעשות משהו, ואם זה נכשל - עשה משהו אחר".
למה זה חשוב? במקום שהתוכנית תקרוס, היא תוכל להמשיך לרוץ ולהציג הודעה ידידותית למשתמש.
דוגמה מהחיים: כמו רשת ביטחון - אם משהו משתבש, יש לך תוכנית גיבוי.
try/except
טיפול בסיסי בשגיאות:
טיפול במספר שגיאות:
else ו-finally:
זריקת שגיאות
raise - זריקת שגיאה:
שגיאות מותאמות אישית:
Comprehensions
במקום: לולאה של 4 שורות
כותבים: שורה אחת קצרה וברורה
למה זה מגניב? הקוד נראה יותר "פייתוני" (Pythonic) וקל יותר לקריאה אחרי שמתרגלים.
טיפ: אל תגזימו! אם ה-comprehension נהיה מסובך מדי, עדיף לולאה רגילה.
List Comprehension
יצירת רשימות:
Dictionary Comprehension
יצירת מילונים:
Set Comprehension
יצירת קבוצות:
Generator Expression
Generators - חסכוני בזיכרון:
נושאים מתקדמים
Iterators - כשרוצים ליצור אובייקט שאפשר לעבור עליו בלולאה.
Context Managers - כשצריך לוודא שמשאב (כמו קובץ) נסגר תמיד, גם אם יש שגיאה.
Type Hints - עוזר לתעד את הקוד ולמצוא באגים לפני שהתוכנית רצה.
טיפ: אלו כלים מתקדמים - אל תדאגו אם לא מבינים הכל בהתחלה!
Generators
פונקציית Generator:
Generator עם yield from:
Iterators
יצירת Iterator:
Context Managers
יצירת Context Manager:
Context Manager עם contextlib:
Type Hints
הוספת Type Hints:
ספריית התקן (Standard Library)
"Batteries Included" - הפילוסופיה של Python: הכל כבר מוכן לשימוש.
למה זה מעולה? רוב הדברים הבסיסיים שתצטרכו כבר קיימים - תאריכים, קבצים, רשת, ועוד.
טיפ: לפני שמתקינים ספרייה חיצונית, בדקו אם יש משהו דומה בספריית התקן!
datetime - תאריכים ושעות
עבודה עם תאריכים:
collections - מבני נתונים
מבני נתונים שימושיים:
itertools - כלי איטרציה
פונקציות שימושיות:
re - ביטויים רגולריים
Regex בסיסי:
שימושיים נוספים
מודולים שימושיים:
ספריות פופולריות
pandas - המלך של ניתוח נתונים! עובד עם טבלאות (כמו Excel) בצורה מהירה ונוחה.
numpy - חישובים מתמטיים מהירים במיוחד, בסיס למדעי הנתונים.
matplotlib - יצירת גרפים ותרשימים מקצועיים.
Flask/Django - בניית אתרי אינטרנט ו-APIs.
טיפ: התקינו רק את מה שצריך - לא צריך להתקין הכל בבת אחת!
requests - HTTP
בקשות HTTP:
pandas - ניתוח נתונים
עבודה עם DataFrames:
numpy - חישובים מספריים
מערכים ומטריצות:
matplotlib - גרפים
יצירת גרפים:
ספריות נוספות
ספריות שימושיות:
CopyCode