גרסא 0.4.0
הרצת פקודות ותסריטי פייתון
המפענח במצב אינטרקטיבי - מריצים את התוכנית python (אפשר גם להריץ גרסה מסויימת, למשל python2.4) ומקבלים הזמנה בה אפשר להקליד פקודות פייתון:
Python 2.3.5 (#2, Aug 30 2005, 15:50:26) [GCC 4.0.2 20050821 (prerelease) (Debian 4.0.1-6)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>
למשל:
>>> print 2 + 2 4
אפשר להקליד גם פקודות מורכבות:
>>> if 10 > 5: ... print "10 is a big number" 10 is a big number
אבל זה נעשה לא נוח לדברים ארוכים...
תסריט (script) פייתון הוא קובץ עם רשימת פקודות (מקובל שהשם שלו יסתיים ב־ .py). במקום להקליד אותן בהזמנה, פשוט מריצים את התסריט ע"י הרצת python filename.py.
התסריט יכול להכיל פקודות מיידיות לביצוע, פקודות להגדרת פונקציות או מחלקות, וכיוצא בזה. התסריט מסתיים כבוצעה הפקודה האחרונה בו, אם ארעה שגיאה שלא טופלה, או אם הופעלה פקודה ספציפית להפסקת התסריט (כגון sys.exit(1)).
(במערכת לינוקס או יוניקס) אפשר להפוך את התסריט לתוכנית שאפשר להריץ ישירות אם מוסיפים שורה ראשונה האומרת למערכת ההפעלה איזו מפענח להפעיל על-מנת לבצע את התסריט. מספר אפשרויות:
להפעלת המפענח הסטנדרטי במערכת:
#!/usr/bin/python
להפעלת גירסה מסויימת של המפענח:
#!/usr/bin/python2.4
להפעלה באמצעות המפענח בהתאם לסביבת המשתמש:
#!/usr/bin/env python
(האפשרות הזאת היא הדרך המומלצת לכתוב תוכנית שתוכלו לתת לאנשים אחרים.)
כדי שניתן יהיה להריץ את התסריט, צריך להפוץ את הקובץ לבר־הרצה ע"י הפקודה:
chmod +x filename.py
ואז אפשר ישירות להריץ ./filename.py
פקודות לינוקס בסיסיות לעבודה עם קבצים
פייתון, משתנים ולולאות "כל־עוד"
שיעורון א' - פייתון עם חשבון פשוט
ביטויים חשבוניים (כפל מסומן *, חילוק מסומן /):
>>> 2 + 3 * 4 14 >>> (2 + 3) * 4 20
במצב האינטרקטיבי המפענח מדפיס את התוצאה של כל ביטוי שמוקלד הבזמנה. ניתן הרבה דוגמאות של תוצאות ביטויים בצורה הזאת. אבל זה התנהגות מיוחדת למצב האינטרקטיבי — אם נרשום פשוט 2 + 3 * 4 בתסריט פייתון, הוא יחשב את התוצאה ולא יעשה איתה כלום.
הדפסת ערך:
>>> print 2 + 3 * 4 14
זה עובד גם בתסריט.
הדפסת טקסט ומשתנים על המסך, באופן מעורב:
>>> i = 7 >>> print "i is", i i is 7
שימו לב שפייתון מכניס רוח במקום של הפסיק.
הצבת ערך למשתנה ושימוש בו:
>>> a = 8 >>> a 8 >>> b = a + 7 >>> b 15
משתנה כשמו כן הוא — אפשר לשנות אותו:
>>> a = 8 >>> a + 7 15 >>> a = 3 >>> a + 7 10
הגדלת ערך של משתנה באחד:
>>> a = 3 >>> a = a + 1 >>> a 4
בדיקת תנאים (שויון מסומן ==, אי־שויוון מסומן !=, קטן־או־שווה מסומן <=):
>>> 2 + 2 == 4 True >>> 3 >= 8 False >>> i = 7 >>> 2 < i < 20 True
שימו לב להבדל בין == שבודק שויון לבין סימן = בודד שמציב ערך במשתנה!
שיעורון ב' - לולאות "כל-עוד"
כתיבת לולאת "כל-עוד":
>>> i = 1 >>> while i < 8: ... print "i =", i ... i = i + 1 ... i = 1 i = 2 i = 3 i = 4 i = 5 i = 6 i = 7
שימו לב לסימן הנקודותיים (":") בסוף שורת ה-while - הוא מאוד חשוב.
יישור שורות ליצירת גוף הלולאה: כל השורות שבתוך הלולאה צריכות להיות מיושרות באותה דרגת עומק. מקובל להשמתש ב־4 רווחים.
תנאים ומחרוזות
שיעורון ג' - יש לי תנאי
פקודת התנאי "אם":
>>> i = 3 >>> if i < 10: ... print "i is smaller than 10" ... i is smaller than 10 >>> i = 30 >>> if i < 10: ... print "i is smaller than 10" ... >>>
פקודת התנאי "אם - אז - אחרת":
>>> i = 30 >>> if i < 10: ... print "i is smaller then 10" ... else: ... print "i is larger then 10, or equals 10" ... i is larger then 10, or equals 10
קריאה מהמקלדת:
>>> a = raw_input("give me something: ") give me something: abc >>> a 'abc'
שימו לב למרכאות — קיבלנו מחרוזת תווים.
תירגום קלט מספרי למספר:
>>> a = raw_input("give me a number: ") give me a number: 13 >>> a '13' >>> n = int(a) >>> n 13
שיעורון ד' - ממספרים למילים
מחרוזות של אותיות:
>>> "abcdefg" 'abcdefg' >>> 'abcdefg' 'abcdefg'
לא משנה באיזה מרכאות משתמשים (כמובן צריך אותו סוג משני הצדדים).
הדפסת מחרוזת:
>>> print 'abc\nde\'f' abc de'f
שימו לב להבדל בין היצוג של המחרוזת בפייתון, עם מרכאות, לבין המראה שלה על המסך. בפרט שימו לב לקו הנטוי ההפוך שנותן משמעות מיוחדת לתו שאחריו: השילוב \n מיצג מעבר שורה; קו נטוי הפוך לפני גרש מגן על הגרש כך שפייתון לו מתייחס אליו כסוף המחרוזת
הצבת מחרוזת במשתנה:
>>> text = "abcdefg" >>> text 'abcdefg'
לא מפתיע. כל דבר אפשר לשים במשתנה.
שירשור מחרוזות:
>>> "hello" + " " + "world" 'hello world'
שיכפול מחרוזת מספר פעמים:
>>> "hello " * 3 'hello hello hello '
פונקציות ומשתנים מקומיים
שיעורון ה' + ו' - לפונקציה שלי שלוש קריאות...
הגדרת פונקציה פשוטה והפעלה שלה:
>>> def func_a(): ... print "this is function a" ... print "it is good to be in function a" ... print "function a is done" ... >>> func_a() this is function a it is good to be in function a function a is done >>> func_a() this is function a it is good to be in function a function a is done
הגדרת פונקציה המקבלת שני פרמטרים וקריאה לה:
>>> def func_b(p1, p2): ... print "function b got parameters, p1 =", p1, ", p2 =", p2 ... >>> func_b(1, 2) function b got parameters, p1 = 1 , p2 = 2 >>> func_b("abc", "def") function b got parameters, p1 = abc , p2 = def
הגדרת פונקציה המחזירה ערך:
>>> def func_c(num1, num2): ... return num1 + num2 >>> func_c(2, 2) 4 >>> sum = func_c(1, func_c(2, 3)) >>> sum 6
הגדרת משתנה מקומי בפונקציה:
>>> def func_d(): ... i = 10 ... print "in func_d, i is:", i ... >>> i = 20 >>> print "in global scope, i is:", i in global scope, i is: 20 >>> func_d() in func_d, i is: 10
אפשר לבקש תיעוד על כל פונקציה כמעט בעזרת help(). למשל מריצים:
help(abs)
ומקבלים:
Help on built-in function abs: abs(...) abs(number) -> number Return the absolute value of the argument.
יש תיעוד כמעט לכל דבר. כדאי לכתוב תיעוד גם לפונקציות שלכם. עושים את זה ע"י מחרוזת בתחילת הפונקציה:
>>> def func(): ... """Prints some silly lines. ... Nothing interesting.""" ... print "abc" ... print "def" ...שימו לב שמרכאות המשולשות - זה מאפשר לכתוב מחרוזת של הרבה שורות (עם מרכאה בודדת, חייבים לסגור את המחרוזת על אותה שורה).
ואז אם מריצים:
help(func)מקבלים:
Help on function func: func() Prints some silly lines. Nothing interesting.
להמשיך מכאן...