פוסט

print(): הצגת פלט ב-Python

איך print() עובדת ב-Python 3: הדפסת כמה ערכים, הארגומנטים sep ו-end, הדפסה ל-stderr, והטעות הנפוצה של הדפסת None.

print() היא הפונקציה שמשתמשים בה הכי הרבה ב-Python. היא כותבת טקסט למסך, בדרך כלל לצורך דיבוג או כדי להציג תוצאה.

כל דוגמת קוד כאן הורצה עם Python 3.13, וההתנהגות נבדקה מול התיעוד הרשמי של print().

הדפסה של ערך אחד או כמה

print() מקבלת כמה ערכים שמופרדים בפסיקים. היא ממירה כל ערך לטקסט ומכניסה רווח בין הערכים:

print("Hello")
print("a", "b", "c")
Hello
a b c

כל קריאה ל-print() מסתיימת בשורה חדשה, ולכן הקריאה הבאה מתחילה בשורה חדשה. בלי ארגומנטים, print() מדפיסה שורה ריקה. כדי לשלב טקסט ומשתנים במחרוזת אחת משתמשים ב-f-string.

sep ו-end

שני ארגומנטים עם שם קובעים את המפריד ואת הסיום:

  • sep נכנס בין הערכים (ברירת מחדל: רווח).
  • end נכנס אחרי הערך האחרון (ברירת מחדל: \n, ירידת שורה).
print("a", "b", "c", sep="-")
print("no newline", end=" ")
print("continues here")
print()
a-b-c
no newline continues here

לפי התיעוד, sep, end, file ו-flush “חייבים להינתן כארגומנטים עם שם”. לכן print("a", "b", "-") לא משתמשת במפריד חדש. המקף הוא ערך שלישי, והפלט הוא a b -.

לאן הפלט הולך

כברירת מחדל print() כותבת ל-standard output. הארגומנט file שולח את הפלט למקום אחר. שגיאות ואזהרות בדרך כלל נכתבות ל-standard error (sys.stderr), כדי להפריד אותן מהפלט הרגיל:

import sys

print("something went wrong", file=sys.stderr)

בטרמינל שני הזרמים נראים אותו דבר. ההבדל מתברר כשמפנים את הפלט לקובץ.

טעות נפוצה: print מחזירה None

print() מציגה את הערך, אבל לא מחזירה אותו. אם שומרים את התוצאה שלה, נשמר None:

x = print("hi")
print(x)
hi
None

אם רוצים שהערך יישאר במשתנה, שומרים אותו קודם ומדפיסים את המשתנה.

מה הלאה

בפוסט הבא: משתנים וטיפוסים.