آموزش سریع خطایابی در پایتون | تمرین‌های جامع

تمرین اول: خطایابی یک برنامه حسابگر ساده

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

مراحل انجام تمرین:

  1. کد داده شده را در ویرایشگر آنلاین خود کپی کنید. کد به صورت زیر است:
def calculator(a, b, operation):
    if operation == "add":
        return a + b
    elif operation == "subtract":
        return a - b
    elif operation == "multiply":
        return a * b
    elif operation == "divide"
        return a / b
    else:
        return "عملگر نامعتبر"

# بخش اصلی برنامه
num1 = input("عدد اول را وارد کنید: ")
num2 = input("عدد دوم را وارد کنید: ")
op = input("عملگر را وارد کنید (add, subtract, multiply, divide): ")

result = calculator(num1, num2, op)
print("نتیجه:", result)
  1. برنامه را اجرا کنید. سه خطای مختلف در این کد وجود دارد:

    • خطای نحوی: خط elif operation == "divide" فاقد دونقطه (:) در انتهاست.
    • خطای منطقی: تابع calculator مقادیر num1 و num2 را به عنوان رشته (string) دریافت می‌کند، در حالی که باید آن‌ها را به عدد (int یا float) تبدیل کند تا عملیات ریاضی انجام شود.
    • خطای زمان اجرا: اگر کاربر عدد صفر را به عنوان num2 و عملگر divide را انتخاب کند، برنامه با خطای ZeroDivisionError مواجه می‌شود.
  2. خطاها را یکی یکی پیدا و تصحیح کنید:

    • ابتدا خطای نحوی را با اضافه کردن دونقطه در انتهای خط elif operation == "divide" برطرف کنید.
    • سپس خطای منطقی را با تبدیل num1 و num2 به عدد (با دستور float() یا int()) در بخش اصلی برنامه حل کنید:
      num1 = float(input("عدد اول را وارد کنید: "))
      num2 = float(input("عدد دوم را وارد کنید: "))
    • در نهایت، خطای زمان اجرا را با استفاده از try/except یا بررسی شرطی درون تابع مدیریت کنید. مثلاً در تابع calculator یک شرط اضافه کنید:
      if operation == "divide" and b == 0:
       return "تقسیم بر صفر مجاز نیست"
      else:
       return a / b
  3. پس از تصحیح تمام خطاها، برنامه را دوباره اجرا کنید. مطمئن شوید که:

    • جمع، تفریق، ضرب و تقسیم اعداد به درستی کار می‌کنند.
    • زمانی که کاربر عملگر نامعتبر وارد می‌کند، پیغام «عملگر نامعتبر» نمایش داده شود.
    • زمانی که کاربر می‌خواهد عددی را بر صفر تقسیم کند، برنامه کرش نکند و پیغام مناسب نمایش دهد.

نکته: اگر در مرحله‌ای گیر کردید، از دستور print() برای نمایش مقادیر متغیرها در نقاط مختلف برنامه استفاده کنید تا متوجه شوید داده‌ها به چه شکلی در حال جابجایی هستند.

پرسش و پاسخ این درس

برای ثبت پرسش ابتدا در سایت وارد شوید.

  • 1
  • 2
  • 3