פייתון/פייתון גרסה 2/קלט ופלט


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

כדי להדפיס למשתמש, משתמשים בפקודה print בצורה הזאת:

print <objs>

כאשר objs הם רצף של עצמים. המתרגם ימיר כל עצם למחרוזת, ידפיס את רצף המחרוזות מופרדים על ידי התו רווח, וידפיס תו מעבר-שורה (כלומר, יעבור לשורה חזרה).

הנה, לדוגמה, מה שראינו בפייתון/שלום עולם!:

>>> print 'Hello, world!'
Hello, world!

נוכל לרשום זאת גם כך:

>>> print 'Hello,', 'world!'
Hello, world!

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

להלן מספר צורות שונות להדפיס את המחרוזת 'I have 3 apples':

>>> print 'I have 3 apples'
I have 3 apples
>>> print 'I have', 3, 'apples'
I have 3 apples
>>> print 'I have ' + str(3) + ' apples'
I have 3 apples

הדפסת מספר איברים בפקודת פלט אחת

עריכה

יש שתי אפשרויות בסיסיות להדפיס יותר מאיבר אחד.

אפשרות אחת היא להשתשמש בפקודת print על מספר איברים מופרדים בפסיקים:

>>> print '1','*','2','=','2'
1 * 2 = 2

(נשים לב שהאיברים מודפסים מופרדים ע"י רווחים.)

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

>>> print '1'+'*'+'2'+'='+'2'
1*2=2

דגלים, קובעי רוחב ודיוק

עריכה
 

שימו לב:

תוכן נושא זה אינו תקף לגרסה העתידית פייתון 3000.


בדומה לשפת C, ניתן להשתמש בדגלים, קובעי רוחב ודיוק, כדי להנחות את פייתון כיצד לפרמט את הפלט.

ניקח לצורך הדוגמה את מטען האלקטרון:

e=1.602176487e-19

ניתן להגדיר את כמות הספרות אחרי הנקודה העשרונית שתציג פקודת print:

print '%.2e' % e # Output: 1.60e-19
print '%.5e' % e # Output: 1.60218e-19
print '%.30e' % e # Output: 1.602176487000000029461040573487e-19
שימו לב כי ישנה שגיאת עיגול!

ניתן גם לשנות את גודל השדה. עבור הפקודה:

e=1.602176487e-19
print '%15.2e' % e; print '%15.4e' % e; print '%15.6e' % e;

יתקבל הפלט:

       1.60e-19
     1.6022e-19
   1.602176e-19


 

כדאי לדעת:

בעוד שפקודת print יורדת שורה אוטומטית, פקודת write לא עושה זאת.

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

>>> a=1.234
>>> b=5.678
>>> print 'a=%g, b=%g' % (a,b)
a=1.234, b=5.678
>>> print 'a=%(a)g, b=%(b)g' % vars()
a=1.234, b=5.678
קוד משמעות
%d מספר שלם
%-d מספר שלם עם יישור לשמאל
%e משתנה מטיפוס נקודה-צפה הנכתב בכתיב מדעי
%s מחרוזת. ניתן להשתמש בקוד זה כדי להציג מספרים, ופייתון ימיר אותם אוטומטית למחרוזת.


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



כדי לקלוט מידע מהמשתמש, אפשר להשתמש ב-raw_input (יש לציין שבפייתון 3 ומעלה הפקודה הוחלפה בinput), לפי הצורה הבאה:

name = raw_input()

כאשר name הוא שם אותו קושרים למה שהקליד המשתמש. לדוגמה:

>>> print 'Please enter your name:'
Please enter your name:
>>> name = raw_input()
Ami

(כאן הקליד המשתמש Ami). נבדוק למה מקושר name:

>>> name
'Ami'

הנה עוד דוגמה, הפעם לקלט מספר:

>>> print 'Please enter a number:'
Please enter a number:
>>> number = raw_input()
3

(כאן הקליד המשתמש 3). נבדוק למה מקושר number:

>>> number
3

כפי ששתי הדוגמאות הקודמות מראות, שכיח מאוד לבקש קלט מהמשתמש באמצעות בקשה טקסטואלית. פייתון, לכן, מאפשרת להציג את הפלט ע"י raw_input, כך:

>>> name = raw_input('Please enter your name: ')
Please enter your name: Ami

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

שימוש במודול sys

עריכה
 

שקלו לדלג על נושא זה

קודם יש להכיר את נושא המודולים.



יש לטעון את המודול sys על מנת להשתמש בפקודות הבאות:

import sys

האוביקט stdin הוא הקלט הסטנדרטי (standard input) וניתן לקרוא ממנו מידע בשני אופנים:

  • שורה בודדת:
    sys.stdin.readline()
    
  • מספר שורות (בסופן יש להקיש Ctrl+D):
    sys.stdin.read()
    

בדומה, ניתן להשתמש ב-sys.stdout.write לצורך פלט:

sys.stdout.write('Hello!')


- קלט ופלט -