عملگرها و عملوندها در پایتون

پایتون آریا پروژه

عملگرها و عملوندها در پایتون

عملگرها نمادهای ویژه ای هستند که محاسباتی همچون جمع و ضرب را نمایش می دهند. مقادیری که عملگرها استفاده می کنند عملوند نامیده می شوند.

عبارات زیر که کمابیش معنی آنها واضح است , همگی در پایتون مجازند:

پایتون

نمادهای + , – و / و نحوه استفاده پرانتزها برای دسته بندی, همان معنی را می دهند که در ریاضیات از آنها استفاده می شود. ستاره ( * ) نمادی است برای ضرب کردن و دو ستاره پیاپی (**) نمادی است برای توان رسانی.

وقتی که نام یک متغیر به جای عملوند ظاهر می شود قبل از اینکه عملگر اجرا شود , این نام با مقدار متغیر جایگزین می شود.

جمع, تفریق, ضرب و توان رسانی همگی به صورت آنچه شما انتظار دارید انجام می شود. اما ممکن است از نحوه ی عمل تقسیم متعجب شوید. این عملگر یک نتیجه ی غیر منتظره دارد.

پایتون

مقدار minute عدد ۵۹ است. نتیجه ی تقسیم ۵۹ بر ۶۰ برابر است با ۰٫۹۸۳۳۳ و نه عدد صفر. دلیل اختلاف این است که پایتون تقسیم صحیح را انجام می دهد.

وقتی هر دو عملوند صحیح هستند , نتیجه هم باید یک عدد صحیح باشد و بنا به قرار داد تقسیم صحیح همیشه به سمت پایین گرد می شود, حتی در مثال هایی شبیه به مثال اخیر  که پاسخ به عدد صحیح بعدی ( در این مثال عدد۱) بسیار نزدیک است.

یک راه حل ممکن برای رفع این مشکل , محاسبه ی درصدی از کسر است:

پایتون

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

ترتیب عملگرها

وقتی که بیشتر از یک عملگر در عبارتی استفاده شود, ترتیب ارزیابی آنها به قوانین اولویت بستگی دارد. پایتون از قوانین اولویتی مشابه عملگرهایی که در ریاضیات استفاده می شوند, پیروی می کند.

برای حفظ حوه ی آرایش عملگرها می توانید کلمه ی PEMDAS را به خاطر بسپارید. این کلمه از حروف اول شش کلمه ی انگلیسی زیر ساخته شده است و ترتیب اولویت عملگرها را نشان می دهد:

Parentheses پرانتزها

Exponentiation توان رسانی

Multiplication ضرب

Division تقسیم

Addition جمع

Subtraction تفریق

پرانتزها بالاترین اولویت را دارند و می توانند باعث شوند که یک عبارت به طریقی که ما می خواهیم ارزیابی شود. از آنجایی که نخست عبارات داخل پرانتز بررسی می شوند  ۲*(۳-۱) برابر ۴ خواهد بود.

شما می توانید از پرانتز ها برای خوانا تر کردن عبارات هم استفاده کنید. همانطور که در (minute*100)/60 وجود یا عدم وجود پرانتزها در نتیجه ی عبارت تاثیری ندارد.

بعد از پرانتزها توان رسانی بالاترین اولویت را دارد بنابراین نتیجه ی ۲**۱+۱  برابر ۳ می باشد و نه ۴ .

ضرب و تقسیم اولویتی برابر دارندهمچنین برای جمع و تفریق که البته اولویت ضرب و تقسیم از جمع و تفریق بیشتر است , بنابراین ۲+۳-۱ عدد ۵ می شود.

عملگرهایی که اولویت مشابه دارند از چپ به راست ارزیابی می شوند, بنابراین در عبارت minute*100/60 ابتدا عمل ضرب انجام می شود و ۵۹۰۰/۶۰ را نتیجه می دهد و سپس تقسیم را انجام می دهدو ۹۸ حاصل می شود. اگر عملگرها از راست به چپ ارزیابی می شدند, نتیجه ۵۹*۱ می شد که برابر بود با ۵۹ و این اشتباه است.

 

نویسنده: زهرا رستمی

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *