حين يخطئ الإدخال: ValueError
تلتقي البرامج بالمستخدمين، والمستخدمون يكتبون أشياء مفاجئة. انظر إلى البرنامج الذي يقرأ كم كتابًا عندك ثم يضيف 1. إذا كتب المستخدم 7 فالبرنامج يعمل. وإذا كتب كلمة seven فلا تستطيع int() صنع عدد صحيح منها وتتوقف بايثون بخطأ ValueError. ولا يُنفَّذ أي شيء بعد ذلك السطر. ويعرض الجدول حالات أخرى. النص الفارغ يفشل. والعدد العشري مثل 5.5 يفشل أيضًا لأن int() تقبل فقط عددًا صحيحًا مكتوبًا بالأرقام ولا تقطع الجزء العشري. وهدف الدروس التالية برنامج لا ينهار عند المدخل الخاطئ بل يساعد المستخدم على المحاولة من جديد. وتذكّر الأسبوع الأول: هذه هي المشكلة التي قابلناها مع كلمة خمسة.
| ما يكتبه المستخدم | ما تفعله int() |
|---|---|
| "7" | 7 |
| "seven" | ValueError |
| "" (لا شيء) | ValueError |
| "5.5" | ValueError |
1books = int(input("How many books? ")) 2print("Next year:", books + 1)
How many books? 7 Next year: 8
1books = int(input("How many books? ")) 2print("Next year:", books + 1)
How many books? seven ValueError: the text is not a whole number
برنامج يقرأ كم قلمًا عندك. اصنع جدولًا من أربعة أشياء قد يكتبها المستخدم: اثنان ينجحان واثنان يفشلان. وفي كل واحد يفشل قل لماذا لا تستطيع int() تحويله. استخدم مدخلات مخترعة فقط.