פייתון לבית-ספר - אוסף הפקודות

גרסא 0.4.0

פייתון לבית-ספר - אוסף הפקודות

  • הרצת פקודות ותסריטי פייתון

    1. המפענח במצב אינטרקטיבי - מריצים את התוכנית 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
      

      אבל זה נעשה לא נוח לדברים ארוכים...

    2. תסריט (script) פייתון הוא קובץ עם רשימת פקודות (מקובל שהשם שלו יסתיים ב־ .py). במקום להקליד אותן בהזמנה, פשוט מריצים את התסריט ע"י הרצת python filename.py.

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

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

      • להפעלת המפענח הסטנדרטי במערכת:

        #!/usr/bin/python
        
      • להפעלת גירסה מסויימת של המפענח:

        #!/usr/bin/python2.4
        
      • להפעלה באמצעות המפענח בהתאם לסביבת המשתמש:

        #!/usr/bin/env python
        

        (האפשרות הזאת היא הדרך המומלצת לכתוב תוכנית שתוכלו לתת לאנשים אחרים.)

      כדי שניתן יהיה להריץ את התסריט, צריך להפוץ את הקובץ לבר־הרצה ע"י הפקודה:

      chmod +x filename.py
      

      ואז אפשר ישירות להריץ ./filename.py

  • פקודות לינוקס בסיסיות לעבודה עם קבצים

    1. כניסה ללינוקס: במסך הכניסה יש לספק שם משתמש וסיסמה שהוגדרו על-ידי מנהלי המערכת.
    2. לכל משתמש יש ספרית בית.
    3. מעבר לספריית הבית (home directory): ניתן לרשום את הפקודה: cd (ללא פרמטרים), או את הפקודה: cd ~
    4. צפייה ברשימת הקבצים בספריה הנוכחית: ls
    5. צפייה ברשימת הקבצים בספריה הנוכחית בפורמט רחב: ls -l
    6. צפייה ברשימת הקבצים בספריה מסויימת: ls /path/to/dir
    7. יצירת ספריה חדשה: mkdir dir_name
    8. מחיקת ספריה (ריקה): rmdir dir_name
    9. מעבר לספריה נתונה: cd dir_name
    10. מעבר מחיצה אחת למעלה: cd ..
    11. הפעלת עורך הקבצים jed על קובץ קיים או חדש: jed file_name
    12. הפעלת סייר הקבצים midnight commander מהספריה הנוכחית: mc
  • פייתון, משתנים ולולאות "כל־עוד"

    1. שיעורון א' - פייתון עם חשבון פשוט

      1. ביטויים חשבוניים (כפל מסומן *, חילוק מסומן /):

        >>> 2 + 3 * 4
        14
        >>> (2 + 3) * 4
        20
        

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

      2. הדפסת ערך:

        >>> print 2 + 3 * 4
        14
        

        זה עובד גם בתסריט.

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

        >>> i = 7
        >>> print "i is", i
        i is 7
        

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

      4. הצבת ערך למשתנה ושימוש בו:

        >>> a = 8
        >>> a
        8
        >>> b = a + 7
        >>> b
        15
        
      5. משתנה כשמו כן הוא — אפשר לשנות אותו:

        >>> a = 8
        >>> a + 7
        15
        >>> a = 3
        >>> a + 7
        10
        
      6. הגדלת ערך של משתנה באחד:

        >>> a = 3
        >>> a = a + 1
        >>> a
        4
        
      7. בדיקת תנאים (שויון מסומן ==, אי־שויוון מסומן !=, קטן־או־שווה מסומן <=):

        >>> 2 + 2 == 4
        True
        >>> 3 >= 8
        False
        >>> i = 7
        >>> 2 < i < 20
        True
        

        שימו לב להבדל בין == שבודק שויון לבין סימן = בודד שמציב ערך במשתנה!

    2. שיעורון ב' - לולאות "כל-עוד"

      1. כתיבת לולאת "כל-עוד":

        >>> 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
        
      2. שימו לב לסימן הנקודותיים (":") בסוף שורת ה-while - הוא מאוד חשוב.

      3. יישור שורות ליצירת גוף הלולאה: כל השורות שבתוך הלולאה צריכות להיות מיושרות באותה דרגת עומק. מקובל להשמתש ב־4 רווחים.

  • תנאים ומחרוזות

    1. שיעורון ג' - יש לי תנאי

      1. פקודת התנאי "אם":

        >>> 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"
        ... 
        >>> 
        
      2. פקודת התנאי "אם - אז - אחרת":

        >>> 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
        
      3. קריאה מהמקלדת:

        >>> a = raw_input("give me something: ")
        give me something: abc
        >>> a
        'abc'
        

        שימו לב למרכאות — קיבלנו מחרוזת תווים.

      4. תירגום קלט מספרי למספר:

        >>> a = raw_input("give me a number: ")
        give me a number: 13
        >>> a
        '13'
        >>> n = int(a)
        >>> n
        13
        
    2. שיעורון ד' - ממספרים למילים

      1. מחרוזות של אותיות:

        >>> "abcdefg"
        'abcdefg'
        >>> 'abcdefg'
        'abcdefg'
        

        לא משנה באיזה מרכאות משתמשים (כמובן צריך אותו סוג משני הצדדים).

      2. הדפסת מחרוזת:

        >>> print 'abc\nde\'f'
        abc
        de'f
        

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

      3. הצבת מחרוזת במשתנה:

        >>> text = "abcdefg"
        >>> text
        'abcdefg'
        

        לא מפתיע. כל דבר אפשר לשים במשתנה.

      4. שירשור מחרוזות:

        >>> "hello" + " " + "world"
        'hello world'
        
      5. שיכפול מחרוזת מספר פעמים:

        >>> "hello " * 3
        'hello hello hello '
        
  • פונקציות ומשתנים מקומיים

    1. שיעורון ה' + ו' - לפונקציה שלי שלוש קריאות...

      1. הגדרת פונקציה פשוטה והפעלה שלה:

        >>> 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
        
      2. הגדרת פונקציה המקבלת שני פרמטרים וקריאה לה:

        >>> 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
        
      3. הגדרת פונקציה המחזירה ערך:

        >>> def func_c(num1, num2):
        ... return num1 + num2
        >>> func_c(2, 2)
        4
        >>> sum = func_c(1, func_c(2, 3))
        >>> sum
        6
        
      4. הגדרת משתנה מקומי בפונקציה:

        >>> 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
        
      5. אפשר לבקש תיעוד על כל פונקציה כמעט בעזרת 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.
      

    להמשיך מכאן...


  • מפגש 9 - עבודה עם קבצים, ניסוי וטעיה (Exceptions)
    1. שיעורון ז' - עבודה עם קבצים
      1. קובץ פותחים - אובייקט מקבלים
      2. קובץ קוראים - מחרוזות מוחזרות
      3. קובץ סוגרים - לנקיון המשתנים
      4. כלי קטן - קצת על פרמטרים לתוכנית
      5. משחק שביעי - ספור לי את השורות - כיתבו תוכנית שמקבלת שם של קובץ כפרמטר, ומדפיסה את כמות השורות שיש בקובץ (שימו לב - מדפיסה מספר, לא את השורות עצמן!).
    2. שיעורון ח' - ניסוי וטעיה (Exeptions)
      1. מי בכלל טועה?
      2. איך מנסים ואיך תועים?
      3. הניסוי והטעיה בפעולה על קבצים
      4. משחק שמיני - סופרים קבצים - כיתבו תוכנית שמקבלת רשימת שמות קבצים בשורת הפקודה, ומדפיסה את רשימת השמות כשליד כל שם ירשם האם הקובץ קיים או לא.
  • מפגש 10 - תירגול - עבודה עם קבצים, ניסוי וטעיה
    1. לעשות...
  • מפגש 11 - עבודה עם מחרוזות, מערכים ורשימות
    1. שיעורון ט' - משחקי מחרוזות
      1. אורכים ומחרוזות
      2. פיצולים ומיזוגים
      3. משחק תשיעי - סופרים אותיות ומילים - כיתבו תוכנית המקבל שם של קובץ כפרמטר, ומדפיסה את כמות האותיות והמילים שבקובץ. טפלו בשגיאות כדוגמת הקובץ לא קיים, אין הרשאה לפתוח אותו וכו'.
    2. שיעורון י' - מערכים ורשימות
      1. בין משתנה פשוט למערך
      2. סריקת מערכים
      3. טווחים במערכים
      4. מחרוזות כמערכים
      5. משחק עשירי - חיפוש אות במילה - כיתבו תוכנית המקבלת מילה ואות כפרמטרים, ומודיעה אם האות קיימת במילה, ואם כן - כמה פעמים, ובאילו מקומות במילה (למשל, עבור הקלט 'mom' והאות 'm', התוכנית תדפיס 'yes', ואת המספרים '1' ו-'3').
  • מפגש 12 - תירגול - משחקי מחרוזות, מערכים ורשימות.
    1. לעשות...
  • מפגש 13 - האיש התלוי
    1. שיעורון י"א-1 - הכנה לאיש התלוי
      1. מספרים אקראיים
      2. קיצוצי קצוות מחרוזות והקטנת/הגדלת אותיות
      3. משחק אחד-עשר, חלק א' - בחירת מילה אקראית מקובץ - כיתבו תוכנית שבוחרת מילה אקראית מהקובץ '/usr/share/dict' ומדפיסה אותה על המסך.
    2. שיעורון י"א-2 - האיש התלוי
      1. אסקי-ארט
      2. תנאים מורכבים
      3. רעיון קטן - מבנה של משחק מחשב
      4. משחק אחד-עשר, חלק ב' - האיש התלוי - כיתבו תוכנית הבוחרת מילה אקראית מהמילון, ונותנת למשתמש לנחש אותה אות אחר אות. המחשב מצייר איש תלוי תוך כדי המשחק - עבור כל ניחוש שגוי של המשתמש, המחשב מצייר עוד חלק. אם המשתמש ניחש את כל המילה הוא ניצח. אם המחשב צייר את הציור השלם לפני כן - המשתמש הפסיד.
  • מפגש 14 - תירגול - האיש התלוי
    1. סיום כתיבת "האיש התלוי" בכיתה.
    2. מי שמסיים מהר - יכול לעבוד על שיפורים בתחום הארטיסטי, או אולי תמיכה ברמזים...
  • מפגש 15 - אומנות התנועה וקבלת החלטות
    1. שיעורון י"ב - אומנות התנועה
      1. "רצפי בריחה"
      2. תנאים מורכבים
      3. "מבנה המסך הטקסטואלי"
      4. כלי קטן - הולכים לישון
      5. משחק שניים-עשר - הכדור המקפץ - כיתבו תוכנית המציגה על המסך כדור המקפץ מעלה-מטה. אם יש זמן - שפרו אותה כך שקצב התנועה יהיה דומה למציאות.
    2. שיעורון י"ג - קבלת החלטות
      1. ניהול רגיל לעומת טיפול במקרי קצה
      2. רעיון קטן - מכונת המצבים הקטנה
      3. משחק שלושה-עשר - כדור הפינג-פונג המסתורי - כיתבו תוכנית המציגה על המסך כדור הנע באלכסון, בין ארבעה קירות. בכל פעם שהכדור פוגע בקיר, הוא משנה כיוון בציר אחד (למשל, אם הכדור זז למעלה-שמאלה, ופוגע בקיר העליון, הוא יתחיל לזוז למטה-שמאלה. אם הכדור זז למעלה-שמאלה ופוגע בקיר השמאלי, הוא יתחיל לזוז למעלה-ימינה).
  • מפגש 16 - תירגול - אומנות התנועה וקבלת החלטות
    1. סיום משחק הפינג-פונג.
    2. מי שמסיים מהר - יוסיף שיפורים בתחום הארטיסטי, או אולי תמיכה במכשולים במגרש...
  • מפגש 17 - מחלקות ועצמים
    1. שיעורון י"ד - מחלקות (Classes) ועצמים (Objects)
      1. האובייקט העצמאי
      2. בין מחלקה לאובייקט
      3. הגדרת מחלקה
      4. יצירת אובייקט
      5. משחק ארבעה-עשר - קערת הסלט. כיתבו תוכנית המגדירה מחלקת ירקות (או מחלקת פירות, לפי _הטעם_ שלכם), ומגדירה תת מחלקות של ירקות (או פירות) האהובים עליכם. כל אובייקט מסוג ירק (או פרי) יודע להדפיס את השם שלו. הוסיפו מחלקת סלט, שאובייקטים שלה מכילים רשימה של ירקות (או פירות). לסלט יש פונקציה היודעת להוסיף לתוכו ירק (או פרי), פונקציה היודעת להדפיס את תוכנו, ופונקציה היודעת לערבב אותו. כיתבו תוכנית המכינה סלט פירות, מערבבת אותו, ומגישה אותו למסך.
  • מפגש 18 - תירגול - מחלקות ועצמים.
    1. לעשות...
  • מפגש 19 - קלט מיידי וקלט בזמן-אמת
    1. שיעורון ט"ו - קלט מיידי
      1. כלי קטן - קבלת קלט מיידי
      2. משחק חמישה-עשר - הכדור הממושמע - קחו את תוכנית הכדור המקפץ שלכם, ושנו אותה כך שבסוף כל קפיצה, המשתמש יוכל לספק קלט שלפיו הכדור יועבר עמודה אחת שמאלה או ימינה לפני הקפיצה הבאה.
    2. שיעורון ט"ז - קלט בזמן-אמת
      1. כלי קטן - המתנה מוגבלת לקלט
      2. ספירת הזמן והקלט
      3. כלי קטן - זיהוי תווי קלט
      4. משחק שישה-עשר - תפוס ת'כדור - קחו את התוכנית הקודמת, ושפרו אותה כך שתוכל לקבל קלט תוך כדי שהכדור קופץ, ולהזיז את הכדור מעמודה אחת לשניה תוך כדי קפיצה.
  • מפגש 20 - תירגול - קלט מיידי וקלט בזמן אמת.
    1. לעשות...
  • מפגש 21 - משחקי זמן-אמת.
    1. שיעורון י"ז - משחקי זמן-אמת (שיעורון ארוך)
      1. איך לגשת לתיכנון משחק
      2. ניהול מקבילי של מספר עצמים
      3. מפגשים והתנגשויות
      4. תצוגה חלקה בעזרת "חציצה כפולה"
      5. משחק שבעה-עשר - תופסת - כיתבו תוכנית המאפשרת לשני שחקנים לשחק תופסת: כל שחקן מיוצג על ידי אות שונה, ובאמצעות המקלדת יכול להזיז את האות שלו על המסך לכיוון כלשהו. אם שחקן אחד תופס את השחקן השני, הוא מקבל נקודה, והתפקידים (רודף ונרדף) מוחלפים. אם הנרדף ברח מהרודף במשך חצי דקה - הנרדף מקבל נקודה. הראשון שמגיע לעשר נקודות - מנצח! שימו לב - כדי לשכלל את המשחק אפשר להחליט שהרודף נע מהר פי שניים מהנרדף - חישבו איך לממש זאת...
  • מפגש 22 - תירגול - משחקי זמן-אמת.
    1. לסיים את משחק התופסת.
    2. מי שמסיים מהר - יוסיף שיפורים בתחום הארטיסטי, או אולי יוסיף מכשולים, או אולי יוסיף את הפרשי המהירויות בין הרודף לנרדף.
  • מפגש 23 - הכנה לפרוייקט
    1. כיצד בוחרים פרוייקט.
    2. כיצד מתכננים פרוייקט. למה כדאי לתכנן?
    3. לכתוב הכל בעצמנו, או להעזר במודולים קיימים?
    4. בוחרים רעיון
    5. תיכנון מחלקות
    6. בניה בהדרגה - מלמעלה למטה או מלמטה למעלה?
    7. בדיקות
    8. ניפוי שגיאות
    9. בחירת רעיונות במשותף.
    10. תחילת תכנון.
  • מפגש 24 - תירגול - הכנה לפרוייקט.
    1. לוודא שלכולם יש רעיון לפרוייקט. למי שאין - להציע רעיונות.
    2. יאללה, לעבודה!
  • מפגש 25 ומעלה - תירגול - עבודה על הפרוייקט.
    1. ליווי בשלב התכנון, הכתיבה, הבדיקה.
  • מפגש סוף שנה - הצגת פרוייקטים ומסיבת סיום.
    1. להביא שתיה, עוגות ומצב-רוח-טוב!

View document source. Generated on: 2005年11月06日 02:47. Generated by Docutils from reStructuredText source.

AltStyle によって変換されたページ (->オリジナル) /