חיבור מחרוזות ב-Python

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

הוספת מחרוזת בפייתון

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

  • שימוש באופרטור +
  • שימוש בשיטת join()
  • שימוש באופרטור %
  • שימוש בפונקציה format()
  • שימוש ב-f-string (אינטרפולציה מחרוזתית ממולאת)

הוספת מחרוזת באמצעות אופרטור +

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

s1 = 'Apple'
s2 = 'Pie'
s3 = 'Sauce'

s4 = s1 + s2 + s3

print(s4)

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

s1 = input('Please enter the first string:\n')
s2 = input('Please enter the second string:\n')

print('Concatenated String =', s1 + s2)

פלט:

Please enter the first string:
Hello
Please enter the second string:
World
Concatenated String = HelloWorld

שימוש באופרטור + עבור הוספת מחרוזות הוא פשוט מאוד. עם זאת, הארגומנטים חייבים להיות מחרוזת.

>>>'Hello' + 4
Traceback (most recent call last):
  File "<input>", line 1, in 
TypeError: can only concatenate str (not "int") to str

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

print('Hello' + str(4))


class Data:
    id = 0

    def __init__(self, i):
        self.id = i

    def __str__(self):
        return 'Data[' + str(self.id) + ']'


print('Hello ' + str(Data(10)))

פלט:

Hello4
Hello Data[10]

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

שרשור מחרוזות באמצעות פונקציית join()

ניתן להשתמש בפונקציית join() כדי לשרשר מחרוזת עם מפריד. זה שימושי כאשר יש לנו רצף של מחרוזות, לדוגמה רשימה (list) או טופל (tuple) של מחרוזות. אם אין לך צורך במפריד, ניתן להשתמש בפונקציית join() עם מחרוזת ריקה.

s1 = 'Hello'
s2 = 'World'

print('Concatenated String using join() =', "".join([s1, s2]))

print('Concatenated String using join() and whitespaces =', " ".join([s1, s2]))

פלט:

Concatenated String using join() = HelloWorld
Concatenated String using join() and spaces = Hello World

שרשור מחרוזות באמצעות אופרטור %

אפשר להשתמש באופרטור ה-% לעיצוב מחרוזות, וניתן להשתמש בו גם לשרשור מחרוזות. זה מועיל כאשר רוצים לשרשר מחרוזות ולבצע עיצוב פשוט.

s1 = 'Hello'
s2 = 'World'

s3 = "%s %s" % (s1, s2)
print('String Concatenation using % Operator =', s3)

s3 = "%s %s from JournalDev - %d" % (s1, s2, 2018)
print('String Concatenation using % Operator with Formatting =', s3)

Output:

String Concatenation using % Operator = Hello World
String Concatenation using % Operator with Formatting = Hello World from JournalDev - 2018

שרשור מחרוזות באמצעות פונקציית format()

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

s1 = 'Hello'
s2 = 'World'

s3 = "{}-{}".format(s1, s2)
print('String Concatenation using format() =', s3)

s3 = "{in1} {in2}".format(in1=s1, in2=s2)
print('String Concatenation using format() =', s3)

Output:

String Concatenation using format() = Hello-World
String Concatenation using format() = Hello World

פונקציית העיצוב format() ב-Python היא יעילה מאוד, ושימוש רק בשרשור מחרוזות אינו השימוש הנכון שלה.

שרשור מחרוזות באמצעות f-string

אם אתה משתמש ב-Python 3.6+ אז ניתן להשתמש ב-f-string גם לשרשור מחרוזות. זו אופציה חדשה לעיצוב מחרוזות שהוצגה ב-PEP 498 – Literal String Interpolation.

s1 = 'Hello'
s2 = 'World'

s3 = f'{s1} {s2}'
print('String Concatenation using f-string =', s3)

name = 'Pankaj'
age = 34
d = Data(10)

print(f'{name} age is {age} and d={d}')

Output:

String Concatenation using f-string = Hello World
Pankaj age is 34 and d=Data[10]

‏f-string ב-Python הוא נקי וקל לכתיבה בהשוואה ל- format(). הוא גם קורא לפונקציה str() כאשר אובייקט משמש כהחלפת שדה.

מסקנה

עיצוב מחרוזות בפייתון ניתן לבצע בכמה דרכים. יש להשתמש בהם לפי הדרישות שלך. אם עליך לחבר רצף של מחרוזות עם מפריד, אז יש להשתמש בפונקציית join(). אם נדרש גם עיצוב עם חיבור, אז יש להשתמש בפונקציית format() או ב-f-string. שים לב ש-f-string ניתן להשתמש בו עם גרסאות של פייתון 3.6 או מעלה.

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

Source:
https://www.digitalocean.com/community/tutorials/python-string-concatenation