شنبه 20 شهریور 1395 - 10:29
آموزش زبان برنامه نویسی پایتون#جلسه پنجم
بسم الله الرحمن الرحیم
جلسه پنجم
جریان کنترلی (بخش اول: دستورات شرطی)
شرط در واقع ساختاری است که اجازۀ اجرای قطعهکدی را به ازای کنترل یک عبارت منطقی میدهد. دستور if عملیات شرطی در برنامه نویسی را میسر می کند خروجی عبارتی که جلو if نوشته می شود، یک مقدار بولین True یا False است و بدنه ی دستور if در صورتی اجرا می شود که شرط آن برابر با True ارزیابی شود.
در پایتون بر خلاف اکثر زبان های برنامه نویسی از پرانتز یا به عنوان در برگیرنده شرط و یا از آکولاد به عنوان بلاک if یا else یا توابع استفاده نمی شود، بلکه از علامت کولون":" استفاده می شود و بلاک داخل if با ۴ space جلو تر شروع می شود.
اگر دستور if به تنهایی (Simple if Statements) به کار رود، در صورت برقرار بودن شرط جلو if دستورات بعدی اجرا می شود و در غیر این صورت، این دستورات نادیده گرفته می شوند.
بسم الله الرحمن الرحیم
جلسه پنجم
جریان کنترلی (بخش اول: دستورات شرطی) در پایتون
شرط در واقع ساختاری است که اجازۀ اجرای قطعهکدی را به ازای کنترل یک عبارت منطقی میدهد. دستور if عملیات شرطی در برنامه نویسی را میسر می کند خروجی عبارتی که جلو if نوشته می شود، یک مقدار بولین True یا False است و بدنه ی دستور if در صورتی اجرا می شود که شرط آن برابر با True ارزیابی شود.
در پایتون بر خلاف اکثر زبان های برنامه نویسی از پرانتز یا به عنوان در برگیرنده شرط و یا از آکولاد به عنوان بلاک if یا else یا توابع استفاده نمی شود، بلکه از علامت کولون":" استفاده می شود و بلاک داخل if با ۴ space جلو تر شروع می شود.
اگر دستور if به تنهایی (Simple if Statements) به کار رود، در صورت برقرار بودن شرط جلو if دستورات بعدی اجرا می شود و در غیر این صورت، این دستورات نادیده گرفته می شوند.
شرط if ممکن است به همراه else و یا elif به کار رود. می توان در یک بلوک شرطی از چندین elif (مخفف else if) استفاده کرد. در هسته زبان پایتون (بر خلاف زبان C)دستور switch وجود ندارد و به جای آن باید از elifهای متعدد استفاده کرد. در این حالت ابتدا شرط if اصلی تست میشود، در صورت درست بودن شرط، قطعه کد مربوطه اجرا شده و برنامه بدون تست شرط سایر elif ها به روند عادی اجرا ادامه میدهد. در صورتی که شرط نادرست باشد elif بعدی مورد پردازش قرار می گیرد. تا زمانی که یکی از مقادیر شرطی elif معادل True باشد. دستورهای elif همیشه بعد از دستور if و پیش از دستور else قرار می گیرند.
If :
Elif :
Else: #optional
توجه داشته باشید به هنگام استفاده از شرط if باید مطمئن شوید تمام حالات مختلف را مدیریت کرده اید، در غیر این صورت با خطاها و استثناها مواجه می شوید.
else این امکان را میدهد که اگر در زنجیرۀ شرطها هیچ شرطی درست نبود قطعهکدی را که در خود دارد اجرا کند . این دستور باید بعد از if یا elif آورده شود. به ازای هر شرط if حداکثر یک else می تواند وجود داشته باشد.
دستورات elif و else بخشی از دستور if هستند و بهطور جداگانه کاربردی ندارند.
برای نوشتن برنامه ای با استفاده از دستورات شرطی، مانند آنچه قبلا گفته شده است، از مسیر File| New File یک فایل جدید ایجاد کنید و قطعه کد زیر را در آن نوشته و با زدن کلید F5 یا از مسیر Run| Run Module اسکریپت را اجرا کنید.
Forms = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
answer = input('What day is it?')
answer = answer.lower()
if answer == forms[0].lower () :
print ('It is Sunday')
elif answer == forms [1].lower () :
print ('It is Monday')
elif answer == forms [2].lower () :
print ('It is Tuesday)
elif answer == forms [3]. lower () :
print ('It is Wednesday)
elif answer == forms [4]. lower () :
print ('工t is Thursday')
elif answer == forms [5]. lower () :
print ('工t is Friday')
elif answer == forms [6]. lower () :
print ('It is Saturday')
else:
print ('You did not give a valid response!')
>>> ================================ RESTART ================================
What day is it?sunday
It is Sunday
>>> ================================ RESTART ================================
>>>
What day is it?May 22nd
You did not give a valid response!
در برنامه فوق مثالی از کاربرد تابع lower() و هم چنین دسترسی به عناصر لیست وجود دارد. ممکن است مقداری که به عنوان روز هفته توسط کاربر وارد می شود با حروف بزرگ یا کوچک باشد بنابراین قبل از مقایسه، ورودی داده شده توسط کاربر و عناصر موجود در لیست به صورت مقادیری با حروف کوچک تبدیل می شوند.
مقایسه در دستورات شرطی
عمل مقایسۀ دو شیء (متغیر، عدد، رشته یا ... ) توسط دو علامت مساویِ بههمچسبیده صورت میگیرد. علامت مساوی تنها، عمل نسبت دادن یک مقدار به متغییر را انجام میدهد. پس هنگام مقداردهی یا مقایسه دقت داشته باشید که این دو را بهجای هم بهکار نبرید . حاصل نتیجه تست برابر بودن دو مقدار، مقدارهای درست (True) یا نادرست (False) خواهد بود.
عمل مقایسۀ نابرابری(!=) در حقیقت متمم یا منفی شدۀ مقایسۀ برابری است. فاصلهگذاشتن بین نماد != و یا برعکس نوشتن آن، (به صورت !=) یک خطای منطقی محسوب میشود. و در زمان اجرا تأثیرگذار خواهد بود. مقایسۀ بزرگتری و کوچکتری نیز با علامت های (>، < ، => یا =< ) نشان داده می شود.
معنی عملگر |
نماد ریاضی |
نماد در زبان پایتون |
---|---|---|
کمتر |
< |
< |
بیشتر |
> |
> |
کمتر یا مساوی |
≤ |
<= |
بیشتر یا مساوی |
≥ |
>= |
برابری |
= |
== |
نابرابری |
≠ |
!= |
گاهی قصد برنامهنویس اطلاع از ترکیب چندین عبارت منطقی باشد تا برنامه بتواند مقایسههایی بسیار پیچیده را انجام داده و تصمیمات درستتری گرفته شود، بدین منظور عملگرهای پرکاربردی وجود دارد.
عملگر and
عملگر and (و منطقی) تنها در حالتی به مقدار درست منجر میشود که هر دو عملوند آن حامل مقادیر درست باشند.
X and Y: {█(if X is False,return X@otherwise,return Y)┤
عملگر or
این عملگر تقریباً عکس and نتیجه میدهد یعنی در همۀ حالات بهجز حالتی که هر دو عملوند آن مقدار نادرست داشته باشند منتج به مقدار درست خواهد شد.
X or Y: {█(if X is False,return Y@otherwise,return X)┤
عملگر not
وقتی عملگر not را روی یک عبارت اثر کند، مقدار عبارت عکس می شود.
Not X: {█(if X is False,return 1@otherwise,return 0)┤
عملگر is
برای بررسی عضویت می توان از is (in) یا is not استفاده کرد.
وقتی دو مقدار (در مثال زیر a و d) هر دو به یک عنصر یکسان از نظر مقدار (data value) و نوع داده ای (data type) اشاره می کنند، یعنی با هم برابر می باشند و خروجی عملگر is برای آنها مقدار True می باشد.
>>> a = 50
>>> b = 25
>>> c = 'spam'
>>> a == b
False
>>> b <= a
True
>>> d = 50
>>> a is d
True