هنر برنامه نویسی با پایتون ، بخش چهارم : عملگرها

از دوران خوش مدرسه  یاد گیری اعمال ریاضی جمع ، تفریق ، ضرب و تقسیم را به یاد دارید ؟  تکلیف سخت حفظ جدول ضرب همراه با  قدم زدن در میان برف های سفید و انبوهی که دریک روز سرد زمستانی و در زیر پرتوهای زرین آفتاب در حیاط مدرسه دامن گسترانیده  بود را به یاد می آورید؟ چه رویاهای شیرین دوران مدرسه را به یاد داشته باشید و چه از یاد برده باشید نیک می دانید که در درس ریاضی ، ضرب عملیاتی است که با نماد یا علامت × نمایش داده می شود و عددی که در سمت راست آن قرار دارد (عملوند راست )را به تعداد عدد قرار گرفته در سمت چپ نماد (عملوند چپ ) با هم جمع می کند. برای مثال ضرب 12×3  که عملوند راست آن 12 و عملوند چپ آن 3 است یعنی :   12+12+12 پس حاصل 12×3  برابر است با  36 با این تعریف مفهوم دو عبارت ریاضی 12×3  و 3×12 متفاوت از یکدیگر است هرچند که حاصل هر دو عبارت یکی است.  عبارت 12×3  یعنی حاصل جمع  سه دسته 12 تایی (36=12+12+12) و 3×12 یعنی حاصل جمع دوازده دسته سه تایی.(36=3+3+3+3+3+3+3+3+3+3+3+3)

 همانند دانش ریاضی در زبانهای برنامه نویسی نیز دو مفهوم عملگر (Operator) و عملوند (Operand) بسیار پر کاربرد بوده و آشنایی با آنها  از نخستین گامهایی است که هنر آموزان برای ورود به  دنیای برنامه نویسی برخواهند داشت. 

 

 در ساده ترین بیان ، یک عملگر یک نویسه ویژه در زبان برنامه نویسی است که بیانگر یک عملیات مشخص واز پیش تعریف شده در آن زبان است. با بیانی ساده تر می توان گفت که یک عملگر در یک زبان برنامه نویسی علامتی است که انجام عملیات ویژه ای را مشخص می کند. به داده و یا داده هایی که عملیات تعریف شده بر روی آنها انجام می شود عملوند گفته می شود. ترکیبی از یک یا چند متغیر، داده خام ، عملگر و عملوند های مربوطه یک عبارت ، جمله یا گزاره نامیده می شود.

مثال :

X=20   یک عبارت است که از دو عملوند x و 20 و یک عملگر انتساب (=) ساخته شده است.

مثال :

Z+5  گزاره ای است که از دو عملوند   و 5 و عملگر ریاضی جمع (+) تشکیل شده است.

مثال :

X=20

Y=40

Z=x+y

در مثال بالا سومین جمله از دو عملگر تشکیل شده است عملگر انتساب (=) و عملگر ریاضی جمع (+) ، در این عبارت Z و X+y  عملوندهای عملگر انتساب هستند و x , y  عملوندهای عملگر جمع می باشند.

 

انواع عملگرها در Python

  عملگر انتساب یا تخصیص (Assignment)

این عملگر که با نویسه =  نمایش داده می شود برای دادن یک مقدار به یک متغیر استفاده می شود به بیان دیگر مقداردهی به متغیر ها توسط این عملگر انجام می شود. در طی عملیات انتساب ، ابتدا عملوند سمت راست عملگر ارزیابی و محاسبه شده و مقدار بدست آمده در عملوند سمت چپ ذخیره می گردد. عملگر انتساب پرکاربردترین عملگر در زبان های برنامه نویسی است

مثال :

 

X=20

Y=40

Z=x+y

در خط نخست مثال بالا مقدار عددی 20 به متغیر X داده شده است یعنی در متغیر X عدد 20 ذخیره شده است. بنابراین متغیر X حاوی مقدار عددی 20 است.

در خط دوم مقدار عددی 40 به متغیر Y داده شده است یعنی در متغیر Y عدد 40 ذخیره می شود. پس متغیر Y حاوی مقدار عددی 40 است.

در خط سوم ابتدا حاصل عبارت X+Y که مقدار عددی 60 است محاسبه و سپس در متغیر Z ذخیره می شود. از این پس متغیر Z حاوی مقدار عددی 60 خواهد بود.

عملگرهای ریاضی (محاسباتی) :

بسیاری از مسائل دنیای واقعی از محاسبه حقوق و دستمزد کارکنان یک شرکت صنعتی گرفته تا محاسبات  مورد نیاز برای تعیین مسیر حرکت موشکی که ماهواره ای را به مدار مشخصی از جو زمین منتقل می کند نیازمند پردازش داده های عددی هستند از این رو  محاسبات ریاضی  یک بخش جدایی ناپذیر از دنیای برنامه نویسی است بنابراین وجود عملگرهایی که بتوانند عملیات ریاضی را در زبان برنامه نویسی پیاده سازی کنند گریزناپذیر خواهد بود. با بکارگیری این عملگرها در زبان های برنامه نویسی می توان عملیات ریاضی  ضرب ، تقسیم ، جمع ، تفریق ، به توان رساندن و باقی مانده را انجام داد. برای مثال در بسیاری از زبان های برنامه نویسی  عملگر محاسباتی جمع با نماد + نمایش داده می شود این عملگر برای انجام عملیات ریاضی جمع (Addition) استفاده می شود این عملگر ، عملوندهای سمت چپ و راست خود را با هم جمع کرده و حاصل عملیات را در اختیار برنامه قرار می دهد. در جدول زیر عملگرهای ریاضی زبان برنامه نویسی پایتون فهرست شده اند .


عملگر

نام

مثال

+

جمع

x + y

-

تفریق

x - y

*

ضرب

x * y

/

تقسیم

x / y

%

باقی مانده

x % y

**

به توان رساندن

x ** y

//

خارج قسمت صحیح

x // y

 




























 

مثال 1:


x = 5

y = 3


print(x + y)     #output is 8


print(x - y)    #output  is 2


print(x * y)    #output  is 15

مثال 2 :


x = 12

y = 3


print(x / y)    #output  is 4


مثال 3 : 



x = 5

y = 2


print(x % y)   #output  is  1


مثال 4 :


x = 2

y = 5


print(x ** y)  ##output  is  32  same as 2*2*2*2*2

مثال 5 :


x = 15

y = 2


print(x // y)    #output  is  7


مثال 6 :

x = 13

y = 2


print(x // y)    #output  is  6

   



عملگرهای مقایسه ای و نوع داده منطقی ( Boolean )

مقایسه دو کمیت ، فعالیتی  معمول در بسیاری از شاخه های دانش است.  برای نمونه یک تحلیل گر آماری با مقایسه میانگین قد جمعیت دانش آموزان سال اولی  یک مدرسه با میانگین کشوری قد دانش آموزان سال اولی می تواند استدلال کند که میانگین قد دانش آموزان سال اولی این مدرسه از میانگین کشوری قد دانش آموزان سال اولی بیشتر است ، کمتر است و یا با آن برابر است. در جریان فعالیت های عادی زندگی هم بسیار پیش می آید که  پدیده ها و چیزهای پیرامون  خود را از نظر اندازه ، بزرگی و کوچکی ، بلندی و کوتاهی ، قیمت و ... با هم مقایسه کنیم. 

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

هر مقایسه دارای سه بخش اساسی زیر است :

1- دو یا چند چیزی که باید با هم مقایسه شوند برای مثال مقایسه قد دو دانش آموز ، مقایسه حجم دو کره و یا مقایسه دو عدد. به هنگام مقایسه دو یا چند پدیده در نظر گرفتن دو نکته لازم و ضروری است : نخست آنکه مقایسه دو چیزی که دارای ماهیت متفاوت هستند بی معنی است برای نمونه نمی توان کمیت قد را باوزن مقایسه کرد و یا فاصله را با سرعت. در برنامه نویسی هم شما نمی توانید یک داده عددی را با یک داده متنی مقایسه کنید. دوم آنکه یکای اندازه گیری دو پدیده ای که دارای ماهیت یکسان هستند باید یکی باشد برای مثال نمی توان دمای اتاقی را که با واحد سانتی گراد اندازه گیری شده با دمای اتاق دیگری که با واحد فارنهایت بیان شده است مقایسه کرد. برای درک بهتر این نکته فرض کنید که پروژه جدید شرکت شما طراحی و پیاده سازی برنامه یکپارچه حقوق و دستمزد برای یک شرکت چند ملیتی است که کارکنان آن در آمریکای شمالی با واحد پولی دلار حقوق خود را دریافت می کنند در حالی که به کارکنان شرکت که در کشور ژاپن مستقر هستند به واحد پولی ین حقوق پرداخت می شود. بنابراین و با توجه به شناوربودن نرخ برابری ارزهای مختلف ، مقایسه حقوق ماهانه کارمندی که در ژاپن خدمت می کند با حقوق ماهانه کارمند هم تراز وی که در آمریکای شمالی کار می کند بی معنی و فاقد اعتبار است. پس اگر بر اساس الزام قانونی و یا شیوه نامه های داخلی این شرکت چند ملیتی ، کارکنانی که بیش از 100000 دلار در سال حقوق دریافت می کنند باید 25 درصد مالیات بپردازند ، این قاعده تنها شامل کارکنان آمریکای شمالی است و مقایسه حقوق سالانه کارکنان شاغل در ژاپن با مبلغ 100000 دلار نتیجه نادرستی تولید خواهد کرد.

2- نوع عملیات مقایسه که می تواند یکی از چند گزینه بزرگتر ، کوچکتر ، برابر (مساوی) ، نابرابر(مخالف) ، بزرگتر مساوی و یا کوچکتر مساوی باشد. از این رو عملگرهای مقایسه ای موجود در پایتون بر این پایه اند :

 عملگر تساوی یا برابری : این عملگر که با نماد ==  نشان داده می شود برابری عملوندهای سمت چپ و راست  خود را بررسی می کند و چنانچه مقدار عملگر سمت چپ با مقدار عملگر سمت راست برابر باشد مقدار درست (True) و در غیر این صورت مقدار نادرست (False)را بر می گرداند

 

 برای مثال فرض کنید  وزن دو ورزشکار  به نامهای داریوش و آرمان به ترتیب  برابر 75 و 69 کیلوگرم باشد ، اگر وزن داریوش و آرمان را به ترتیب در متغیرهای DariushWeight و ArmanWeight  ذخیره کنیم ، عملیات مقایسه برابری وزن این دو  را در زبان پایتون به شکل زیر می توان نوشت :

DariushWeight = 75

ArmanWeight = 69

Result = ( DariushWeight == ArmanWeight)

با توجه به اینکه وزن این دو ورزشکار یکسان نیست پس نتیجه ذخیره شده در متغیر بولی Result مقدار نادرست(False) خواهد بود.

عملگر بزرگتر : این عملگر که با نماد >  نشان داده می شود بزرگتر بودن عملوند سمت چپ خود را نسبت به عملوند سمت راست  خود بررسی می کند و چنانچه مقدار عملگر سمت چپ بزرگتر از مقدار عملگر سمت راست باشد مقدار درست (True) و در غیر این صورت مقدار نادرست (False)را بر می گرداند. در مثال زیر نتیجه ذخیره شده در متغیر Reesult مقدار درست (True) خواهد بود

DariushWeight = 75

ArmanWeight = 69

Result = ( DariushWeight > ArmanWeight)

 

عملگر کوچکتر : این عملگر که با نماد <   نشان داده می شود کوچکتر بودن عملوند سمت چپ خود را نسبت به عملوند سمت راست  خود بررسی می کند و چنانچه مقدار عملگر سمت چپ کوچکتر از مقدار عملگر سمت راست باشد مقدار درست (True) و در غیر این صورت مقدار نادرست (False)را بر می گرداند. در مثال زیر نتیجه ذخیره شده در متغیر Reesult مقدار نادرست (False) خواهد بود

DariushWeight = 75

ArmanWeight = 69

Result = ( DariushWeight < ArmanWeight)

 

عملگر نابرابر : این عملگر که با نامهای نامساوی یا مخالف هم ازآن یاد می شود با نماد !=  نشان داده می شود و نابرابر بودن عملوند سمت چپ خود را نسبت به عملوند سمت راست  بررسی می کند و چنانچه مقدار عملگر سمت چپ نابرابر با مقدار عملگر سمت راست باشد مقدار درست (True) و در غیر این صورت مقدار نادرست (False)را بر می گرداند. در مثال زیر نتیجه ذخیره شده در متغیر Reesult مقدار درست (True) خواهد بود

DariushWeight = 75

ArmanWeight = 69

Result = ( DariushWeight != ArmanWeight)

 

عملگر بزرگتر مساوی : این عملگر ، عملیات دو عملگر مقایسه ای بزرگتر(>) و برابری (==) را ترکیب می کند و با نماد >= (بخوانید بزرگترمساوی) نشان داده می شود. برای مثال  زمانی که گفته می شود کمترین سن اخذ گواهینامه در ایران 18 سال است به این معنی است که افراد 18 سال و بالاتر می توانند گواهی نامه رانندگی درخواست کنند اما افراد زیر 18 سال این حق را نخواهند داشت.  این مثال را در پایتون می توان به صورت زیر کد نویسی کرد :

Age = 18

PersonAge = 21

Result= (PersonAge>=Age)

 در مثال بالا متغیر Age متغیری است که سن مبنا یا همان  کمترین  سن لازم برای درخواست گواهی نامه را که در ایران 18 سال تمام است در خود ذخیره می کند و متغیر PersonAge  نیز سن افراد متقاضی گواهینامه رانندگی را در برخواهد داشت. با اجرای خط سوم توسط مفسر پایتون مقدار درست (True) در متغیر Result  خواهد نشست. زیرا نتیجه عبارت PersonAge>=Age که مقدار درست (True) است با عملگر انتساب (=)در متغیر Result نشسته است.

عملگر کوچکتر مساوی : این عملگر ، عملیات دو عملگر مقایسه ای کوچکتر(<) و برابری (==) را ترکیب می کند و با نماد <= (بخوانید کوچکترمساوی) نشان داده می شود. برای نمونه زمانی که گفته می شود بیشینه وامی که بانک مسکن برای خرید خانه می پردازد 200 میلیون تومان است به این معنی است که مبلغ وامی که شما می توانید از بانک مسکن بابت خرید خانه درخواست کنید باید کمتر یا مساوی 200 میلیون تومان باشد. و شما نمی تواند بیش از 200 میلیون تومان وام از این بانک درخواست کنید. از این رو بر اساس نیاز می توانید 150 میلیون تومان وام درخواست دهید اما نمی توانید درخواست وام 250 میلیون تومانی بدهید.

این مثال را در پایتون می توان به صورت زیر کد نویسی کرد :

DebtLimit = 200000000

DebtRequest = 150000000

Result= (DebtRequest <= DebtLimit)

 

در مثال بالا متغیر DebtLimit  متغیری است که سقف وامی که بانک می تواند وام پرداخت کند را نگه می دارد و متغیر DebtRequest  نیز وام درخواست شده توسط مشتری  را در برخواهد داشت. با اجرای خط سوم توسط مفسر پایتون مقدار درست (True) در متغیر Result  خواهد نشست. زیرا نتیجه عبارت DebtRequest <= DebtLimit که مقدار درست (True) است با عملگر انتساب (=)در متغیر Result نشسته است. اما در مثال زیر مقدار نادرست (False) در متغیر Result می نشیند :

DebtLimit = 200000000

DebtRequest = 250000000

Result= (DebtRequest <= DebtLimit)

 

3- نتیجه حاصل از مقایسه که مهمترین بخش از مقایسه است و در تصمیم گیری و استدلال بکارگرفته میشود چرا که نتیجه یک مقایسه همواره ماهیت منطقی داشته و تنها می تواند یکی از دو مقدار درست (True) و یا نادرست (False) را داشته باشد. از این رو بهترین نوع متغیر که می تواند نتیجه یک مقایسه را در خود ذخیره کند متغیرمنطقی (Boolean) است .

در زبان برنامه نویسی پایتون ، متغیرهای نوع منطقی (Boolean) دسته ای از متغیرها هستند که تنها می توانند دو مقدار منطقی درست (True)  و یا نادرست (False) را در خود نگه دارند.

مثال :

IsLast=True

MainStage=False

برای درک بهتر نتیجه حاصل از یک مقایسه و چگونگی ذخیره نتیجه در یک متغیر منطقی ، فرض کنید که میانگین قد دانش آموزان یک مدرسه در واحد سانتی متر در متغیری به نام StudentHeightAverage ذخیره گردد و قد دانش آموزی به نام آرش در متغیری به نام ArashHeight ذخیره شود برای مقایسه قد آرش با میانگین قد دانش آموزان کلاس از قطعه کد زیر استفاده می کنیم :

 StudentHeightAverage=140

ArashHeight=150

Result = ArashHeight > StudentHeightAverage

با نگاهی به کد بالا مشخص است که میانگین قد دانش آموزان کلاس 140 سانتی متر و قد آرش 150 سانتی متر است پس قد آرش بزرگتر از میانگین قد کلاس است بنابراین نتیجه عبارت مقایسه ای ArashHeight> StudentHeightAverage  درست (True) است. و در نتیجه چیزی که در متغیر منطقی Result قرار می گیرد مقدار درست (True)  است.

چکیده عملگرهای رابطه ای در پایتون

عملگر

نام

مثال

==

مساوی با

x == y

!=

نابرابر ، مخالف

x != y

بزرگتر

x > y

کوچکتر

x < y

>=

بزرگتر مساوی

x >= y

<=

کوچکتر مساوی

x <= y


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

فرض کنید مسئول ثبت نام اردوی علمی دانش آموزان یک  مدرسه دخترانه هستید و مدیرمدرسه به شما می گوید تنها دانش آموزانی می توانند در این اردو ثبت نام کنند که در کارنامه امتحانات نوبت اول دارای معدل بالای 16 باشند و نمره درس علوم آنها کمتر از 17 نباشد. همانگونه که می بینید مدیر این مدرسه دو شرط لازم برای ثبت نام در اردوی علمی را با حرف ربط عطفی ((و)) به هم پیوند داده است و این یعنی ، فقط دانش آموزانی می توانند در این اردو شرکت کنند که هردو شرط معدل بالای 16 و نمره درس علوم بالاتر از  17 یا بالاتر را باهم داشته باشند. و اگر دانش آموزی یکی از این دو شرط را نداشته باشد نمی تواند در اردوی علمی ثبت نام کند.

در زبان برنامه نویسی پایتون عملگر عطف منطقی یا همان ((و)) که با نماد and نمایش داده می شود یک عملگر منطقی دو تایی است و نتیجه آن تنها در صورتی درست (True) است که هردو عملوند آن دارای ارزش درست (True) باشند و در غیر این صورت نتیجه آن دارای ارزش نادرست(False)  خواهد بود برای درک بهتر این مطلب فرض کنید عملوند های سمت چپ و راست این عملگر را به ترتیب با p و q نمایش می دهیم برای نمایش ارزش خروجی عملگر and  بر اساس ارزش عملوندهای آن می توان از جدول زیر استفاده کرد :

P and q

q

P

درست

درست

درست

نادرست

نادرست

درست

نادرست

نادرست

نادرست

نادرست

درست

نادرست

بنابراین ارزش خروجی عملگر منطقی and تنها در صورتی درست (true) است که هر دو عملوند آن دارای ارزش درست(true) باشند و در غیر این صورت دارای ارزش خروجی نادرست(False) است.

مثال :

کشور ایران در قاره آسیا قرار دارد  و   پایتخت ژاپن شهر لندن است

اگر گزاره کشور ایران در قاره آسیا قرار دارد را با p  و گزاره  پایتخت کشور ژاپن شهر لندن است را با q نمایش دهیم می توان گفت که گزاره p دارای ارزش درست است زیرا کشور ایران در قاره آسیا قرار دارد اما گزاره q دارای ارزش نادرست است زیرا لندن پایتخت کشور ژاپن نیست بنابراین بر اساس جدول بالا ارزش عبارت منطقی p and q نادرست است.

P and q

q

P

حالت کلی

کشور ایران در قاره آسیا قرار دارد

And

پایتخت کشور ژاپن شهر لندن است

پایتخت کشور ژاپن شهر لندن است

کشور ایران در قاره آسیا قرار دارد

مثال

False

False

True

ارزش

 

مثال : فرض کنید مینا دانش آموزی است که دارای معدل 18 و نمره علوم 19 است با فرض اینکه تنها دانش آموزانی بتوانند در اردو شرکت کنند که دارای معدل بالاتر از 16 باشند و نمره درس علوم آنها کمتر از 17 نباشد آیا وی می تواند در اردوی علمی شرکت کند؟

حل :

StudentAverage=18

StudentGrade =19

Result= (StudentAverage>16) and (StudentGrade>=17)

Print(Result)

StudentAverage متغیری است که معدل دانش آموز را در خود نگه دارد و StudentGrade هم متغیری است که نمره علوم دانش آموز را در خود ذخیره می کند بنا براین عبارت  سمت چپ عملگر and  یعنی StudentAverage>16 دارای ارزش درست (True) است زیرا معدل مینا 18 است وعدد 18 بزرگتر از 16 است. همچنین عبارت سمت راست عملگر and  یعنی   StudentGrade>=17نیز دارای ارزش درست (True) است چراکه نمره درس علوم مینا 19 است و عدد 19 بزرگتر از عدد 17 است بنابراین بر اساس جدول  بالا حالت اول رخ داده و p و q یعنی عملوندهای سمت چپ و راست عملگر منطقی and هر دو true هستند از این رو خروجی عملگر and در مثال بالا True است که از طریق عملگر انتساب = در متغیر Result می نشیند و در نتیجه خروجی چاپ شده توسط دستور Print(Result) هم True است. و این به معنای این است که مینا هردو شرط مورد انتظار برای شرکت در اردوی علمی مدرسه را داراست و می تواند در اردو حضوریابد.

P and q

q

P

حالت کلی

(StudentAverage>16)

 and

 (StudentGrade>=17)

StudentGrade>=17

StudentAverage>16

مثال

True

True

True

ارزش

 

مثال :

x=5

print(x > 3 and x < 10)

در مثال بالا دستور print  مقدار True را چاپ خواهد کرد زیرا مقدار متغیر x یعنی عدد 5 بزرگتر از عدد 3 و کوچکتر از عدد 10 است بنابراین عملوندهای سمت چپ و راست عملگر منطقی and هردو دارای ارزش درست هستند پس خروجی این عملگر درست (true) می باشد.

P and q

q

P

حالت کلی

X > 3  and x < 10

x<10

x>3

مثال

True

True

True

ارزش

 

 

 حال فرض کنید دستور مدیر مدرسه مورد اشاره ما به این شکل تغییر کند که دانش آموزانی می توانند در اردوی علمی مدرسه شرکت کنند که در کارنامه امتحانات نوبت اول دارای معدل بالای 16 باشند یا  نمره درس علوم آنها کمتر از 17 نباشد.

همانگونه که می بینید تنها چیزی که در دستور جدید تغییر کرده است حرف ربطی است که دو شرط مدیر مدرسه را به هم پیوند می دهد .در این دستور مدیر دو شرط مورد نظر خود را با حرف ربط ((یا)) به هم پیوند داده است یعنی هر دانش آموزی که دارای معدل بالای 16 است می تواند در این اردو شرکت کند حتی اگر نمره درس علوم وی کمتر از 17 باشد و نیز هر دانش آموزی که نمره درس علوم 17 یا بالاتر داشته باشد می تواند در این اردو شرکت کند حتی اگر معدل وی کمتر از 16 باشد.

در زبان برنامه نویسی پایتون عملگر فصل منطقی یا همان ((یا)) که با نماد or نمایش داده می شود یک عملگر منطقی دو تایی است و نتیجه آن تنها در صورتی نادرست (False) است که هردو عملوند آن دارای ارزش نادرست (False) باشند و در غیر این صورت نتیجه آن دارای ارزش درست(True)  خواهد بود برای درک بهتر این مطلب فرض کنید عملوند های سمت چپ و راست این عملگر را به ترتیب با p و q نمایش دهیم برای نمایش ارزش خروجی عملگر or  بر اساس ارزش عملوندهای آن می توان از جدول زیر استفاده کرد :

P or q

q

P

درست

درست

درست

درست

نادرست

درست

نادرست

نادرست

نادرست

درست

درست

نادرست

بنابراین ارزش خروجی عملگر منطقی or تنها در صورتی نادرست (False) است که هر دو عملوند آن دارای ارزش نادرست(False) باشند و در غیر این صورت دارای ارزش خروجی درست(True) است.

مثال :

عدد 16 زوج است   و   عدد 17 بزرگتر از عدد  36 است

اگر گزاره عدد 16 زوج است را با p  و گزاره  عدد 17 بزرگتر از عدد  36 است را با q نمایش دهیم می توان گفت که گزاره p دارای ارزش درست است زیرا 16 زوج است چراکه باقی مانده تقسیم آن بر 2 صفر است اما گزاره q دارای ارزش نادرست است زیرا عدد 17 بزرگتر از عدد 36 نیست بنابراین بر اساس جدول بالا ارزش عبارت منطقی p or q درست است.

P or q

q

P

حالت کلی

عدد 16 زوج است

or

عدد 17 بزرگتر از عدد 36 است

عدد 17 بزرگتراز 36 است

عدد 16 زوج است

مثال

True

False

True

ارزش

 

مثال : فرض کنید فرشته دانش آموزی است که دارای معدل 15 و نمره علوم 14 است با فرض اینکه تنها دانش آموزانی بتوانند در اردوی علمی مدرسه شرکت کنند که دارای معدل بالاتر از 16 باشند یا نمره درس علوم آنها کمتر از 17 نباشد آیا وی می تواند در اردوی علمی شرکت کند؟

حل :

StudentAverage=15

StudentAverage=14

Result= (StudentAverage>16) or (StudentGrade>=17)

Print(Result)

StudentAverage متغیری است که معدل دانش آموز را در خود نگه دارد و StudentGrade هم متغیری است که نمره علوم دانش آموز را در خود ذخیره می کند بنا براین عبارت  سمت چپ عملگر or  یعنی StudentAverage>16 دارای ارزش نادرست (False) است زیرا معدل فرشته 15 است وعدد 15 کوچکتر از عدد 16 است. همچنین عبارت سمت راست عملگر or  یعنی   StudentGrade>=17نیز دارای ارزش نادرست (False) است چراکه نمره درس علوم فرشته 14 است و عدد 14 کوچکتر از عدد 17 است بنابراین بر اساس جدول درستی عملگر or در  بالا حالت سوم رخ داده و p و q یعنی عملوندهای سمت چپ و راست عملگر منطقی or هر دو نادرست (False) هستند از این رو خروجی عملگر or در مثال بالا False است که از طریق عملگر انتساب = در متغیر Result می نشیند و در نتیجه خروجی چاپ شده توسط دستور Print(Result) هم مقدار False است. و این به معنای این است که فرشته هردو شرط مورد انتظار برای شرکت در اردوی علمی مدرسه را ندارد  و بنابراین  نمی تواند در اردو حضوریابد.

P or q

q

P

حالت کلی

(StudentAverage>16)

or

 (StudentGrade>=17)

StudentGrade>=17

StudentAverage>16

مثال

False

False

False

ارزش

 

مثال :

x=8

print(x > 3  or  x < 5)

در مثال بالا دستور print  مقدار True را چاپ خواهد کرد زیرا مقدار متغیر x یعنی عدد 8 بزرگتر از عدد 3 است بنابراین عملوند سمت چپ عملگر or  دارای ارزش درست است اما چون عدد 8 کوچکتر از عدد 5 نیست پس عملوند سمت راست عملگر or دارای ارزش نادرست است  بنابراین حالت دوم جدول درستی عملگر or رخ داده است پس خروجی این عملگر درست (true) می باشد.

P or q

q

P

حالت کلی

X > 3  and x < 5

x<5

x>3

مثال

True

False

True

ارزش

 

  عملگر منطقی not :

یکی دیگر از عملگرهای منطقی در زبان برنامه نویسی پایتون ، عملگر منطقی not است ، این عملگر یک عملگر یکانی است یعنی برخلاف عملگرهای منطقی and و or که دارای دو عملوند هستند تنها دارای یک عملوند است. وظیفه اصلی عملگر not عکس کردن ارزش درستی عملوند خود است یعنی چنانچه عملوند آن دارای ارزش درست (true) باشد خروجی این عملگر عکس ارزش عملوند  آن یعنی نادرست (false)است و اگر ارزش عملوند آن نادرست (false) باشد خروجی این عملگر درست (true) است. جدول ارزش درستی عملگر منطقی not به شکل زیر است :

 

not p

P

نادرست

درست

درست

نادرست

مثال : خروجی دستور print در برنامه زیر true است

x=5

y=not (x>12)

print(y)

عدد 5 کوچکتر از عدد 12 است پس نتیجه عبارت مقایسه ای x>12 نادرست (false) است بنابراین خروجی عملگر منطقی not عکس آن یعنی درست (true) خواهد بود که توسط عملگر انتساب = در متغیر y قرار خواهد گرفت و در خط آخر توسط دستور print(y) چاپ می شود.

 

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

not q

not p

P and q

P or q

q

P

نادرست

نادرست

درست

درست

درست

درست

درست

نادرست

نادرست

درست

نادرست

درست

درست

درست

نادرست

نادرست

نادرست

نادرست

نادرست

درست

نادرست

درست

درست

نادرست

 

عملگرهای انتساب ترکیبی :

 

با نگاهی به عبارت X = X +  1  می توان دریافت که متغیر X در دو طرف عملگر انتساب ( = ) تکرار شده است در این گونه گزاره ها که عملیات خاصی (برای مثال عمل جمع) در سمت راست عملگر انتساب بر روی یک متغیر انجام می شود و نتیجه حاصل در خود آن متغیر ریخته می شود می توان عملگر موجود در عبارت سمت راست را با عملگر انتساب ترکیب کرد و شکل ساده تری از عبارت را بکار گرفت . برای مثال عبارت X = X + 1 را می توان به شکل  X += 1 نوشت.

 

مثال: عبارت y=y*5 را می توان به شکل y*=5 بازنویسی کرد.

مثال : عبارت a=a+b+c را می توان به شکل a+=(b+c) نوشت.

 

 

جدول برخی از مهمترین عملگرهای انتساب ترکیبی

عملگر انتساب ترکیبی

مثال ترکیبی

مثال غیر ترکیبی

+=

x += 3

x = x + 3

-=

x -= 3

x = x - 3

*=

x *= 3

x = x * 3

/=

x /= 3

x = x / 3

%=

x %= 3

x = x % 3

//=

x //= 3

x = x // 3

**=

x **= 3

x = x ** 3



پایان بخش چهارم هنر برنامه نویسی با پایتون

اردیبهشت 1401

محمد ایزانلو

 

نظرات 0 + ارسال نظر
امکان ثبت نظر جدید برای این مطلب وجود ندارد.