f-strings – עיצוב מחרוזות מודרני
- Feb 5, 2019
- 2 min read
f-strings – עיצוב מחרוזות מודרני
בשיעור על פורמט (format) למדנו איך לשלב משתנים בתוך מחרוזות באמצעות סוגריים מסולסלים ומתודת format. החל מגרסה 3.6 של פייתון, יש דרך הרבה יותר נוחה, קריאה ומהירה לעשות את זה – f-strings. מספיק לשים את האות f לפני הגרשיים של המחרוזת, ולהכניס ביטויים ישירות בתוך הסוגריים המסולסלים.
בואו נשווה את הדרך הישנה לדרך החדשה –
name = "Eddie"
age = 40
# הדרך הישנה עם format
print("שמי {} ואני בן {}".format(name, age))
# הדרך החדשה עם f-string
print(f"שמי {name} ואני בן {age}")
>>>
שמי Eddie ואני בן 40
שמי Eddie ואני בן 40
שתי השורות מדפיסות בדיוק את אותו דבר, אבל שימו לב כמה ה-f-string נקי וקריא יותר. אין צורך לקרוא ל-format בנפרד, ואפשר לראות בתוך המחרוזת עצמה מה ייכנס לכל מקום.
היופי ב-f-strings הוא שאפשר להכניס לסוגריים לא רק משתנים אלא גם ביטויים שלמים –
x = 7
print(f"שבע כפול שבע זה {x * x}")
print(f"האות הראשונה בשם: {name[0]}")
print(f"השם באותיות גדולות: {name.upper()}")
>>>
שבע כפול שבע זה 49
האות הראשונה בשם: E
השם באותיות גדולות: EDDIE
כלומר כל ביטוי חוקי של פייתון יכול להיכנס לתוך הסוגריים המסולסלים – חיבור, חיתוך, קריאה למתודה, ואפילו קריאה לפונקציה.
עיצוב מספרים – f-strings מאפשרים גם לעצב מספרים בצורה מסודרת. אפשר לקבוע כמה ספרות אחרי הנקודה העשרונית, להוסיף פסיקים למספרים גדולים, ועוד –
price = 1234567.891
pi = 3.14159265
print(f"מחיר: {price:,.2f}")
print(f"פאי מקוצר: {pi:.3f}")
print(f"אחוז: {0.857:.1%}")
>>>
מחיר: 1,234,567.89
פאי מקוצר: 3.142
אחוז: 85.7%
הנקודתיים (:) בתוך הסוגריים מפרידות בין המשתנה לבין הוראות העיצוב. האות f אומרת שמדובר במספר עשרוני (float), המספר לפניה אומר כמה ספרות אחרי הנקודה, הפסיק מוסיף הפרדה לאלפים, וסימן האחוז הופך מספר עשרוני לאחוזים.
יישור טקסט – אפשר גם ליישר טקסט בתוך רוחב קבוע, מה שמאוד שימושי להדפסת טבלאות מסודרות –
products = [("לחם", 8.5), ("חלב", 6.9), ("ביצים", 32.0)] for product, price in products: print(f"{product:<10} {price:>8.2f} ש"ח")
>>>
לחם 8.50 ש"ח
חלב 6.90 ש"ח
ביצים 32.00 ש"ח
הסימן < מיישר שמאלה, הסימן > מיישר ימינה, והמספר קובע את רוחב השדה. ככה אפשר ליצור פלט מסודר בלי להתעסק עם רווחים ידניים.
מחרוזות רב-שורתיות – כמובן ש-f-strings עובדים גם עם שלוש גרשיים –
name = "Eddie" role = "מתכנת" message = f""" שלום {name}, תפקידך הוא: {role} שנת {2025} היא שנה טובה. """ print(message)
>>>
שלום Eddie,
תפקידך הוא: מתכנת
שנת 2025 היא שנה טובה.
לסיכום – f-strings הם הדרך המומלצת לעצב מחרוזות בפייתון מודרני. הם קריאים, מהירים, ותומכים בביטויים, עיצוב מספרים, ויישור טקסט. אם אתם עדיין משתמשים ב-format, הגיע הזמן לעבור.
Comments