מחרוזות

פייתון מספקת מספר מנגנונים שונים לעבודה עם מחרוזות: מחרוזת היא אובייקט עם מתודות הרלוונטיות עבורה (למשל split שראינו), בנוסף ניתן להסתכל על כל מחרוזת כאוסף של תווים וכך להפעיל פעולות על אוספים (למשל len שראינו) ובנוסף קיים מודול סטנדרטי בשם string שמציע מספר פונקציות נוספות לעיבוד מחרוזות.

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

לא ניתן לשנות מחרוזת בפייתון מרגע שנוצרה (מחרוזת הינה Immutable). מסיבה זו הפונקציות שכביכול משנות את הערך תמיד יחזירו עותק של המחרוזת הכולל את השינוי. 

1. מתודות על מחרוזות

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

text = "baby let me follow you down"
print text.title()

אבל כשמחליפים שיר התוצאה עשויה להפתיע:

text = "it ain't me babe"
print text.title()

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

לרשימה מלאה של פונקציות על מחרוזות מומלץ לפנות לתיעוד בקישור:
https://docs.python.org/2/library/stdtypes.html#string-methods

2. שימוש במחרוזת כרשימה של תווים

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

text = "it ain't me babe"
print text[3:4]

לצורך שליפת ערכים מתחילת המחרוזת אין צורך לציין את ה-0 במספר הראשון. כך נשלוף את שני התווים הראשונים מתוך המחרוזת:

text = "it ain't me babe"
print text[:2]

ובאותו האופן בשביל להעתיק עד סוף המחרוזת ניתן לוותר על המספר השני בתוך הסוגריים:

text = "it ain't me babe"
print text[3:]

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

text = "it ain't me babe"
print text[-4:]

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

text = "it ain't me babe"
print text[-1]

בהיותה אוסף של תווים מחרוזת מאפשרת בדיקה מהירה האם תו או רצף תווים נמצאים במחרוזת באמצעות:

if "p" in "python":
    print "p is in python"
    
if "a" not in "python":
    print "a is not in python"

רשימה מלאה של פונקציות לאוספים זמינה בקישור:
https://docs.python.org/2/library/stdtypes.html#sequence-types-str-unicode-list-tuple-bytearray-buffer-xrange


תיעוד מחרוזות:
https://docs.python.org/2/library/stdtypes.html#string-methods

הקוד עבור לוח הכפל שהוצג במדריך:

""" mul.py """

for i in range(1,10):
    for j in range(1,10):
        result = i * j
        print "%4d" % (result),
    print