4

מחרוזות

Strings

🎯 מטרות הלמידה

  • הבנת אי-שתנות (Immutability) של מחרוזות
  • ביצוע חיתוך (Slicing) ושימוש באופרטור in
  • שימוש במתודות לבדיקת תכונות (isdigit, isalpha וכו')
  • שימוש במתודות לשינוי וניקוי (upper, lower, strip)
  • ביצוע חיפוש (find) והחלפה (replace)
  • פיצול (split) וחיבור (join) של מחרוזות

4.1מבוא ואי-שתנות (Immutability)

🔤 מה זה מחרוזת?

מחרוזת היא רצף של תווים. בפייתון, מחרוזות הן Immutable - לא ניתן לשנות תו בודד בתוך מחרוזת קיימת.

s = 'Python'
# ❌ יגרום לשגיאה:
s[0] = 'p'        # TypeError

אינדקס וחיתוך:

בדיוק כמו ברשימות, אפשר לגשת לתווים ולבצע slicing:

s = 'Hello World'
print(s[0:5])     # Hello
print(s[::-1])    # dlroW olleH (היפוך מחרוזת)

אופרטור in:

text = 'Python is fun'
if 'fun' in text:
    print('נמצא!')

4.2מתודות לבדיקת תכונות

🔍 בדיקת מחרוזות

מתודות אלו מחזירות True או False:

מתודהמה היא בודקת
isalnum()האם כל התווים הם אותיות או ספרות?
isalpha()האם כל התווים הם אותיות?
isdigit()האם כל התווים הם ספרות?
islower()האם כל האותיות הן קטנות (Lowercase)?
isupper()האם כל האותיות הן גדולות (Uppercase)?
isspace()האם המחרוזת מכילה רק רווחים/טאבים?
s1 = '123'
print(s1.isdigit())  # True

s2 = 'abc123'
print(s2.isalpha())  # False (מכיל ספרות)

4.3מתודות לשינוי וניקוי

✨ שינוי מחרוזות

חשוב לזכור: המתודות מחזירות מחרוזת חדשה, הן לא משנות את המקורית!

שינוי גודל אותיות:

s = 'Hello World'
print(s.upper()) # HELLO WORLD
print(s.lower()) # hello world

ניקוי רווחים (Strip):

s = '   Python   '
print(s.strip())  # 'Python' (מוריד משני הצדדים)
print(s.lstrip()) # 'Python   ' (רק משמאל)
print(s.rstrip()) # '   Python' (רק מימין)

4.4חיפוש והחלפה

📍 איתור טקסט

find(substring):

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

s = 'Python is great'
print(s.find('is'))    # 7
print(s.find('java'))  # -1

replace(old, new):

מחליף את כל המופעים של מחרוזת אחת באחרת.

s = 'I love Python, Python is fun'
new_s = s.replace('Python', 'AI')
print(new_s) # I love AI, AI is fun

4.5פיצול (split) וחיבור (join)

✂️ עבודה עם רשימות של מילים

split(separator):

מפרק מחרוזת לרשימה של מילים לפי מפריד (ברירת מחדל: רווח).

s = 'one,two,three'
lst = s.split(',') 
print(lst) # ['one', 'two', 'three']

join(iterable):

מחבר רשימה של מחרוזות למחרוזת אחת עם המפריד שצוין.

words = ['Python', 'is', 'awesome']
s = ' '.join(words)
print(s)  # 'Python is awesome'

s_dash = '-'.join(words)
print(s_dash) # 'Python-is-awesome'
💡 טיפ: Join היא מתודה של המפריד, לא של הרשימה!

4.6f-strings ומתודות בסיסיות

📝 עיצוב מחרוזות

הדרך המודרנית והנוחה ביותר לשלב משתנים בטקסט היא באמצעות f-strings.

name = 'דני'
age = 25
print(f'שלום {name}, אתה בן {age}.')

repetition (*):

print('abc' * 3) # abcabcabc

בדיקת סיומת ותחילת מחרוזת:

filename = 'script.py'
if filename.endswith('.py'):
    print('קובץ פייתון!')

שאלות תרגול

5 שאלות בנושא זה

התחל תרגול →