פייתון/קלט ופלט

מתוך ויקיספר, אוסף ספרי הלימוד והמדריכים החופשי.

קפיצה אל: ניווט, חיפוש


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

תוכן עניינים

[עריכה] פלט

כדי להדפיס למשתמש, משתמשים בפקודה 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, לפי הצורה הבאה:

<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

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

[עריכה] שימוש במודול sys

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

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



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

import sys

[עריכה] קלט

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

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

[עריכה] פלט

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

sys.stdout.write('Hello!')


הפרק הקודם:
במקום משתנים - עצמים ושמות
קלט ופלט הפרק הבא:
רשימות
כלים אישיים
יצירת ספר
  • הוספת דף ויקי
  • עזרה לאוספים