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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

خبرنامه رایگان

ایمیلت رو ثبت کن تا از مقالات جدید، تخفیف دوره ها، محصولات جدید و... زودتر از بقیه باخبر بشی!

امیرحسین نائی
برنامه نویس؛ علاقمند به بیزینس
  • موسس آکادمی برنامه نویسی امیرحسین نائی
  • موسس وبسایت «کدبزن»
  • نویسنده کتاب «برنامه نویسی رو از اینجا شروع کن!»
  • 9 سال سابقه برنامه نویسی و راه اندازی کسب و کار با برنامه نویسی
  • تولید بیش از 100 ساعت دوره آموزشی رایگان

سایر مطالب

تخفیف فقط برای شما

قابل استفاده روی تمام محصولات آموزشی

کد: