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


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

عملگر +

عملکرد این عملگر دقیق مانند درس ریاضی است. با استفاده از این عملگر ما قادر خواهیم بود دو یا چند عدد را باهم جمع کنیم. و یا مقدار دو یا چند متغیر را باهم جمع کنیم. مثال‌های این عملگر را در ادامه می‌توانید مشاهده کنید:

number1 = 20
number2 = 10
print (number1 + number2)

number1 = 15
number2 = 5
number3 = number1 + number2
print (number3)

number4 = 12.5
number5 = 7.5
number6 = number4 + number5
print(number6)

name = "mohammad"
family = "samandar"
print (name+family)

num1 = 20
num2 = 5.5
print(num1 + num2)


print(12 + 8)
print(8 + 2)
print(3.5 + 8.2)

در خط اول مثال‌های بالا، یک متغیر تعریف کردیم و مقدار آن را 20 قرار دادیم. در خط دوم متغیر دیگری ساختیم و مقدار آن را هم 10 قرار دادیم. در خط سوم از دستور print برای نمایش نتیجه کار استفاده می‌کنیم.

در داخل پرانتز دستور print هم نام دو متغیری که تعریف کرده بودیم را نوشته و مثل درس ریاضی، بین متغیرها، عملگر + را قرار می‌دهیم. با این کار به مفسر پایتون می‌گوییم که مقادیر این دو متغیر را با یکدیگر جمع کن و حاصل را نمایش بده. بعد از اجرای برنامه عدد 30 نمایش داده خواهد شد.

همانطور که در خط‌های بعدی مشاهده می‌کنید، این عملگر برای هر نوع متغیری کار می‌کند. شما می‌توانید بدون تعریف متغیر مانند سه خط پایانی، مستقیما اعدادی را در داخل دستور print قرار داده و حاصل را در خروجی مشاهده کنید. همچنین مانند خط 5 الی 8  می‌توانید دو متغیر را باهم جمع کرده و حاصل را در متغیر سومی قرار دهید و سپس متغیر سوم را در خروجی نمایش دهید.

 

نکته ای که در عملگرهای محاسباتی باید توجه کنید این است که نمی‌توانید بر روی دو متغیر که از دو نوع متفاوت هستند، عملیاتی انجام دهید. به عنوان مثال اگر متغیری از نوع int و متغیری از نوع string را با یکدیگر جمع کنید، مفسر پایتون یک پیغام خطا به شما نمایش می‌دهد. انجام عملیات بر روی متغیرهای نوع int و float براحتی قابل انجام است.

اما همانطور که گفته شد متغیرهای از نوع int یا float نمی‌توانند با متغیری از نوع string جمع شوند. این قانون برای همه عملگرهای ریاضی که در ادامه توضیح خواهیم داد، به همین شکل عمل می‌کند.

در قسمت متغیرها با مبحث تغییر نوع متغیر، آشنا شدید. در بخش هم باید به همان صورت عمل کنیم. یعنی اگر دو نوع متغیر متفاوت داریم و میخواهیم بر روی آنها عملیاتی انجام دهیم، یا باید هنگام تعریف نوع درست را مشخص کنیم و یا بعد از تعریف، متغیر نوع آن را تغییر دهیم. این مورد بسته به نوع و هدف برنامه و یا قطعه کد می‌تواند متفاوت باشد.

num1 = "22"
num2 = 8
print( int(num1) + num2)

num1 = int("10")
num2 = 5
print(num1 + num2)

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

یک راه دیگر این است که بعد از تعریف متغیر، عبارت int را مانند خط 5 قبل از مقدار متغیر قرار دهیم. شما ‌میتوانید از عبارت‌های float برای اعداد اعشاری و از str برای رشته‌ها جهت تغییر نوع متغیرها استفاده کنید.

 
 

عملگر -

عملگر بعدی - است که برای منها و یا کم کردن دو عدد از یکدیگر استفاده می‌شود.

number1 = 12
number2 = 6
number3 = number1 - number2
print(number3)

number4 = 10.5
number5 = 8.4
print(number4 - number5)

print(10-2-3)
print (78-12-3-10)

تمام عملیاتی که انجام دادیم، مانند جمع است. تنها تفاوتی که هست، این است که باید عملگر - را جایگزین + کنید تا عددها از هم کم شوند.

در عملیات منها شما قادر نیستید از دو متغیر رشته ای یا string استفاده کنید. همچنین اگر عدد کوچکتر را از بزرگتر کم کنید، جواب منفی خواهد شد. مثال زیر را مشاهده کنید:

num1 = 12 num2 = 6 print(num2 - num1)

عملگر *

از علامت ستاره در پایتون برای عملیات ضرب استفاده می‌شود. می‌توان هر عدد یا متغیری از نوع int و float را در یکدیگر ضرب کرد. مثال های زیر برای عملگر ضرب * را مشاهده می‌کنید:

num1 = 2
num2 = 2
num3 = 3
print(num1 * num2 * num3)

number1 = 2.5
number2 = 8.8
print (number1 * number2)

a = 5
b = 7.5
print (a * b)

num4 = 8
num5 = 8
num6 = num4 * num5
print(num6)


print(3*4*8)
print(2*10)

امکان ضرب دو متغیر از نوع string وجود ندارد و با انجام این کار، مفسر پایتون یک پیغام که در آن محل وقوع خطا و دلیل آن مشخص شده است را به شما نمایش می‌دهد.

عملگر /

زمانی که قصد تقسیم کردن دو یا چند عدد را دارید، عملگر / به کمک شما می‌آید:

num1 = 12
num2 = 6
print (num1 / num2)

num3 = 20 
num4 = 2
print(num3 / num4)

number = 100
print(number / 10)

number1 = 23.5
number2 = 5
print(number1 / number2)

همانطور که خروجی کدهای بالا را در سیستم‌تان مشاهده می‌کنید، همه جواب‌ها دارای اعشار هستند و قسمت صحیح عدد نمایش داده نمی‌شود. برای نمایش قسمت صحیح عدد از عملگر // باید استفاده کنید که در ادامه توضیح خواهیم داد. از عملگر / برای اجرای عملیات بر روی متغیرهای نوع string نمی‌توانید استفاده کنید.

عملگر //

از این عملگر برای انجام تقسیم صحیح استفاده می‌شود. یعنی مانند عملگر /  حاصل تقسیم با اعشار نمایش داده نمی‌شود و فقط یک عدد صحیح مانند 22 نمایش داده می‌شود. مثال‌های زیر را در سیستم خود نوشته و خروجی را مشاهده نمایید:

num1 = 44
num2 = 2
print (num1 // num2)

num3 = 25
num4 = 2
print(num3 // num4)

print(51 // 3)
print (27 // 2)

خروجی کدهای بخش عملگر تقسیم /  را با عملگر تقسیم صحیح //  مقایسه کنید.

اگر تقسیمی که حاصلش عدد اعشاری مانند 2.4523543 خواهد شد را با عملگر // استفاده کنید، خروجی 2.0 خواهد شد:

num1 = 25.5 
num2 = 11 
print (num1 // num2) 

num1 = 25.5 
num2 = 11 
print (num1 / num2)

عملگر %

گاهی تقسیم‌هایی که انجام می‌دهیم، باقی مانده دارند. مانند تقسیم 10 بر 3 و یا 20 بر 6. اگر بخواهیم باقی مانده این تقسیم‌ها را در خروجی نمایش دهیم، عملگر % وارد می‌شود و برای انجام این عملیات اعلام آمادگی می‌کند. برای درک بهتر این موضوع، مثال‌های زیر را در سیستم خود نوشته و بررسی کنید:

number1 = 10
number2 = 3
print(number1 % number2)

number3 = 20
print(number3 % 6)
 

عملگر **

تا به اینجای کار چند عدد از عملیات‌های پایه و ساده ریاضی را با استفاده از عملگرهای ریاضی انجام دادید. تنها یک عملگر ریاضی باقی مانده و احتمالا توانسته‌اید حدس بزنید که نوبت به عملیات توان رسیده است. بله دوستان! شاید باورتان نشود اما از ** برای به توان رساندن اعداد استفاده می‌شود. به مثال‌های زیر توجه کنید:

age = 2
num1 = 4
print (age ** num1)

a = 3 
print (3 ** 3)

a = 2.5
b = 2.5
print (a ** b)

c = 3
d = 2.2
print (c ** d)

print (4 ** 3)
print (5 ** 2)

فرایند کار بسیار ساده است. در خط اول ما متغیر age را داریم که مقدار 2 را در خود ذخیره کرده است.  در خط بعدی متغیر num1 با مقدار 4 تعریف شده است. در خط بعد همانند مثال‌های قبلی هر دو متغیر را داخل دستور print قرار داده و بین آنها عملگر ** را قرار می‌دهید. اتفاقی که میفتد این است که حاصل به توان رسیدن مقدار دو متغیر age و num1 نمایش داده می‌شود.

مانند ریاضی می‌توان گفت 2 به توان 4 که به این شکل نمایش داده  می‌شود: 2*2*2*2. (عدد 2 چهار بار در خوش ضرب می‌شود) از این عملگر برای اعداد اعشاری نیز می‌توان استفاده کرد. مثل چند عملگر قبلی از عملگر توان هم نمیتوان برای متغیرهای string استفاده کرد.

نحوه کار همه عملگرهای ریاضی در تصویر زیر به صورت خلاصه آورده شده است:

اولویت عملگرهای ریاضی

زمانی که در حال تمرین عملگرهای ریاضی در پایتون هستید، احتمالا این سوال هم برای شما پیش  آمده که زمانی که چند عملگر را برای چند عدد استفاده کنیم(2 + 3 * 5 / 2)، اولویت اجرا با کدام عملگر است؟ در بیشتر زبان های برنامه نویسی و ریاضی اولویت عملگرها به این شکل است:

  1. پرانتز
  2. توان
  3. ضرب و تقسیم
  4. جمع و تفریق

به مثال زیر توجه کنید:

print((3*4) + 5 ** 3 / 5 - 2)

در دستور بالا، همانطور که مشاهده می‌‌کنید، از چند عملگر برای انجام چند عملیات استفاده شده است. برای محاسبه عبارتی که داخل دستور print قرار گرفته، بر اساس اولویت عملگرها ابتدا عبارت داخل پرانتز که 4*3 می‌باشد محاسبه می‌شود. سپس حاصل عبارت 5 به توان 3 محاسبه شده و حاصل تقسیم بر 3 می‎‌شود. در این مرحله ما عدد های 12، 25، و 2 را داریم و بین این سه عدد عملگرهای جمع و تفریق باقی مانده است. 

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