در این آموزش قصد داریم به معرفی انواع عملگرها در پایتون بپردازیم. فرض کنید یک عبارتی مثل ۴ + ۵ داریم که جمع آن ها برابر ۹ میشود. به ۴ و ۵ عملوند گفته میشود و به + عملگر میگوییم.
عملگر چیست؟
یک جواب ساده برای این سوال اینه که وقتی یک عبارتی مثل ۴ + ۵ داریم و جمعشون برابر ۹ میشه به ۴ و ۵ میگیم عملوند و به + میگیم عملگر. یعنی چیزی که روی عملوند ها تاثیر میذاره و ی خروجی به ما میده. در زیر به انواع عملگرها اشاره میکنم:
- عملگرهای ریاضی یا Arithmetic Operators
- عملگرهای قیاسی یا Comparison Operators
- عملگرهای انتسابی یا Assignment Operators
- عملگرهای منطقی یا Logical Operators
- عملگرهای بیتی یا Bitwise Operators
- عملگرهای عضوی یا Membership Operators
- عملگرهای شناسه یا Identity Operators
حالا میخوام ی نگاه دقیق تری به این عملگر ها بندازم.
عملگرهای ریاضی در پایتون
اگر فرض کنیم متغیر a مقداری برابر ۱۰ و متغیر b دارای مقدار ۲۰ هستند سپس:
- +: دو مقدار را با هم جمع میکند – a+b=30
- -: دو مقدار را از هم کم میکند – a – b = -10
- *: دو مقدار را در هم ضرب میکند – a*b=200
- /: خارج قسمت تقسیم دو عدد را نشان میدهد – a/b=2
- %: باقیمانده تقسیم دو عدد بر یکدیگر را نشام میدهد – a%b=0
- **: عدد اول را به توان عدد دوم میبرد – a**b=> ده به توان بیست
- //: خارج قسمت تقسیم دو عدد بر یکدیگر را به صورت عدد صحیح نشان میدهد. برای مثال ۴=۲//۹
عملگرهای قیاسی در پایتون
با همان فرض داریم:
- ==: چک میکند که آیا مقادیر a و b با هم برابر هستند یا خیر. اگر برابر بودند شرط درست است.
- =!: چک میکند که آیا مقدار آن دو متغیر با هم نابرابر است یا خیر. اگر نابرابر بود شرط درست است.
- <>: این عملگر دقیقا مانند عملگر قبل می باشد.
- <: چک میکند که آیا متغیر اول بزرگتر از دومی است یا خیر. اگر بزرگتر بود شرط درست است.
- >: چک میکند که آیا متغیر اول کوچکتر از دومی است یا خیر. اگر کوچکتر بود شرط درست است.
- =<: چک میکند آیا متغیر اول بزرگتر یا مساوی دومی است یا خیر. اگر بزرگتر یا مساوی بود شرط درست است.
- =>:چک میکند که آیا متغیر اول کوچکتر یا مساوی دومی است یا خیر. اگر کوچکتر یل مساوی بود شرط درست است.
عملگرهای انتسابی در پایتون
با فرض قبل داریم:
- =: خروجی دو متغیر را در دیگری میریزد بعنوان مثال c=a+b
- =+: این عملگر به صورت c += a می باشد که برابر با c = c+a است
- =-: این عملگر به صورت c -= a می باشد که برابر با c = c-a است
- =*: این عملگر به صورت c *= a می باشد که برابر با c = c*a است
- =/: این عملگر به صورت c /= a می باشد که برابر با c = c/a است
- =%: این عملگر به صورت c %= a می باشد که برابر با c = c%a است
- =**: این عملگر به صورت c **= a می باشد که برابر با c = c**a است
- =//: این عملگر به صورت c //= a می باشد که برابر با c = c//a است
عملگرهای بیتی
اگر فرض کنیم مقدار a برابر با ۶۰ و مقدار b برابر با ۱۳ می باشد خواهیم داشت:
1 2 3 4 5 6 7 |
a = 0011 1100 b = 0000 1101 ------------------ a&b = 0000 1100 a|b = 0011 1101 a^b = 0011 0001 ~a = 1100 0011 |
- &: عملگر باینری AND
- |: عملگر باینری OR
- ^: عملگر باینری XOR
- ~: عملگر مکمل یکه باینری (در اصل بیت ها را معکوس میکند)
- >>: عملگر باینری شیفت به چپ دهنده بیت ها
- <<: عملگر باینری شیفت به راست دهنده بیت ها
به مثال های بیشری در این باره توجه کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#!/usr/bin/python a = 60 # 60 = 0011 1100 b = 13 # 13 = 0000 1101 c = 0 c = a & b; # 12 = 0000 1100 print "Line 1 - Value of c is ", c c = a | b; # 61 = 0011 1101 print "Line 2 - Value of c is ", c c = a ^ b; # 49 = 0011 0001 print "Line 3 - Value of c is ", c c = ~a; # -61 = 1100 0011 print "Line 4 - Value of c is ", c c = a << 2; # 240 = 1111 0000 print "Line 5 - Value of c is ", c c = a >> 2; # 15 = 0000 1111 print "Line 6 - Value of c is ", c |
خروجی این اسکریپت به صورت زیر خواهد بود:
1 2 3 4 5 6 |
Line 1 - Value of c is 12 Line 2 - Value of c is 61 Line 3 - Value of c is 49 Line 4 - Value of c is -61 Line 5 - Value of c is 240 Line 6 - Value of c is 15 |
عملگرهای منطقی پایتون
در زبان پایتون بعضی عملگرها منطقی هستند که در ادامه به توضیح خواهم پرداخت:
- and: اگر هر دو عملوند درست باشند شرط درست است.
- or: اگر یکی از عملوند ها درست باشد شرط درست است(یکی از عملوند ها صفر نباشد شرط درست است.)
- not: بیان میکند که اگر شرط درست است عملگر not آن را نادرست میکند.
مثال: (not(a and b
عملگرهای عضوی پایتون
هنگام یافتن مقدار در دنباله استفاده میشود:
- in: وقتی درست است که متغیری را در دنباله ای پیدا کند و وقتی نادرست است که متغیر در دنباله یافت نشود.
- not in: اگر متغیری در دنباله یافت نشود شرط صحیح و اگر متغیر در دنباله یافت شود شرط ناصحیح است.
عملگر های شناسه در پایتون
متغیر های شناسه نیز موقعیت دو شی در حافظه را با هم مقایسه میکنند:
- is: شرط درست است اگر یک طرف عملگر به موقعیت شی مشابه دیگر اشاره کند و در غیر این صورت شرط نادرست است.
- is not: شرط نادرست است اگر متغیرها در یک طرف عملگر به شی مشابه دیگر اشاره کند و در غیر این صورت شرط درست است.
اولویت عملگر ها در پایتون
در ادامه به اولویت عملگر ها در پایتون به ترتیب از بالا به پایین میپردازم:
1 2 3 4 5 6 7 8 9 10 11 12 |
** ~ + - * / % // + - >> << & ^ | <= < > >= <> == != = %= /= -= += *= is is not not or and |
حال برای درک بهتر به مثال زیر توجه کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#!/usr/bin/python a = 20 b = 10 c = 15 d = 5 e = 0 e = (a + b) * c / d #( 30 * 15 ) / 5 print "Value of (a + b) * c / d is ", e e = ((a + b) * c) / d # (30 * 15 ) / 5 print "Value of ((a + b) * c) / d is ", e e = (a + b) * (c / d); # (30) * (15/5) print "Value of (a + b) * (c / d) is ", e e = a + (b * c) / d; # 20 + (150/5) print "Value of a + (b * c) / d is ", e |
1 2 3 4 |
Value of (a + b) * c / d is 90 Value of ((a + b) * c) / d is 90 Value of (a + b) * (c / d) is 90 Value of a + (b * c) / d is 50 |