Menu

תחביר Python: הזחה, שורות, נקודתיים והכללים שחשובים

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

בדף הזה יש עורכים שאפשר להריץ - לערוך, להריץ ולראות את הפלט מיד.

ספר החוקים הקטן ביותר האפשרי

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

  • פקודה אחת בכל שורה.
  • ההזחה מגדירה את המבנה: אין סוגריים מסולסלים ואין מילות end.
  • אותיות גדולות וקטנות משנות. name ו-Name שונים.
  • : פותחות בלוק, והשורות הבאות שמוזחות תחתיו הן גוף הבלוק.
  • # מתחיל הערה.

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

פקודה אחת בכל שורה

פקודה (statement) היא הוראה שלמה: "הדפס את זה", "חבר את אלה", "השם את זה". ב-Python כל פקודה נכתבת בשורה משלה:

שלוש פקודות, שלוש שורות. לא צריך נקודה-פסיק בסוף, ורוב קוד ה-Python לא משתמש בהן. (אפשר לשים שתי פקודות בשורה אחת עם נקודה-פסיק, אבל זה נחשב סגנון גרוע. אל תעשו את זה.)

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

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

ההזחה היא חלק מהמבנה

הנה החלק שמכשיל מתחילים. ב-Python, הרווח ב_תחילת_ שורה הוא בעל משמעות. הוא אומר ל-Python אילו שורות שייכות יחד.

הסתכלו על if פשוט:

שתי השורות שאחרי if hour < 12: מוזחות בארבעה רווחים. Python קוראת את ההזחה הזו כ"שתי השורות האלה הן גוף ה-if". ה-print האחרון חזר לתחילת השורה בלי הזחה, ולכן Python רואה אותו כמחוץ ל-if.

אם תסירו את ההזחה, ה-if נשבר. אם תזיחו ברווח אחד מיותר, ה-if נשבר. Python קפדנית כאן כי ההזחה היא המבנה: אין { או end שיגבו אותה.

כמה כללים שנובעים מזה:

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

הנקודתיים פותחות בלוק

כל מבנה שיוצר בלוק מקונן, if, else, for, while, def, class, with, try, מסיים את שורת הכותרת שלו בנקודתיים. השורות הבאות, המוזחות, יוצרות את גוף הבלוק:

שני דברים לשים לב אליהם: הנקודתיים בסוף הכותרת, וההזחה של ארבעה רווחים בשורות הגוף. אם תשכחו את הנקודתיים, Python תגיד לכם משהו כמו SyntaxError: expected ':'. השגיאה הזו חד-משמעית: תקנו את סימן הפיסוק החסר והכול בסדר.

רגישות לאותיות גדולות וקטנות

Python מתייחסת ל-Name, name ו-NAME כשלושה דברים נפרדים לגמרי. זה חל על:

  • המשתנים והפונקציות שלכם.
  • שמות מובנים כמו print, len, True, False, None.
  • שמות של מודולים ו-attributes.

זה בדרך כלל נושך רק כשכותבים משהו בטעות באות גדולה. True הוא ערך האמת הבוליאני, ו-true הוא משתנה לא מוגדר שזורק NameError. Print(...) הוא לא הפונקציה print, אלא שגיאת הקלדה.

אם שגיאה אומרת "name 'X' is not defined" ואתם נשבעים שהגדרתם אותו, בדקו קודם את האותיות הגדולות. תשע פעמים מתוך עשר זו הבעיה.

הערות עם #

כל מה שאחרי # בשורה הוא הערה, ו-Python מתעלמת ממנו לגמרי. הערות נועדו לרשימות לקוראים עתידיים (כולל אתם בעתיד):

ל-Python אין תחביר להערה של כמה שורות. אם צריך כמה שורות, השתמשו בכמה שורות #. (לפעמים תראו מחרוזות במירכאות משולשות שמשמשות כמעין הערות: זה דבר נפרד שנקרא docstring, ונסביר אותו כשנדבר על פונקציות.)

מילים שמורות

כמה מילים אסורות כשמות משתנים כי Python משתמשת בהן בעצמה: if, else, for, while, def, class, return, import, from, as, pass, break, continue, True, False, None, and, or, not, in, is, lambda, try, except, finally, raise, with, yield, global, nonlocal, async, await. לא צריך לשנן את הרשימה. אם תנסו להשתמש באחת מהן, Python תתלונן מיד.

אתם יודעים מספיק כדי לקרוא כל קובץ Python

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

הבא בתור: הערות, קצת יותר לעומק, וגם docstrings, הדרך שבה Python מטפלת בתיעוד של פונקציות ומודולים.

שאלות נפוצות

למה ל-Python אכפת מהזחה?

Python משתמשת בהזחה כדי להבין אילו שורות שייכות יחד. במקום שבו שפות אחרות עוטפות קבוצות קוד בסוגריים מסולסלים { }, Python משתמשת ברווח עקבי בתחילת השורה. יש פחות רעש חזותי, אבל אי אפשר להתרשל ברווחים.

בכמה רווחים צריך להזיח ב-Python?

ארבעה רווחים לכל רמה הם הסטנדרט בקהילה (PEP 8). רוב העורכים מכניסים ארבעה רווחים כשלוחצים Tab בקובץ Python. המספר המדויק חשוב פחות מהעקביות: ערבוב הזחות של שני רווחים וארבעה רווחים באותו בלוק הוא שגיאה נפוצה.

האם Python רגישה לאותיות גדולות וקטנות?

כן. Name, name ו-NAME הם שלושה משתנים שונים. שמות מובנים כמו print ו-True חייבים להיכתב בדיוק כפי שהם מוצגים: True עובד, ו-true זורק שגיאה.

איור של שפות התכנות ב-Coddy

ללמוד תכנות עם Coddy

להתחיל