assert یک شرط رو بررسی میکنه. اگر شرط True باشه اجرا ادامه پیدا میکنه و اگر False باشه AssertionError ایجاد میشه. این ابزار برای بیان انتظار در تستها مفیده. خودش تابع مورد آزمون رو اصلاح نمیکنه و اگر تست از مسیر عادی خارج بشه، دستورهای بعد از شکست اجرا نمیشن. پس دیدن یک پیام بعد از assert وابسته به موفقیت شرط قبلیه.
مثال یک محاسبه درست رو بررسی میکنه و بعد مقدار نهایی رو برمیگردونه. در سؤال شرط عمداً غلطه تا محل توقف روشن بشه. خطای رایج تصور اینه که assert فقط یک هشدار چاپ میکنه و برنامه ادامه میده. در اجرای معمول این دوره، شکستش یک استثناست و اجرا رو متوقف میکنه مگر اینکه صریحاً گرفته بشه. این درس try/except نداره. از assert برای کنترل اعتبار داده واقعی برنامه استفاده نمیکنیم؛ هدفش اینجا تست انتظارهای برنامهنویسه. برای ورودی نامعتبر واقعی، استثنای مشخص و قرارداد روشن رو در درسهای بعد تمرین میکنیم.
✍️ مثال حلشده:
def checked_value():
actual = 2 + 3
assert actual == 5
return actual
assert checked_value() == 5
حالا نوبت توئه: تابع check ابتدا actual=2+2 میسازد، سپس assert actual==5 و بعد return "تمام" دارد. در اجرای معمول پایتون بدون حالت بهینهسازی و بدون except چه رخ میدهد؟ پاسخ را از روی شرط assert بده؛ return بعدی تنها در صورت عبور از آن اجرا میشود.
فعالیت شما
تابع check ابتدا actual=2+2 میسازد، سپس assert actual==5 و بعد return "تمام" دارد. در اجرای معمول پایتون بدون حالت بهینهسازی و بدون except چه رخ میدهد؟ پاسخ را از روی شرط assert بده؛ return بعدی تنها در صورت عبور از آن اجرا میشود.