הרצת תוכנית פייתון

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

1. השפה וסביבת העבודה

פייתון הוא גם שם השפה וגם שם התוכנית שמריצה תוכניות פייתון. תוכנית פייתון היא פשוט טקסט הנשמר בקובץ עם סיומת .py. השפה עצמה מאוד קלה ללמידה ושמה דגש על פשטות וקריאות. 
לשפה שתי גרסאות מרכזיות: פייתון 2 ופייתון 3. בקורס זה אנו נלמד על פייתון 2 מאחר והיא נמצאת בשימוש נרחב בארץ. בין שתי הגרסאות יש תאימות חלקית בלבד, ולכן התוכניות שנכתוב בקורס לא יעבדו על פייתון בגירסא 3.

כדי להפעיל קוד פייתון יש להתקין תחילה את פייתון על המכונה עליה אנו רוצים לעבוד, בגירסא אותה אנו רוצים. אם לא מותקן לכם עדיין פייתון על המחשב זה זמן טוב לגלוש לאתר:
https://www.python.org/downloads/
להוריד ולהתקין את פייתון 2.7 למערכת ההפעלה שלכם.

ניתן לכתוב תוכניות פייתון בכל עורך טקסט. אם יש לכם עורך טקסט שאתם מרגישים בנוח אתו מוזמנים להשאר אתו, ואם לא מוזמנים להוריד את עורך הטקסט החינמי Visual Studio Code מהקישור:
https://code.visualstudio.com/

אפשרות נוספת להפעלת פייתון גם ללא התקנה קיימת באתר repl.it. האתר מאפשר הקלדת קוד פייתון, הרצתו וקבלת התוצאה בדפדפן. אנו לא נשתמש באתר בקורס זה אבל אולי יעזור לכם להכיר:
repl.it/languages/python

2. תוכנית פייתון ראשונה שלי

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

print "Hello. Please type in your name:"
name = raw_input()

print "Welcome " + name + ". Nice to meet you"

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

python hello.py

בתגובה התוכנית תדפיס את שורת הטקסט:

Hello. Please type in your name:

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

3. הפעלת התוכנית בסביבת Debug

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

 python -m pdb hello.py

בתגובה תראו על המסך את השורות הבאות:

> /Users/ynonperek/hello.py(1)<module>()
-> print "Hello. Please type in your name:"
(Pdb) 

זוהי סביבת איתור השגיאות של פייתון. השורה הראשונה מספרת לנו מהו הקובץ בו אנו נמצאים כרגע והשורה השניה מציגה את השורה הנוכחית בקובץ, היא השורה הראשונה. 
הקלידו את האות l ולאחריה Enter. האות l היא קיצור של הפקודה List המציגה את קוד התוכנית הרלוונטי. זהו הפלט אצלי על המסך:

(Pdb) l
  1  ->    print "Hello. Please type in your name:"
  2      name = raw_input()
  3      
  4      print "Welcome " + name + ". Nice to meet you"
  5      
[EOF]

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

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

(Pdb) n
Hello. Please type in your name:
> /Users/ynonperek/hello.py(2)<module>()
-> name = raw_input()
(Pdb) n
Ynon
> /Users/ynonperek/hello.py(4)<module>()
-> print "Welcome " + name + ". Nice to meet you"
(Pdb) 

אנו נמצאים כעת רגע לפני הפעלת פקודת ההדפסה. הקלידו את השורה:

p name

כדי לראות את תוכן המשתנה name, ותוכלו לראות על המסך את הפלט:

(Pdb) p name
'Ynon'
(Pdb) 

הבה נשנה את ערך המשתנה לפני שנמשיך לשורת ההדפסה. הקלידו את הפקודות:

(Pdb) name = "Jane"
(Pdb) n

ובתגובה תוכלו לקבל את הפלט:

Welcome Jane. Nice to meet you

הפעלת התוכנית במצב איתור שגיאות (בתוך Debugger) מאפשרת התקדמות בתוכנית שורה אחר שורה, ובכל נקודה אנו יכולים לראות את תוכן המשתנים ולשנות אותם, וגם להריץ כל קוד פייתון שנרצה שירוץ כאילו הוא כתוב בתוך קוד התוכנית.
אתם יכולים לקבל רשימה מלאה של פקודות להקלדה במצב איתור השגיאות באמצעות הקלדת האות h המייצגת את הפקודה Help:

(Pdb) h

Documented commands (type help <topic>):
========================================
EOF    bt         cont      enable  jump  pp       run      unt   
a      c          continue  exit    l     q        s        until 
alias  cl         d         h       list  quit     step     up    
args   clear      debug     help    n     r        tbreak   w     
b      commands   disable   ignore  next  restart  u        whatis
break  condition  down      j       p     return   unalias  where 

Miscellaneous help topics:
==========================
exec  pdb

Undocumented commands:
======================
retval  rv

כדי לקבל עזרה על פקודה מסוימת הקלידו h ולאחריו הפקודה, כך למשל נקבל את המידע המלא על הפקודה list:

(Pdb) h list
l(ist) [first [,last]]
List source code for the current file.
Without arguments, list 11 lines around the current line
or continue the previous listing.
With one argument, list 11 lines starting at that line.
With two arguments, list the given range;
if the second argument is less than the first, it is a count.
(Pdb) 

 

4. תיעוד

התיעוד של פייתון זמין בחינם ברשת. מידע מלא על השפה תמצאו בקישור:
https://docs.python.org/2/reference/index.html

ומידע על הפונקציות והספריות של השפה תמצאו בקישור:
https://docs.python.org/2/library/index.html

בנוסף אתם יכולים לקבל מידע על כל פונקציה או ספריה בפייתון ישירות משורת הפקודה באמצעות הפקודה pydoc. כך למשל נקבל מסך עזרה על הפונקציה raw_input בה השתמשנו בתוכנית:

pydoc raw_input


קישורים שימושיים

הורדת פייתון:
https://www.python.org/downloads/

הורדת עורך טקסט Visual Studio Code:
https://code.visualstudio.com/

חשיבות הרווחים ב Python

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

קוד לתוכנית פייתון ראשונה:

""" Welcome To Python

A python program is just a text file.
We run python from command line with:
python program.py

We can also run the program in a built-in python
debugger with:
python -mpdb program.py
"""

# python ignores this one

print "Tell me your name"
name = raw_input()

for count in range(10):
    print "Welcome", name

הפעלת התוכנית במצב Debug:

python -m pdb 01_intro.py

 

מכונה וירטואלית עם קוד התוכנית להרצה כאן בעמוד (פשוט כתבו python 01_intro.py להפעלה):