פייתון/פייתון גרסה 3/ניפוי שגיאות
כאמור כל תוכנה המריצה את שפת פיתון מציעה שימוש בקונסול. הקונסול אומר למשתמש היכן הטעויות שמונעים הרצה של התכנית.
לעיתים אנו רושמים פקודות עם טעויות. כאשר יש טעות נקבל הודעת שגיאה בצבע אדום.
אם נקרא את ההודעה נוכל להבין מה הגורם לה. לדוגמה "typeErrow" היא שגיאה הנובעת בשל פקודות המבוצעות על טיפוסים ("אוביקטים") עליהם לא ניתן לבצע את הפקודה. למשל בהמשך נלמד כי לא ניתן לבצע את פעולת החיסור על מחרוזת (רצף של אותיות)
גם ב-idle קיים קונסול. דוגמה:
>>> print(hello)
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
print(hello)
NameError: name 'hello' is not defined
ניסנו לבצע הרצה של הדפס עם תווים.
פיתון אינה מוכנה להריץ את התכונה ורושמת לנו איזה קובץ גורם בעיה להרצה: הקובץ ששמו pyshell#0
, בשורה ראשונה במופע "print(hello)"
גורם לתקלה והסיבה (תחת NameError) היא שהתווים אינם מוגדרים. מה זאת אומרת? בכדי להריץ תווים הם חייבים להיות מוגדרים כמחרוזת אחרת פיתון חושבת שהם רצף של קוד וכאשר היא אינה מזהה קוד בשם "hello" היא מציינת כי הוא אינו מוגדר.
דוגמה:
>>> print(1)
1
>>> print('a'+1)
Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
print('a'+1)
TypeError: must be str, not int
התכנית לא מאפשרת להדפיס גם a וגם אחד כי שניהם מסוג טיפוסים שונה על כן נבצע תיקון:
print('a'+'1')
a1
דוגמה נוספת:
>>> 2+2
4
>>> 2+t
Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
2+t
NameError: name 't' is not defined
דוגמה 3:
x=2
x/0
print(x)
Traceback (most recent call last):
File "<pyshell#12>", line 1, in <module>
x/0
ZeroDivisionError: division by zero
לא יאפשר להריץ כי חלוקה באפס.