رفع خطای ZeroDivisionError در پایتون

5 دقیقه
naei.ir/blog/video/vso5zi4

یکی از رایج‌ترین خطاهایی که در پایتون (و حتی زبان‌های دیگر برنامه‌نویسی) با آن روبه‌رو می‌شوید، خطای ZeroDivisionError است. این خطا زمانی رخ می‌دهد که شما بخواهید عددی را بر صفر تقسیم کنید. طبق قوانین ریاضی، تقسیم بر صفر تعریف نشده است، بنابراین پایتون هم نمی‌داند چطور باید چنین عملیاتی را انجام دهد.

چرا تقسیم بر صفر در ریاضی غیرممکن است؟

جواب کوتاه این است که چون نتیجه آن مشخص نیست. مثلاً اگر بگوییم ۱۰ تقسیم بر صفر، نمی‌توانیم بگوییم خروجی چه عددی است چون هیچ عددی وجود ندارد که اگر در صفر ضرب شود، عدد ۱۰ بدهد. پس این یک قانون ریاضی است، نه نظر شخصی برنامه‌نویس یا زبان برنامه‌نویسی.

مثال‌های رایج از ZeroDivisionError

در ساده‌ترین حالت وقتی می‌خواهید عددی را مستقیماً تقسیم بر صفر کنید، با این ارور روبه‌رو می‌شوید.

اما این خطا همیشه به این وضوح نیست. مثلاً اگر از درصد (%) برای محاسبه باقیمانده تقسیم استفاده کنید ولی مخرج صفر باشد، باز هم همین خطا را دریافت خواهید کرد.

خطای تقسیم بر صفر زمانی که ورودی از کاربر دریافت می‌کنید

گاهی شما ورودی را از کاربر می‌گیرید و انتظار دارید کاربر عدد مناسبی وارد کند. ولی اگر کاربر مقدار صفر وارد کند، برنامه‌تان دچار خطا می‌شود. اینجاست که برنامه باید پیش‌بینی و مدیریت خطا داشته باشد.

چگونه ZeroDivisionError را مدیریت کنیم؟

1. استفاده از Try-Except

با استفاده از بلوک try-except می‌توانید از بروز خطا جلوگیری کرده و به‌جای کرش شدن برنامه، یک پیغام مناسب به کاربر نمایش دهید.

2. بررسی دستی مقدار قبل از تقسیم

راه بهتر و حرفه‌ای‌تر این است که قبل از تقسیم، بررسی کنید که عدد مخرج صفر نباشد. اگر صفر بود، به کاربر اعلام کنید که مقدار وارد شده معتبر نیست.

امیرحسین نائی
برنامه‌نویس، علاقه‌مند به بیزینس
  • موسس آکادمی برنامه‌نویسی نائی
  • بنیان‌گذار کدبزن، روتین آپ، EveryAPI، دستیار بیزینس و...
  • نویسنده‌ی کتاب پرفروش «برنامه‌نویسی رو از اینجا شروع کن!»
  • بیش از 10 سال تجربه در برنامه‌نویسی و راه‌اندازی کسب‌وکار
  • تولیدکننده‌ی ۱۰۰+ ساعت ویدیوی آموزشی رایگان

سایر مطالب

کدوم حوزه برنامه نویسی بهتره؟
مقاله آموزشی

کدوم حوزه برنامه نویسی بهتره؟

اگه تازه میخوای برنامه نویسی رو شروع کنی حتما برات سوال شده که کدوم حوزه برنامه نویسی بهتره؟ برنامه نویسی وب رو یاد بگیرم یا اندروید؟ هوش مصنوعی بهتره یا برنامه نویسی ios یا.... توی این مطلب درباره حوزه های مختلف برنامه نویسی صحبت میکنم و در نهایت بهترین حوزه ها رو بهت معرفی میکنم.همونطور که میدونی دنیای برنامه نویسی خیلی بزرگه و حوزه های مختلفی برای برنامه نویسی وجود دارند. برنامه نویسی وب، اندروید، ios و ویندوز و... از این حوزه ها هستند اما قطعا تمام این حوزه ها برای فعالیت مناسب نیستند و ب...

ادامه مطلب
مسیر یادگیری برنامه نویسی وب از صفر تا صد (فرانت اند و بک اند)
مقاله ویدیویی

مسیر یادگیری برنامه نویسی وب از صفر تا صد (فرانت اند و بک اند)

برنامه نویسی وب شغلیه که در چندسال اخیر یکی از پردرآمدترین شغل های ایران و جهان بوده؛ بنابراین در دنیای امروز یادگیری این مهارت میتونه بسیار مفید و پولساز باشه. در ادامه درباره برنامه نویسی و طراحی وب و چگونگی تبدیل شدن به یک متخصص در این حوزه توضیح صحبت میکنیمبرنامه نویس وب یا طراح وب یعنی چی؟به افرادی که میتونند وبسایت های مختلف رو بسازند برنامه نویس وب میگن، با یادگیری این مهارت میتونید در این زمینه مشغول به کار بشید و وبسایت های مختلف رو بسازید  برنامه نویسی بک اند backend یا فرانت اند Fr...

ادامه مطلب