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

مدیریت None در پایتون؛ تفکیک مقدار غایب از رشته خالی

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

None نشانه نبودن یک مقدار است و خودش رشته نیست. فراخوانی روش‌های رشته مثل strip روی None خطا می‌ده. وقتی ورودی می‌تونه غایب باشه، بهتره قبل از عملیات مخصوص رشته، اون حالت رو صریح جدا کنیم. عبارت is None این تصمیم رو دقیق بیان می‌کنه و با رشته خالی یا صفر اشتباه نمی‌شه.

مثال یک توضیح اختیاری رو به متن پیش‌فرض تبدیل می‌کنه. توی تمرین نام نمایشی اختیاری داریم، ولی رشته خالی باید همان رشته خالی باقی بمونه. خطای رایج استفاده از if not value برای هر نوع مقدار غایبه؛ اون شرط علاوه بر None، رشته خالی رو هم می‌گیره. اینجا این دو حالت قرارداد متفاوت دارن. برای مقدار غیرغایب، فاصله ابتدا و انتهای متن رو حذف می‌کنیم و حروف وسط رو دست نمی‌زنیم. ورودی طبق قرارداد فقط رشته یا None است؛ لازم نیست با str کردن فهرست و دیکشنری مسئله تازه‌ای اضافه کنی.

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

def description(value):
    if value is None:
        return "توضیحی ثبت نشده"
    return value.strip()

حالا نوبت توئه: تابع display_name(value) برای None دقیقاً "ناشناس" برگرداند و برای رشته، نتیجه strip را بدهد. " سارا " باید "سارا"، "" باید "" و None باید "ناشناس" شود. فقط رشته یا None وارد می‌شود؛ رشته خالی را با مقدار غایب یکی نگیر و چیزی چاپ نکن.

فعالیت شما

تابع display_name(value) برای None دقیقاً "ناشناس" برگرداند و برای رشته، نتیجه strip را بدهد. " سارا " باید "سارا"، "" باید "" و None باید "ناشناس" شود. فقط رشته یا None وارد می‌شود؛ رشته خالی را با مقدار غایب یکی نگیر و چیزی چاپ نکن.

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

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

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

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

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

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

def display_name(value):
    # مقدار غایب را جدا کن
    return value.strip()