Menu

print() ו-input() ב-Python: קריאת קלט מהמשתמש והצגת פלט

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

בדף הזה יש עורכים שאפשר להריץ - לערוך, להריץ ולראות את הפלט מיד.

שתי הפונקציות שהופכות את התוכנית לאינטראקטיבית

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

בואו נעבור עליהן אחת אחת.

בצורה הפשוטה ביותר, print() כותבת שורת טקסט לטרמינל:

זה מדפיס את המילה hello ואחריה ירידת שורה. ירידת השורה היא מה שמפריד על המסך בין קריאה אחת ל-print לבאה.

אפשר להעביר כמה ערכים בקריאה אחת, ו-Python תשים ביניהם רווח:

פלט:

Name: Ada Age: 36

הערכים לא חייבים להיות מחרוזות. print קוראת ל-str() על כל ארגומנט, כך שאפשר לערבב טיפוסים בחופשיות:

שינוי המפריד

אם רווח בין הערכים הוא לא מה שאתם רוצים, השתמשו ב-sep:

שינוי סיום השורה

כברירת מחדל print מוסיפה ירידת שורה בסוף. השתמשו ב-end כדי לשנות את זה, למשל כדי להשאיר את הפלט באותה שורה:

end="" הוא הטריק לבניית שורה חתיכה אחרי חתיכה.

כברירת מחדל, print כותבת ל-stdout (הפלט הסטנדרטי): המקום הרגיל שבו מופיע פלט בטרמינל. אפשר להפנות אותה ל-stderr, לקובץ או לכל אובייקט אחר שמתנהג כמו קובץ עם הארגומנט file:

לפלט מעוצב (שתי ספרות אחרי הנקודה, עמודות מרופדות, פסיקים במספרים גדולים) השתמשו ב-f-strings בתוך print:

input(): קריאת קלט מהמשתמש

input(prompt) עוצרת את התוכנית, מציגה למשתמש את ההנחיה ומחכה. כל מה שהמשתמש מקליד, עד שהוא לוחץ Enter, חוזר כמחרוזת.

שלושה דברים ב-input שמפילים מתחילים:

היא תמיד מחזירה מחרוזת

גם אם המשתמש מקליד 42, מה שמקבלים בחזרה הוא המחרוזת "42". אי אפשר לעשות עליה חשבון ישירות:

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

ההנחיה היא אופציונלית

אם לא מעבירים מחרוזת הנחיה, input() מחכה בשקט, וזו כמעט תמיד החלטה לא נכונה: למשתמש אין מושג מה אתם מבקשים. העבירו תמיד הנחיה ברורה:

היא לא מסירה כלום

כל מה שהמשתמש מקליד, כולל רווחים בהתחלה ובסוף, חוזר בדיוק כמו שהוא. אם זה משנה ללוגיקה שלכם, קראו ל-.strip():

תוכנית קטנה ושלמה

נחבר הכל יחד: כמה שורות שמבקשות מהמשתמש פרטים ומדפיסות דוח קטן:

שתים עשרה שורות. היא נקראת מלמעלה למטה כמו הוראות, לא כמו קוד. זה הסגנון שהתיעוד הזה מנסה לעודד.

ומה עם דיבוג בעזרת print?

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

שני טריקים קטנים שמקלים על החיים:

ה-= בתוך f-string מדפיס גם את השם וגם את הערך, וזה חוסך הרבה קוד תבניתי של print("name =", name).

ממשיכים הלאה

print ו-input נותנות לכם לולאת שיחה מלאה: לשאול, לקרוא, להגיב. הפרק הבא מתחיל להוסיף תנאים: משפט ה-if והאופרטורים שמחליטים מה התוכנית עושה לפי הערכים שהיא רואה.

שאלות נפוצות

מה print() עושה ב-Python?

היא כותבת ערכים לטרמינל. print("hello") מדפיסה hello ואחריו ירידת שורה. אפשר להעביר כמה ערכים מופרדים בפסיקים, ו-print() תשים ביניהם רווח כברירת מחדל.

איך עובדת input() ב-Python?

input(prompt) עוצרת את התוכנית, מציגה למשתמש את ההנחיה, מחכה שיקליד משהו וילחץ Enter, ומחזירה את מה שהקליד כמחרוזת. תמיד מחרוזת: אם רוצים מספר, עטפו את הקריאה ב-int(...) או ב-float(...).

איך מדפיסים באותה שורה ב-Python?

העבירו end="" ל-print. כברירת מחדל print מוסיפה ירידת שורה אחרי הפלט; הגדרת end כמחרוזת ריקה (או כל תו אחר) מחליפה את ירידת השורה הזו.

איור של שפות התכנות ב-Coddy

ללמוד תכנות עם Coddy

להתחיל