جلسه هشتم

جلسه هشتم

شرط‌های تودرتو

در پایتون، شما می‌توانید شرط‌های تودرتو (nested conditions) را به کار ببرید. این یعنی شما می‌توانید یک ساختار شرطی را درون ساختار شرطی دیگری قرار دهید.

ساختار کلی شرط‌های تودرتو به این شکل است:

if شرط1:

ifشرط2:

# انجام این بلوک اگر هر دو شرط1 و شرط2 برقرار باشند

else:

# انجام این بلوک اگر شرط1 برقرار باشد اما شرط2 برقرار نباشد

else:

# انجام این بلوک اگر شرط1 برقرار نباشد

ادامه کد

در این ساختار، ابتدا شرط1 بررسی می‌شود. اگر شرط1 برقرار باشد، آنگاه شرط2 بررسی می‌شود. اگر هر دو شرط برقرار باشند، بلوک اول اجرا می‌شود. اگر شرط1 برقرار باشد اما شرط2 برقرار نباشد، بلوک دوم اجرا می‌شود. و اگر شرط1 برقرار نباشد، بلوک سوم اجرا می‌شود و ادامه کد در هر صورت اجرا میشود.

شرط‌های تودرتو می‌توانند به هر عمق دلخواهی تعریف شوند و می‌توانند ترکیبی از if، elif و else باشند.

مثال:

.

.

.

.

.

.

در این مثال، ابتدا سن بررسی می‌شود. اگر سن 18 سال یا بیشتر باشد، جنسیت بررسی می‌شود. اگر جنسیت مرد باشد، پیام “You are an adult male.” چاپ می‌شود، و اگر جنسیت زن باشد، پیام “You are an adult female.” چاپ می‌شود.

اگر سن کمتر از 18 باشد، دوباره جنسیت بررسی می‌شود. اگر جنسیت مرد باشد، پیام “You are a minor male.” چاپ می‌شود، و اگر جنسیت زن باشد، پیام “You are a minor female.” چاپ می‌شود.

شرط‌های تودرتو به ما اجازه می‌دهند تا منطق پیچیده‌تری را در برنامه‌هایمان پیاده‌سازی کنیم.

در بسیاری از موارد می‌توان به جای استفاده از شرط‌های تودرتو (nested conditions) از عملگرهای منطقی استفاده کرد. این دو روش هر دو برای حل مسائل پیچیده قابل استفاده هستند، اما انتخاب یکی از آن‌ها ممکن است کد را سازمان‌یافته‌تر و خوانا‌تر کند.

عملگرهای منطقی

در پایتون، عملگرهای منطقی به ما امکان می‌دهند تا شرط‌های پیچیده‌تری را بررسی کنیم. این عملگرها عبارت‌اند از:

  1. and: این عملگر منطقی نتیجه True را برمی‌گرداند اگر و تنها اگر هر دو شرط همزمان برقرار باشند .

.

.

.

.

.

در مثال اول، هر دو شرط age >= 18 و is_student باید True باشند تا بلوک اول اجرا شود.

  1. or: این عملگر منطقی نتیجه True را برمی‌گرداند اگر حداقل یکی از شرط ها برقرار باشد.

# استفاده از عملگر ‘or’

.

.

.

در مثال دوم، اگر دمای هوا بالای 30 درجه باشد یا اگر بارندگی وجود داشته باشد (یا هر دو)، بلوک اول اجرا می‌شود.

  1. not:این عملگر منطقی نتیجه عکس یک عبارت را برمی‌گرداند. یعنی اگر عبارت True باشد، not آن False است و اگر عبارت False باشد، not آن True است.

# استفاده از عملگر ‘not’

.

.

 .

در مثال سوم، اگر is_weekend False باشد (یعنی not آن True باشد)، بلوک اول اجرا می‌شود.

مثال 2 : برنامه ایی که مضرب های اعداد 3 و 5 را چاپ کند ولی مضرب 7 را چاپ نکند عدد به دلخواه از ورودی دریافت شود ؟

.

 .

.

.

مثال 3 : برنامه ای بنویسید ک مضربی از 3 باشد ولی مضربی از 7 نباشد.