הקדמה
ב-Python, ניתן ליצור מחרוזת גולמית על ידי הוספת קידומת של r
או R
למחרוזת. מחרוזת גולמית ב-Python מטפלת בתו החזרה (\) כתו סדר. מחרוזת גולמית שימושית כאשר יש צורך לכלול את תו החזרה במחרוזת, כמו לדוגמה בביטוי רגולרי או בנתיב קובץ ב-Windows, ואין רצון שייטפל כתו בריח.
מדובר ביסודות עבודת מחרוזות גולמיות ב-Python, והמאמר כולל דוגמאות נפוצות לשימוש במחרוזות גולמיות כדי לכלול תווים מיוחדים במחרוזות.דוגמאות במאמר זה יעשו שימוש ב-קונסולת ה-Python האינטראקטיבית בשורת הפקודה כדי להדגיש תרחישים שונים של שימוש במחרוזות גולמיות.
כלול תו ירידת שורה במחרוזת באמצעות מחרוזת גולמית
דוגמה זו משתמשת במחרוזת עם ערך: Hi\nHello
. אם תנסה להקצות ערך זה למחרוזת רגילה, אז תו השורה החדשה (\n
) יצור שורה חדשה:
- s = 'Hi\nHello'
הדפס את המחרוזת:
- print(s)
הפלט הוא:
Hi
Hello
הפלט מראה שתו השורה החדשה מביא ליצירת שורה חדשה.
כדי לכלול את תו השורה החדשה במחרוזת, עליך להוסיף קידומת r
או R
למשתנה המחרוזת כדי ליצור מחרוזת גלמית:
- raw_s = r'Hi\nHello'
הדפס את המחרוזת:
- print(raw_s)
הפלט הוא:
Hi\nHello
הפלט כולל את תו השורה החדשה.
כולל תווי קו אחורי כפולים במחרוזת באמצעות מחרוזת גלמית
אם תנסה לכלול תווי קו אחורי כפולים, כמו לדוגמה בנתיב מארח, במחרוזת רגילה, אז התו הראשון של הקו האחורי לא יודפס מכיוון שהמהדר רואה את הקו האחורי כאינדיקטור של ירידה מהשורה.
לדוגמה, צור מחרוזת שמכילה נתיב:
- s = '\\examplehost\digitalocean\content\'
הדפס את המחרוזת:
- print(s)
הפלט הוא:
\examplehost\digitalocean\content\
הפלט מראה שהתו הראשון של הקו האחורי לא כלול במחרוזת.
כדי לכלול שני התווים האחוריים במחרוזת, עליך להוסיף קידומת r
או R
למשתנה המחרוזת כדי ליצור מחרוזת גלמית:
- s = r'\\examplehost\digitalocean\content\'
הדפס את המחרוזת:
- print(s)
הפלט הוא:
\\examplehost\digitalocean\content\
הפלט כולל את שני תווי הקו האחורי.
ציטוטים ותווי חזור במחרוזות גולמיות בנסיון לאתר שגיאות
במחרוזת גולמית, ניתן עדיין לברוח מציטוטים באמצעות תו חזור יחיד, אך תו החזור נשאר במחרוזת הגולמית התוצאתית.
בנוסף, מחרוזת גולמית לא יכולה להסתיים במספר אי-זוגי של תווי חזור. עקב מאפיין זה, אי אפשר ליצור מחרוזת גולמית שמכילה תו חזור יחיד, לכן r"/"
הוא מחרוזת לא תקינה.
דוגמאות למחרוזת גולמית לא תקינות
בדוגמה זו, הציטוט הסופי חסר מהפלט מאחר והוא נמלט על ידי תו החזור, מה שגורם לשגיאת ליטרל מחרוזת לא מסתיים
:
r'\'
בדוגמה זו, שני התווים הראשונים של החזור יברחו את האחד את השני, והתו השלישי ינסה לברוח מהציטוט הסופי, מה שגורם לשגיאת ליטרל מחרוזת לא מסתיים
:
r'ab\\\'
דוגמאות למחרוזת גולמית תקינות
הנה כמה דוגמאות למחרוזות גולמיות חוקיות שכוללות גרשיים ותווי חזרה אחוריים.
צור מחרוזת גולמית שמבריחה גרשיים:
- s = r"\"\""
הדפס את המחרוזת:
- print(s)
הפלט הוא:
\"\"
הפלט מראה שתווי החזרה אחוריים מבריחים את הגרשיים כך שהמחרוזת לא מסתיימת, אבל תווי החזרה אחוריים נשארים במחרוזת התוצאה.
צור מחרוזת גולמית עם מספר זוגי של תווי חזרה אחוריים:
- s = R'ab\\'
הדפס את המחרוזת:
- print(s)
הפלט הוא:
ab\\
הפלט מראה שהמספר הזוגי של תווי החזרה אחוריים כלולים במחרוזת התוצאה.
מסקנה
במאמר זה, למדת את היסודות של מחרוזות גולמיות בפייתון. המשך ללמוד אודות מחרוזות פייתון.
Source:
https://www.digitalocean.com/community/tutorials/python-raw-string