حالت آفلاین — محتوا از حافظهٔ کش نمایش داده می‌شود
آموزش دیباگ و تست‌نویسی در پایتون؛ رفع خطا با تمرین

آموزش TypeError در پایتون؛ قرارداد نوع ورودی

استثناهای رایج پایتون و مدیریت دقیق خطا · 0٪

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

مثال یک مقدار متنی شمارش رو قبل از جمع به عدد تبدیل می‌کنه. تبدیل خودکار همه‌چیز همیشه تصمیم درستی نیست؛ اگر تابع فقط عدد می‌پذیره، شاید لازم باشه فراخواننده اصلاح بشه. خطای رایج تبدیل همه مقدارها به str برای ساکت‌کردن خطاست. اون کار ممکنه به‌جای جمع عددی، چسباندن متن تولید کنه و یک خطای روشن رو به جواب غلط تبدیل کنه. در این نمونه قرارداد صریحاً رشته عددی معتبره، پس int معنی داره. قبل از اصلاح هر TypeError، مقدار واقعی و نوعش رو با انتظار تابع کنار هم بذار.

✍️ مثال حل‌شده:

def add_bonus(count_text):
    count = int(count_text)
    return count + 2

assert add_bonus("6") == 8

حالا نوبت توئه: تابع add_bonus رشته عدد صحیح معتبر می‌گیرد و دو واحد اضافه می‌کند؛ "6" باید 8 و "0" باید 2 بدهد. این گام آموزشی است؛ توضیح بده چرا count_text + 2 TypeError می‌دهد ولی int(count_text) + 2 مطابق قرارداد است. رشته نامعتبر جزو ورودی این نمونه نیست.

فعالیت شما

تابع add_bonus رشته عدد صحیح معتبر می‌گیرد و دو واحد اضافه می‌کند؛ "6" باید 8 و "0" باید 2 بدهد. این گام آموزشی است؛ توضیح بده چرا count_text + 2 TypeError می‌دهد ولی int(count_text) + 2 مطابق قرارداد است. رشته نامعتبر جزو ورودی این نمونه نیست.

مطالعهٔ این گام برای همه آزاد است

برای پاسخ‌دادن، بررسی پاسخ، ثبت پیشرفت و استفاده از دستیار باید شرایط شرکت در فعالیت‌ها را داشته باشید.

برای انجام فعالیت وارد شوید

فعالیت‌های این بخش به اشتراک فعال نیاز دارند. تهیهٔ اشتراک

برای انجام فعالیت‌ها ابتدا این دوره‌های پیش‌نیاز را تکمیل کنید:

کد اولیهٔ فعالیت

def add_bonus(count_text):
    return int(count_text) + 2