פייתון/פייתון גרסה 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!')


- קלט ופלט -