הזחה היא תכונה חיונית של קוד קריא וניתן לתחזוקה, אך מעט שפות אוכפות אותו. Python הוא אחד מאותם מעטים.
אם Python קובעת שהקוד שלך הוכנס בצורה שגויה, תראה את ההודעה "IndentationError" כשאתה מפעיל את הקוד שלך. אבל איך מתקנים את זה ואיך מונעים את זה בעתיד?
מדוע אתה מקבל את השגיאה Indentation ב- Python?
השגיאה "IndentationError: צפוי לחסום הזחה" היא משהו שאתה צפוי לראות כשאתה מתחיל להשתמש ב-Python, במיוחד אם הגעת משפת תכנות אחרת.
ה הפרטים של כללי ההזחה של פייתון הם מורכבים, אבל הם מסתכמים בדבר אחד: קוד הזחה בבלוקים. זה נוגע לפונקציות, פסקאות אם וכן הלאה. הנה דוגמה לקוד Python בפורמט שגוי:
fname = "Gaurav"
lname = "סיאל"
אם fname == "Gaurav" ו-lname == "Syal":
print("אתה גאורב")
אַחֵר:
print("אתה מישהו אחר")
כשתנסה להפעיל את הקוד לעיל, תקבל הודעה כזו:
קובץ "tmp.py", שורה 5
print("אתה גאורב")
^
IndentationError: צפי לחסום מוזח
במקום זאת, עליך להוסיף טאב או סדרה של רווחים בתחילת שתי השורות המייצגות בלוקים:
fname = "Gaurav"
lname = "סיאל"
אם fname == "Gaurav" ו-lname == "Syal":
print("אתה גאורב")
אַחֵר:
print("אתה מישהו אחר")
אם אתה מכניס רווחים, אתה יכול למעשה להשתמש בכל מספר שתרצה, כל עוד אתה עקבי וחד משמעי. רוב המתכנתים משתמשים בשניים, ארבעה או שמונה רווחים.
מקרים נפוצים של הזחה נכונה
הנה כמה דוגמאות שתוכלו להתייחס אליהן, כדי שתוכלו לוודא שאתם מבצעים הזחה נכונה.
אם הצהרות
הכנס את הבלוק שאחריו א אם הַצהָרָה:
if my_name == "Gaurav":
print ("קוראים לי גורב")
חזרה True
פונקציות
גוף הפונקציה הוא בלוק. אתה צריך להכניס את כל הבלוק הזה:
def magic_number():
תוצאה = 42
להחזיר תוצאה
print magic_number()
עבור לולאות
כמו במשפט if, יש להכניס את הגוף של לולאת for לרמה אחת יותר מהשורה שמתחילה ב- ל מילת מפתח:
עבור i בטווח (10):
הדפס (i)
ודא שהעורך שלך נכנס נכון
רוב עורכי הטקסט המודרניים תומכים בהכנסת קוד אוטומטית. אם העורך שלך יקבע שיש להזין שורת קוד, הוא יוסיף טאבים או רווחים באופן אוטומטי.
ב ספיידר, אפשרויות הזחה זמינות תחת כלים > העדפות > קוד מקור:
אם אתה משתמש ב-vim, אתה יכול לערוך את התצורה שלך ולהשתמש ב כניסה אוטומטית ואפשרויות קשורות להגדרת הזחה. לדוגמה, הנה הגדרה נפוצה:
הגדר כניסה אוטומטית
הגדר הרחבה
הגדר tabstop=4
הגדר softtabstop=4
הגדר רוחב shift=4
זה יכנס אוטומטית באמצעות ארבעה רווחים.
עם זאת, אף עורך לא יכול לעשות הזחה אוטומטית חסינת כדורים. עדיין תצטרך לשים לב להזחה מכיוון שחלק מהמקרים אינם חד משמעיים:
בדוגמה זו, הגמר לַחֲזוֹר ההצהרה מוכנסת לרמה אחת מתוך חתימת הפונקציה בשורה הראשונה. עם זאת, אם תמקם את הסמן בסוף השורה הלפני אחרונה ותלחץ להיכנס, אחד משני דברים עלול לקרות. העורך שלך יכול למקם את הסמן:
- שתי רמות הזחה פנימה, מיושרות עם "res =..."
- רמת כניסה אחת פנימה, מיושר עם ה-"else:"
העורך שלך לא יכול להבחין בין שני המקרים האלה: ייתכן שתרצה להוסיף עוד קוד בבלוק if/else, או שלא.
טיפול בשגיאת 'צפי לחסום מוכנס' של Python
שגיאות הן אירוע יומיומי ב-Python, בדיוק כמו בכל שפת תכנות אחרת. הכללים הנוקשים של Python לגבי הזחה עשויים להוסיף סוג חדש של שגיאה למחשבה, אבל הם שימושיים. קוד שהוזחה כהלכה הוא קריא ועקבי יותר בין הצוותים.
שגיאת ההזחה היא לא היחידה שתצטרך להתמודד איתה. זה עוזר להכיר שגיאות נפוצות של Python כדי שתדע איך לנפות אותן ומה לעשות כדי לתקן אותן.
מה המשמעות של שגיאת ה-Python "רשימת אינדקס מחוץ לטווח"?
קרא הבא
נושאים קשורים
- תִכנוּת
- פִּיתוֹן
על הסופר
לגאורב סיאל ניסיון של שנתיים בכתיבה, כתיבה עבור שורה של חברות שיווק דיגיטלי ומסמכי מחזור חיים של תוכנה.
הירשם לניוזלטר שלנו
הצטרף לניוזלטר שלנו לקבלת טיפים טכניים, ביקורות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!
לחץ כאן כדי להירשם