خطای KeyError در پایتون

توسط: vahit

در پایتون و هنگام کار با نوع داده‌ی دیکشنری (dictionary) اگر کلیدی که مقدار اون رو در‌خواست دادیم وجود نداشته باشه خطای KeyError دریافت می‌کنیم:

Post Qr Code

طبیعی هست که این خطا باعث می‌شه که اجرای برنامه با مشکل مواجه بشه. حالا سؤالی که پیش میاد این هست که: I) برای جلوگیری از این مشکل چی کار کنیم؟
اگه روال برنامه به نوعی باشه که لازم داشته باشیم مقدار کلید‌هایی که توی دیکشنری پیش‌بینی نشدن رو یه مقدار پیش‌فرض برگردونه II) باید چی کار بکنیم؟

جواب سؤالات بالا رو می‌تونیم با متد try…except بدیم. به این صورت که دستور print یا هر دستوری که به مقدار یه کلید توی دیکشنری می‌خواد دست پیدا کنه رو توی قسمت try می‌نویسیم و در قسمت except وقوع خطا رو بررسی می‌کنیم و اگه خطایی رخ داد (I) برای حل سؤال اوّل یه پیغام برمی‌گردونیم و کاربر رو مطلع می‌کنیم و متناسب با اون کنترل رو به قسمت صحیح برنامه منتقل می‌کنیم یا (II) برای حل سؤال دوّم یه مقدار پیش‌فرض برمی‌گردونیم و بدون اینکه کاربر بدونه برنامه به کارش ادامه می‌ده :)

امّا آیا این تنها راهیه که داریم، طبیعی هست که جواب نه باشه. نوع داده دیکشنری یه صفت به اسم get داره که کارش همینه:

یعنی هر دو سؤال بالا رو توی یه خط هم می‌شه جواب داد:

نکته: به syntax این صفت و تفاوتش با syntax دیکشنری خالی توجه کنید!

«منبع»