بررسی شرطهای چندگانه
شاید بخواهید چند شرط را همزمان بررسی کنید. برای نمونه گاهی برای انجام عملی به True بودن همزمان دو شرط نیاز دارید. زمانی دیگر ممکن است ارضا شدن تنها یکی از دو شرط کافی باشد. دو کلیدواژهی and و or میتواند شما را در این شرایط یاری کند.
بهکارگیری and برای بررسی شرطهای چندگانه
برای بررسی درست (True) بودنِ همزمانِ دو شرط از کلیدواژهی and برای ترکیب دو آزمون شرطی استفاده کنید. اگر هر دو آزمون موفق باشند عبارت کلّی درست (True) خواهد بود. در صورتی که یکی یا هر دوی آزمونها ناموفّق باشند، عبارت کلی نیز نادرست (False) خواهد بود.
برای مثال میتوانید هنگام بررسی سن دو نفر بفهمید که آیا هر دو بالای ۲۱ سال هستند یا نه:
در ۱ دو سن age_0 و age_1 را تعریف میکنیم. در ۲ بررسی میکنیم که آیا هر دو بالای ۲۱ اند یا نه؟ آزمون سمت چپ موفق است امّا راستی نه، پس کل عبارت نادرست (False) است. در ۳ age_1 را به ۲۲ تغییر میدهیم. اکنون مقدار age_1 بیشتر از ۲۱ است پس از دو آزمون شرطی موفّقاند، این باعث میشود که کل عبارت شرطی درست (True) تلقّی شود.
برای بهبود خوانایی میتوانید دو طرف هر آزمون شرطی پرانتز قرار دهید، هر چند این کار الزامی نیست. اگر از پرانتز استفاده کنید آزمون شما شبیه به این خواهد بود:
|
|
بهکارگیری or برای بررسی شرطهای چندگانه
کلیدواژهی or هم امکان بررسی چند شرط را برای شما فراهم میآورد با این تفاوت که این بار اگر یکی یا هر دوی شرطها برقرار باشند، کل عبارت پذیرفته میشود.
مثال مربوط به سن را در نظر بگیرید. این بار به دنبال این هستیم که بفهمیم آیا تنها یکی از دو نفر بالای ۲۱ سال هست یا نه:
از تعریف دو متغیّر مربوط به سن در ۱ شروع میکنیم. از آنجایی که آزمون مربوط به age_0 درست است، کل عبارت ۲ درست (True) ارزیابی میشود. سپس age_0 را به ۱۸ کاهش میدهیم. در آزمون ۳، هر دو آزمون رد میشوند و عبارت کلّی نادرست (False) تعبیر خواهد شد.
بررسی وجود یک مقدار در یک لیست
گاهی مهم است که پیش از انجام کاری بررسی کنیم که یک لیست مقدار خاصّی را شامل میشود یا نه. برای نمونه پیش از تکمیل ثبت نام کاربر در یک وبسایت، شاید نیاز داشته باشید که بررسی کنید آیا نام کاربریِ انتخابیِ کاربر در لیست نامهای کاربری قبلی وجود دارد یا نه.
برای دریافتن این که آیا مقدار خاصّی در لیست وجود دارد از کلیدواژهی in استفاده میکنیم. فرض کنید میخواهید برای یک پیتزافروشی برنامهای بنویسید. لیستی از مواد درخواستی مشتری برای روی پیتزا تهیّه میکنیم و سپس بررسی میکنیم که آیا آنها در لیست ما وجود دارد یا نه.
در ۱ و ۲، کلیدواژهی in از پایتون میخواهد وجود ‘mushrooms’ و ‘pepperoni’ را در لیستِ requested_toppings بررسی کند. این تکنیک بسیار قدرتمند است زیرا میتوانید به کمک آن لیستی از مقادیر ضروری درست کنید و سپس به آسانی بررسی کنید که مقداری مورد نظر شما با یکی از مقادیر داخل لیست برابری میکند یا نه.
بررسی وجود نداشتن یک مقدار در یک لیست
زمانی دیگر ممکن است بخواهید وجود نداشتن مقداری را در لیستی بررسی کنید. در این شرایط میتوانید از کلیدواژهی not استفاده کنید. برای مثال لیستی از کاربران را در نظر بگیرید که از ارسال نظر در یک انجمن منع شدهاند. میخواهید پیش از ثبت یک نظر بررسی کنید که آیا کاربرِ نظردهنده در لیست کاربران ممنوع وجود دارد یا نه.
خط ۱ به آسانی خوانده میشود. اگر مقدار user در لیست banned_users نبود، پایتون True برمیگرداند و کد تورفته را اجرا میکند.
کاربر ‘marie’ در لیست ‘banned_users’ نیست پس پیامی میبیند که از او برای ارسال نظرش دعوت میکند:
|
|
عبارتهای بولی
در طی آموختن برنامهنویسی جایی به عبارت بولی برخواهید خورد. عبارت بولی تنها نامی دیگر برای آزمون شرطی است. مقدار بولی همانندِ مقدارِ یک عبارتِ شرطی پس از ارزیابی، یا درست (True) است یا نادرست (False).
مقدارهای بولی غالباً برای پیگیری و دنبال کردن شرطها به کار میرود، مانند این که آیا بازی میتواند اجرا شود یا آیا کاربری میتواند مطلب خاصّی را روی وبسایت ویرایش کند یا نه:
مقدارهای بولی برای پیگیری وضعیّت برنامه یا شرط خاصّی که در برنامه مهم است، راهی موثّر ارائه میکنند.
خودآزمایی
آزمونهای شرطی
تعدادی آزمون شرطی بنویسید. گزارهای برای شرح هر آزمون و پیشبینی شما از نتیجهی هر کدام چاپ کنید. کد شما باید چیزی شبیه به این باشد:
- به دقّت به نتایج خود نگاه کنید و مطمئن شوید که دلیل True یا False شدن هر خط را متوجّه میشوید.
- دستِ کم ده آزمون بسازید طوری که حدّاقل پنج تای آنها True و پنجتای دیگر False شود.
آزمونهای شرطی بیشتر
نباید خود را به ساختن تنها ده آزمون شرطی محدود کنید. اگر میخواهید مقایسههای بیشتری بکنید، آزمونهای بیشتری بنویسید و آنها را به conditional_tests.py بیفزایید. دست کم یک نتیجهی True و یک نتیجهی False برای هر کدام از موارد زیر داشته باشید:
- آزمون برابری و نابرابری برای رشتهها
- آزمونهایی با متد lower()
- آزمونهای عددی شامل برابری و نابرابری، بزرگتری و کوچکتری، بزرگتری و تساوی و کوچکتری و تساوی.
- آزمونهایی شامل کلیدواژههای and و or
- آزمون وجود عضوی در یک لیست
- آزمون وجود نداشتن عضوی در یک لیست