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

۲۶۰۴۰ بازدید
آخرین به‌روزرسانی: ۶ آذر ۱۴۰۲
زمان مطالعه: ۶ دقیقه
عملگرها در پایتون

در این مطلب، انواع «عملگرها در پایتون» (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
لپ تاپ با عبارت 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 را باز می‌گرداند.

بر اساس رای ۱۰۰ نفر
آیا این مطلب برای شما مفید بود؟
شما قبلا رای داده‌اید!
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
Programiz
۱۶ thoughts on “عملگرها در پایتون (Operators) — به زبان ساده

سلام ببشخید وقتی سوال میشه که هویت داده رو پیدا کنید مثل داده ی”f”و”q” اینو چجوری میشه جدا پیدا کرد؟

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

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

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

عملگرهای افزایش و کاهش (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’

با تشکر

دو متغیر hوt داری اشتباهه میتونی بزرگشو بذاری

چون دستور input یک استرینگ میسازد این مورد پیش میاد و باید قبل از input از دستور float استفاده کنید تا به عدد تبدیل شود

پشت input ات یک ()float اضافه کن

سلام . تابع اینپوت هر چیزی که دریافت کند را به صورت استیرینگ ذخیره میکند . پس شما اگر از کاربر سنش را بخواهید و کاربر 10 را وارد کند . 10 را به صورت “10” یعنی یک استیرینگ ذخیره میکند . و شما اگر بخواهید این 10 را که استیرینگ است در یک عدد مثل 2 ضرب کنید با ارور مواجه میشوید (معلومه که عدد و استیرینگ اصلا از یک تایپ نیستن که بخان ضرب و تقسیم بشن!) پس شما اگر بخواهید جواب اینپوت خود رو به صورت اینتجر(همون عدد خودمون! البته عدد صحیح! اگر اعشاری بخواهید داستان فرق میکند…) ذخیره کنید . برای این کار کل اینپوت خود را در پرانتز میگذارید و اولی کلمه ی int رو میزارید . در این صورت هر چه که در ان اینپوت گرفته میشود به صورت یک عدد صحیح است . مثلا: i = input(“enter your name”)
در اینجا ما اگر 15 را وارد کنیم به صورت “15” ذهیره شده . برای اینکه به صورت اینتجر(عدد صحیح) خیره شود کد را به صورت زیر تغییر میدهیم:
i = int(input(“enter you name”)) اگر در این اینپوت 16 را وارد کنیم به صورت 16 ذخیره میشود و حالا میتوانیم متغیر i را (که در اینجا برای مثال 16 بود باهاش مثل یک عدد برخورد کنیم و ضرب و تقسیم کنیم و غیره
برای گرفتن عدد اعشاری هم باید بجای int کلمه ی float را بگذاریم(معمولا با همان عدد صحیح و int کارمون راه میافته ولی بدونید خوبه)
موفق باشی

سلام من یه سوال داشتم اگر امکانش باشه جواب بدید
این کد رو من وارد کردم و میخوام بدونم دلیل اینکه 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)

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

چون اعداد در آرایه‌های 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)

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

ممنون خیلی مفید بود..

ممنون خیلی مفید بود

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

لطفا اگر امکانش باشه این پنج تا رو توضیح بدید.
x = x & 5
x = x | 5
x = x ^ 5
x = x >> 5
x = x << 5
خیلی خیلی ممنون

سلام
عملگرهای بیتی (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) می‌باشند دوست عزیز.
موفق باشید.

نظر شما چیست؟

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