✕ סגור 
צור קשר
תודה על ההתעניינות .

Thank you! Your submission has been received!

Oops! Something went wrong while submitting the form

מדריך PYTHON למתחילים: חלק 3 - הדפסות

אלעד פלג
|
קלה
|
Sep 25, 2018
alt="facebook"alt="linkedin"
להרשמה לניוזלטר

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

כל מה שצריך לעשות הוא לפתוח קובץ טקסט פשוט ב- notepad או בעזרת עורך הטקסט המועדף עליכם ולשמור אותו עם סיומת py. במקום סיומת ה-txt.  הסטנדרטית. אם פייתון מותקנת לכם על המחשב, תוכלו להריץ את הקוד בקובץ הטקסט באמצעות הפקודה python.

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

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

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

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

Print('Show me the money!')

Show me the money!

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

print('Show me' + ' the money!')

Show me the money!

כמו שרואים בדוגמה האחרונה, רווחים הם תו לכל דבר ולכן אם נרצה ריווח בין שתי המחרוזות נצטרך לזכור לכלול אותו באחת מהן.

אם נרצה לחבר טקסט ומספר, לעומת זאת אנחנו עלולים להיתקל בבעיה:

print("show me the money!" + " -Jerry Maguire," + 1996)

Traceback (most recent call last):

File input type="text", line 1, in

TypeError: cannot concatenate 'str' and 'int' objects

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

print("show me the money!" + " -Jerry Maguire," + "1996")

show me the money! -Jerry Maguire,1996

אופציה נוספת היא הדפסת ערכים נפרדים באמצעות פסיקים (במקום שרשור שלהם עם "+"). בצורה זו טיפוסי הערכים לא משנים, הם מודפסים "זה לצד זה" אבל התוצאה נראית זהה

print("show me the money!","-Jerry Maguire,",1996)

show me the money! -Jerry Maguire,1996

יתרון נוסף בשיטה הזאת הוא שאנחנו לא צריכים לזכור לרווח בין הערכים השונים – הערכים יודפסו עם רווח אחרי כל ערך.

קיימים מספר צירופי תווים מיוחדים שנותנים לנו עוד קצת שליטה על הדרך שבה נוכל להדפיס ערכים, לדוגמה לוכסן הפוך (back slash) עם האות "n" יבצע ירידת שורה (new line)

print("Our lives are defined by opportunities,\neven the ones we miss.")

Our lives are defined by opportunities,

even the ones we miss.

באופן דומה אנחנו יכולים להשתמש בלוכסן עם האות "t" כדי לייצר ריווח של tab

print("Our lives are defined by opportunities,\teven the ones we miss.")

Our lives are defined by opportunities,  even the ones we miss.

PRINT פרמטרים נוספים לפונקציה

כברירת מחדל, כל הדפסה שנבצע תיצור שורה חדשה

print("My name's Bond,")

print("James Bond")

My name's Bond,

James Bond

אנחנו יכולים לשנות את זה בעזרת פרמטר.

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

הפרמטר end מגדיר לפונקציה איזה תו אנחנו רוצים שיופיע בסוף ההדפסה ובנוסף יבטל את ירידת השורה של ההדפסה הבאה ובכך יגרום לשתי השורות "להיצמד" ביחד.

print("My name's Bond" ,end="-> ")

print("James Bond")

My name's Bond-> James Bond

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

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

print("Riddle me this", "riddle me that", "who's afraid of the big", "black bat?")

Riddle me this riddle me that who's afraid of the big black bat?

אנחנו יכולים לשנות את ברירת המחדל הזאת בעזרת הפרמטר sep (קיצור של seperator)

print("Riddle me this", "riddle me that", "who's afraid of the big", "black bat?", sep="|")

Riddle me this|riddle me that|who's afraid of the big|black bat?

בפייתון 2 print היא פקודה ולא פונקציה ולמרות שבדרך כלל כן אפשרי להשתמש בסוגריים אחרי print, בדרך כלל הדפסה בפייתון 2 תיראה כך:

print "I know kung fu."

הפרמטרים ייחודיים לפונקציות ולכן לא יעבדו בגרסה 2 למרות שאתם יכולים עדיין להשתמש בפסיקים בין הערכים כדי לייצר רווחים ופסיק אחרי הערך האחרון ללא שום דבר אחריו יצמיד את ההדפסה הבאה לנוכחית (ממש כמו מה שהפרמטר end עושה)

במידה וחשוב לכם להשתמש ב-print כפונקציה בכתיבת פייתון 2, ניתן לייבא אותה מפייתון 3 בעזרת הספרייה__future__ בצורה הבאה:

from __future__ import print_function

שורת הקוד הזאת תאפשר לכתוב print כפונקציה.

BI מאת: אלעד פלג, יועץ

http://eladpeleg.co.il

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

כל מה שצריך לעשות הוא לפתוח קובץ טקסט פשוט ב- notepad או בעזרת עורך הטקסט המועדף עליכם ולשמור אותו עם סיומת py. במקום סיומת ה-txt.  הסטנדרטית. אם פייתון מותקנת לכם על המחשב, תוכלו להריץ את הקוד בקובץ הטקסט באמצעות הפקודה python.

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

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

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

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

Print('Show me the money!')

Show me the money!

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

print('Show me' + ' the money!')

Show me the money!

כמו שרואים בדוגמה האחרונה, רווחים הם תו לכל דבר ולכן אם נרצה ריווח בין שתי המחרוזות נצטרך לזכור לכלול אותו באחת מהן.

אם נרצה לחבר טקסט ומספר, לעומת זאת אנחנו עלולים להיתקל בבעיה:

print("show me the money!" + " -Jerry Maguire," + 1996)

Traceback (most recent call last):

File input type="text", line 1, in

TypeError: cannot concatenate 'str' and 'int' objects

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

print("show me the money!" + " -Jerry Maguire," + "1996")

show me the money! -Jerry Maguire,1996

אופציה נוספת היא הדפסת ערכים נפרדים באמצעות פסיקים (במקום שרשור שלהם עם "+"). בצורה זו טיפוסי הערכים לא משנים, הם מודפסים "זה לצד זה" אבל התוצאה נראית זהה

print("show me the money!","-Jerry Maguire,",1996)

show me the money! -Jerry Maguire,1996

יתרון נוסף בשיטה הזאת הוא שאנחנו לא צריכים לזכור לרווח בין הערכים השונים – הערכים יודפסו עם רווח אחרי כל ערך.

קיימים מספר צירופי תווים מיוחדים שנותנים לנו עוד קצת שליטה על הדרך שבה נוכל להדפיס ערכים, לדוגמה לוכסן הפוך (back slash) עם האות "n" יבצע ירידת שורה (new line)

print("Our lives are defined by opportunities,\neven the ones we miss.")

Our lives are defined by opportunities,

even the ones we miss.

באופן דומה אנחנו יכולים להשתמש בלוכסן עם האות "t" כדי לייצר ריווח של tab

print("Our lives are defined by opportunities,\teven the ones we miss.")

Our lives are defined by opportunities,  even the ones we miss.

PRINT פרמטרים נוספים לפונקציה

כברירת מחדל, כל הדפסה שנבצע תיצור שורה חדשה

print("My name's Bond,")

print("James Bond")

My name's Bond,

James Bond

אנחנו יכולים לשנות את זה בעזרת פרמטר.

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

הפרמטר end מגדיר לפונקציה איזה תו אנחנו רוצים שיופיע בסוף ההדפסה ובנוסף יבטל את ירידת השורה של ההדפסה הבאה ובכך יגרום לשתי השורות "להיצמד" ביחד.

print("My name's Bond" ,end="-> ")

print("James Bond")

My name's Bond-> James Bond

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

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

print("Riddle me this", "riddle me that", "who's afraid of the big", "black bat?")

Riddle me this riddle me that who's afraid of the big black bat?

אנחנו יכולים לשנות את ברירת המחדל הזאת בעזרת הפרמטר sep (קיצור של seperator)

print("Riddle me this", "riddle me that", "who's afraid of the big", "black bat?", sep="|")

Riddle me this|riddle me that|who's afraid of the big|black bat?

בפייתון 2 print היא פקודה ולא פונקציה ולמרות שבדרך כלל כן אפשרי להשתמש בסוגריים אחרי print, בדרך כלל הדפסה בפייתון 2 תיראה כך:

print "I know kung fu."

הפרמטרים ייחודיים לפונקציות ולכן לא יעבדו בגרסה 2 למרות שאתם יכולים עדיין להשתמש בפסיקים בין הערכים כדי לייצר רווחים ופסיק אחרי הערך האחרון ללא שום דבר אחריו יצמיד את ההדפסה הבאה לנוכחית (ממש כמו מה שהפרמטר end עושה)

במידה וחשוב לכם להשתמש ב-print כפונקציה בכתיבת פייתון 2, ניתן לייבא אותה מפייתון 3 בעזרת הספרייה__future__ בצורה הבאה:

from __future__ import print_function

שורת הקוד הזאת תאפשר לכתוב print כפונקציה.

BI מאת: אלעד פלג, יועץ

http://eladpeleg.co.il

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
אלעד פלג
בואו נעבוד ביחד
צרו קשר