איך לחבר מחרוזת ומספר שלם ב-Python

הקדמה

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

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

דוגמה

בואו נסתכל על דוגמה לשרשור של מחרוזת (str) ומספר שלם (int) באמצעות המפעיל +.

string_concat_int.py
current_year_message = 'Year is '

current_year = 2018

print(current_year_message + current_year)

הפלט הרצוי הוא המחרוזת: Year is 2018. אך, כאשר אנו מריצים את הקוד הזה אנו מקבלים את השגיאה בזמן ריצה הבאה:

Traceback (most recent call last):
  File "/Users/sammy/Documents/github/journaldev/Python-3/basic_examples/strings/string_concat_int.py", line 5, in <module>
    print(current_year_message + current_year)
TypeError: can only concatenate str (not "int") to str

אז איך לשרשר str וint בפייתון? ישנן דרכים שונות לבצע את הפעולה הזו.

דרישות מוקדמות

על מנת להשלים את המדריך הזה, יהיה עליכם להפעיל:

המדריך הזה נבדק עם Python 3.9.6.

שימוש בפונקציית str()

ניתן להעביר int לפונקציית str() והיא תומרת אותו ל-str:

print(current_year_message + str(current_year))

השנה הנוכחית בפורמט מחרוזת: שנת 2018.

שימוש באופרטור האינטרפולציה %

ניתן להעביר ערכים למבנה ההמרה עם עיצוב מחרוזות בסגנון printf:

print("%s%s" % (current_year_message, current_year))

השנה הנוכחית מאותרת למחרוזת: שנת 2018.

באמצעות הפונקציה str.format()

ניתן גם להשתמש בפונקציה str.format() לשרטוט מחרוזת ומספר שלם.

print("{}{}".format(current_year_message, current_year))

המשתנה current_year מומר לסוג מחרוזת: שנת 2018.

באמצעות מחרוזות f

אם אתה משתמש בגרסה 3.6 של Python או גרסאות גבוהות יותר, תוכל גם להשתמש ב-f-strings.

print(f'{current_year_message}{current_year}')

המשתנה current_year מוכנס לתוך מחרוזת: שנת 2018.

סיכום

ניתן לבדוק את הסקריפט המלא של Python ודוגמאות נוספות ב-Python בקטע השולי שלנו ב-מאגר ה-GitHub שלנו.

Source:
https://www.digitalocean.com/community/tutorials/python-concatenate-string-and-int