✍️ نام محصول باید پس از حذف فاصلههای دو سر، حداقل یک نویسه داشته باشد. اگر قبل از پاکسازی خالی بودن را بررسی کنیم، رشته شامل چند فاصله از شرط عبور میکند؛ بعد strip آن را خالی میکند و رکورد بینام وارد گزارش میشود. این خطا معمولاً روی مثالهای تمیز دیده نمیشود.
مثلاً ' دفتر آبی ' به 'دفتر آبی' تبدیل میشود و معتبر است؛ فاصله داخلی حفظ میشود. اما ' ' باید None بدهد، نه رشته خالی. به این ترتیب مصرفکننده میتواند نبود نام معتبر را از یک نام واقعی جدا کند و ردیف را رد کند.
کد اولیه شرط را در جای اشتباه اجرا کرده است. ترتیب عملیات را اصلاح کن؛ لازم نیست تمام فاصلههای متن را با replace پاک کنی. خطای رایج دیگر، رد کردن نامهای تکحرفی یا تبدیل اجباری حروف است؛ قرارداد فقط غیرخالی بودن پس از strip را میخواهد. نوع ورودی در این فعالیت رشته است. به جای اضافه کردن چند شرط پراکنده، یک بار نام پاکشده را در متغیر نگه دار و همان را هم بررسی و هم برگردان؛ این کار خوانایی و سازگاری را بهتر میکند.
فعالیت شما
تابع clean_product(text) رشته میگیرد؛ strip کن، اگر نتیجه غیرخالی است همان رشته پاکشده را بده و اگر خالی است None. فاصله داخلی و حروف را تغییر نده. clean_product(' دفتر آبی ')='دفتر آبی'؛ '' و ' ' هر دو None هستند. نام تکنویسه معتبر است.