برنامه نویسی ۴۰۳۲۶ بازدید

در این مطلب، انواع «عملگرها در پایتون» (Python Operators)، نحو و چگونگی استفاده از آن‌ها همراه با مثال‌هایی آموزش داده شده است. برای مطالعه پیرامون انواع متغیرها در «زبان برنامه‌نویسی پایتون» (Python Programming Language) مطلب «انواع متغیرها در پایتون — به زبان ساده» توصیه می‌شود. در مطلب «انواع داده در پایتون (Data Types) — به زبان ساده» نیز انواع داده موجود در پایتون مورد بررسی قرار گرفته و در «تبدیل نوع در پایتون (Type Conversion) — به زبان ساده» روش تبدیل انواع داده‌ها به یکدیگر در پایتون شرح داده شده است.

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

«عملگرها» (Operators) سمبل‌های خاصی در پایتون هستند که پردازش‌های حسابی و منطقی را انجام می‌دهند. مثال زیر در این راستا شایان توجه است.

>>> 2+3
5

در اینجا، + عملگری است که عمل جمع را انجام می‌دهد. ۲ و ۳ «عملوندها» (Operands) هستند و ۵ خروجی عملیات است.

عملگرهای حسابی

«عملگرهای حسابی» (Arithmetic Operators) برای انجام پردازش‌های ریاضی مانند جمع، تفریق، ضرب و دیگر موارد استفاده می‌شود. در جدول زیر، کلیه عملگرهای حسابی موجود در پایتون ارائه و عملکرد آن‌ها همراه با مثالی شرح داده شده است.

عملگر شرح عملکرد مثال
+ جمع کردن دو عمل‌وند یا عمل یگانی مثبت x + y
+2
تفریق عمل‌وند سمت راست از سمت چپی یا عمل یگانی منفی x – y
2-
* ضرب دو عمل‌وند x * y
/ تقسیم کردن عملوند سمت چپ بر سمت راستی x / y
% عملیات پیمانه‌ای (محاسبه باقی‌مانده تقسیم عملوند سمت چپ بر سمت راستی) (باقی‌مانده x % y (x/y
// خارج قسمت صحیح (این تقسیم، خارج قسمت صحیح را در خروجی ارائه می‌کند) x // y
** به توان y رساندن متغیر x  (x به توان y شده) x**y

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

x = 15
y = 4

# Output: x + y = 19
print('x + y =',x+y)

# Output: x - y = 11
print('x - y =',x-y)

# Output: x * y = 60
print('x * y =',x*y)

# Output: x / y = 3.75
print('x / y =',x/y)

# Output: x // y = 3
print('x // y =',x//y)

# Output: x ** y = 50625
print('x ** y =',x**y)

خروجی حاصل از اجرای برنامه بالا به صورت زیر خواهد بود.

x + y = 19
x - y = 11
x * y = 60
x / y = 3.75
x // y = 3
x ** y = 50625

عملگرهای مقایسه

«عملگرهای مقایسه» (Comparison Operators) برای انجام مقایسه مقادیر مورد استفاده قرار می‌گیرند. متناسب با شرط، خروجی مقایسه برابر با True یا False خواهد بود. در جدول زیر، عملگرهای مقایسه در پایتون ارائه شده‌اند.

عملگر شرح عملکرد مثال
< بزرگ‌تر است از (زمانی درست است که عمل‌وند سمت چپ بزرگ‌تر از سمت راستی باشد.) x > y
> کوچک‌تر است از (زمانی درست است که عمل‌وند سمت چپ کوچک‌تر از سمت راستی باشد.) x < y
== برابر است با (زمانی درست است که هر دو عمل‌وند برابر باشند.) x == y
=! نامساوی (زمانی درست است که هر دو عمل‌وند برابر نباشند.) x != y
=< بزرگ‌تر یا مساوی (زمانی درست است که عمل‌وند سمت چپ، بزرگ‌تر یا مساوی سمت راستی باشد.) x >= y
=> کوچک‌تر یا مساوی (زمانی درست است که عمل‌وند سمت چپ، کوچک‌تر یا مساوی سمت راستی باشد.) x <= y

مثال ۲: عملگرهای مقایسه در پایتون

x = 10
y = 12

# Output: x > y is False
print('x > y  is',x>y)

# Output: x < y is True
print('x < y  is',x<y)

# Output: x == y is False
print('x == y is',x==y)

# Output: x != y is True
print('x != y is',x!=y)

# Output: x >= y is False
print('x >= y is',x>=y)

# Output: x <= y is True
print('x <= y is',x<=y)

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

«عملگرهای منطقی» (Logical Operators)، در واقع or ،and و not هستند.

عملگر شرح عملکرد مثال
and در صورتی که هر دو عمل‌وند درست (True) باشند، درست (True) است. x and y
or در صورتی درست (True) است که یکی از عمل‌وندها درست (True) باشد. x or y
not در صورتی درست (True) است که عمل‌وند غلط (False) باشد. not x

مثال ۳: عملگرهای منطقی در پایتون

x = True
y = False

# Output: x and y is False
print('x and y is',x and y)

# Output: x or y is True
print('x or y is',x or y)

# Output: not x is False
print('not x is',not x)

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

«عملگرهای بیتی» (Bitwise Operators) روی عمل‌وندهایی از نوع رشته یا ارقام «دودویی» (Binary) کار می‌کنند. همانطور که از نام این نوع عملگرها مشخص است، پردازش را بیت به بیت انجام می‌دهند. برای مثال، ۲ در حالت دودویی برابر با ۱۰ و ۷ برابر با ۱۱۱ است. در جدول زیر، x=۱۰ (در حالت ۱۰۱۰ ۰۰۰۰) و (y = ۴ (۰۱۰۰ ۰۰۰ است.

عملگر شرح عملکرد مثال
& AND بیتی (و بیتی) x& y = 0 (0000 0000)
| OR بیتی (یا بیتی) x | y = 14 (0000 1110)
~ Bitwise NOT (نقیض بیتی) ~x = -11 (1111 0101)
^ XOR بیتی x ^ y = 14 (0000 1110)
<< شیفت به راست بیتی (جا به جایی به راست بیتی) x>> 2 = 2 (0000 0010)
>> شیفت به چپ بیتی (جا به جایی به چپ بیتی) x<< 2 = 40 (0010 1000)

عملگرهای تخصیص

«عملگرهای تخصیص» (Assignment Operators) در پایتون برای تخصیص مقدار به یک متغیر مورد استفاده قرار می‌گیرند. a = 5 یک عملگر تخصیص ساده است که مقدار ۵ را در سمت راست به متغیر a در سمت چپ تخصیص می‌دهد. عملگرهای ترکیبی متعددی مانند a +=5 در پایتون وجود دارند که به متغیر اضافه می‌شوند و بعدتر به طور مشابه تخصیص پیدا می‌کند. آنچه پیش‌تر بیان شد، در واقع برابر با a = a + 5 است. در ادامه، عملگرهای تخصیص در پایتون ارائه شده‌اند.

عملگر مثال برابر است با
= x = 5 x = 5
=+ x += 5 x = x + 5
=- x -= 5 x = x – 5
=* x *= 5 x = x * 5
=/ x /= 5 x = x / 5
=% x %= 5 x = x % 5
=// x //= 5 x = x // 5
=** x **= 5 x = x ** 5
=& x &= 5 x = x & 5
=| x |= 5 x = x | 5
=^ x ^= 5 x = x ^ 5
=<< x >>= 5 x = x >> 5
=>> x <<= 5 x = x << 5

عملگرهای خاص

زبان پایتون انواع خاصی از عملگرها مانند عملگر همانی (Identity Operator) یا عملگر عضویت دارد. این موارد در ادامه با مثال‌هایی تشریح شده‌اند.

عملگرهای همانی

is و is not عملگرهای همانی در پایتون هستند. این عملگرها برای بررسی اینکه آیا دو مقدار (یا متغیر) در بخش مشابهی از حافظه قرار دارند یا نه مورد استفاده قرار می‌گیرند. مساوی بودن دو متغیر، به معنای آن نیست که همانی هستند.

عملگر شرح عملکرد مثال
is در صورتی درست (True) است که عمل‌وندها همانی باشند (به شی مشابهی ارجاع داشته باشند). x is True
is not در صورتی درست (True) است که عمل‌وندها همانی نباشند (به شی مشابهی ارجاع نداشته باشند). x is not True

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

x1 = 5
y1 = 5
x2 = 'Hello'
y2 = 'Hello'
x3 = [1,2,3]
y3 = [1,2,3]

# Output: False
print(x1 is not y1)

# Output: True
print(x2 is y2)

# Output: False
print(x3 is y3)

در اینجا، می‌توان مشاهده کرد که x1 و y1 اعداد صحیحی با مقادیر مشابه هستند، بنابراین، هم برابر و هم همانی هستند. مساله مشابهی برای x2 و y2 نیز وجود دارد (رشته‌ها). اما، x3 و y3 لیست هستند. این موارد مساوی و غیر همانی هستند. این امر بدین دلیل است که مفسر آن‌ها را به طور جداگانه در حافظه قرار می‌دهد، اگرچه با هم مساوی هستند.

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

in و not in عملگرهای عضویت در پایتون هستند. این عملگرها برای بررسی اینکه یک مقدار یا متغیر در یک توالی پیدا می‌شود یا نه مورد استفاده قرار می‌گیرند (رشته، لیست، مجموعه و دیکشنری).

در یک دیکشنری، فقط می‌توان وجود یا عدم وجود یک کلید را بررسی کرد، نه یک مقدار را. در جدول زیر، عملگرهای عضویت همراه با مثال‌هایی ارائه شده‌اند.

عملگر شرح عملکرد مثال
in در صورتی صحیح است که مقدار/متغیر در توالی پیدا شود. 5 in x
not in در صورتی صحیح است که مقدار/متغیر در توالی پیدا نشود. 5 not in x

مثال ۵: عملگرهای عضویت در پایتون

x = 'Hello world'
y = {1:'a',2:'b'}

# Output: True
print('H' in x)

# Output: True
print('hello' not in x)

# Output: True
print(1 in y)

# Output: False
print('a' in y)

در اینجا، ‘H’ در x قرار دارد، اما ‘hello’ در x نیست (به خاطر داشته باشید که پایتون به حروف بزرگ و کوچک حساس است). به طور مشابه، ۱ کلید و a مقدار در دیکشنری y است. بنابراین ‘a’ in y خروجی False را باز می‌گرداند.

اگر نوشته بالا برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

^^

بر اساس رای ۶۲ نفر
آیا این مطلب برای شما مفید بود؟
شما قبلا رای داده‌اید!
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.

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

11 نظر در “عملگرها در پایتون (Operators) — به زبان ساده

  • سلام، توی php من برای اضافه کردن به متغیر از ++ استفاده میکنم اما توی پایتون نمیشه این کار رو انجام داد، لطفا راهنمایی کنید ممنون

    1. با سلام و احترام؛

      صمیمانه از همراهی شما با مجله فرادرس و ارائه بازخورد سپاس‌گزاریم.

      عملگرهای افزایش و کاهش (Increment و Decrement) در پایتون وجود ندارند. به جای آن‌ها می‌توانید از سینتکس ‎ +=‎یا ‎-=‎ استفاده کنید. برای متغیرهای شمارشی در حلقه‌ها هم با استفاده از گزاره in range می‌توانید بازه شروع تا پایان و گام‌ حرکت را مشخص کنید. برای مثال:

      for i in range(10, 0, -1): print(i)

      در قطعه کد بالا آرگومان یا پارامتر سوم یعنی ‎ -۱مربوط به گام حرکت است و با ‎- – i‎ برابری می‌کند. همچنین مثلاً اگر نیاز داشتید مثلاً متغیر x را یک واحد افزایش دهید، می‌توانید از گزاره x += 1 به جای x++‎ استفاده کنید با برای کاهش x هم می‌توان از x -= 1 استفاده کرد.

      برای شما آرزوی سلامتی و موفقیت داریم.

  • سلام خسته نباشید

    با تشکر از مقاله خوبتون

    یک سوال داشتم

    من کد زیر رو وارد کردم

    t = 0
    p = 0
    ro = 0
    h = 0
    h = input(‘h= ‘)
    t = 388.15 – 0.0065*h

    print(“h”)

    ولی خطای زیر رو میده علت چی هست ؟

    TypeError: can’t multiply sequence by non-int of type ‘float’

    با تشکر

  • سلام من یه سوال داشتم اگر امکانش باشه جواب بدید
    این کد رو من وارد کردم و میخوام بدونم دلیل اینکه 60 به توان 33 رو صفر نمایش میده چیه؟؟؟؟؟

    arr1 = np.array([10, 20, 30, 40, 50, 60])
    arr2 = np.array([3, 5, 6, 8, 2, 33])

    # newarr = np.power(arr1, arr2)
    newarr = arr1**arr2

    print(newarr)

    1. صمیمانه از همراهی شما با مجله فرادرس و ارائه بازخورد سپاس‌گزاریم.

      چون اعداد در آرایه‌های arr1 و arr2 از نوع عدد صحیح هستند، این آرایه‌ها با نوع داده int64 ذخیره می‌شوند و بنابراین نوع آرایه newarr نیز int64 خواهد بود. اما حاصل ۶۰ به توان ۳۳ عدد بزرگی است و نمی‌توان آن را در یک متغیر با نوع داده int64 ذخیره کرد. بنابراین باید نوع داده آرایه‌ها را تغییر داد و مثلاً از نوع داده اعشاری (Floating Point) استفاده کرد. یک راه برای انجام این کار و رفع این مشکل به این صورت است که اعداد را در آرایه‌ها به صورت اعشاری ذخیره کنیم. یعنی مثلاً عدد 10 را در آرایه arr1 به صورت 10.0 ذخیره کنیم:

      import numpy as np

      arr1 = np.array([10.0, 20.0, 30.0, 40.0, 50.0, 60.0])
      arr2 = np.array([3.0, 5.0, 6.0, 8.0, 2.0, 33.0])

      # newarr = np.power(arr1, arr2)
      newarr = arr1**arr2

      print(newarr.dtype)

      print(newarr)

      برای شما آرزوی سلامتی و موفقیت داریم.‌

  • سلام
    ببخشید شما برای نمایش کد های پایتون در این صفحه چکار کردین؟ اگر من بخوام این کد هارو در وردپرس نمایش بدم باید چکار کنم تا ظاهرش دقیقا مثل کاری که شما انجام دادین بشه و گزینه کپی کردن هم داشته باشه

    1. سلام
      عملگرهای بیتی (https://blog.faradars.org/%D8%B9%D9%85%D9%84%DA%AF%D8%B1%D9%87%D8%A7-%D8%AF%D8%B1-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86/#%D8%B9%D9%85%D9%84%DA%AF%D8%B1%D9%87%D8%A7%DB%8C_%D8%A8%DB%8C%D8%AA%DB%8C) می‌باشند دوست عزیز.
      موفق باشید.

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد.