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

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

عملگر چیست ؟

عملگرها ( Operators ) در پایتون به نمادها و کلماتی گفته می‌شود که اعمال خاصی را روی داده‌ها و متغیرها انجام می‌دهند. برای مثال، عملگر “+” برای جمع دو عدد استفاده می‌شود. به مثال‌های زیر توجه کنید:

a = 5
b = 3
result = a + b
print(result)

در  مثال  فوق، متغیر a مقدار ۵ و متغیر b مقدار ۳ را ذخیره می‌کنند. عملگر “+” بین این دو متغیر قرار گرفته و وظیفه‌اش جمع کردن مقادیر آنهاست. نتیجه این عمل جمع در متغیر result ذخیره می‌شود و سپس با استفاده از print(result)، نتیجه یعنی ۸ چاپ می‌شود. عملگرها انواع مختلفی دارند مانند عملگرهای ریاضی، مقایسه‌ای، منطقی و غیره که هرکدام وظایف خاصی دارند.

به مثال بعدی در مورد عملگر ضرب توجه کنید :

a = 4
b = 5
result = a * b
print(result)

عملگر ضرب برای ضرب دو عدد استفاده می‌شود و عدد ۲۰ به‌عنوان خروجی چاپ می‌شود.

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

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

همان‌طور که در جدول فوق مشاهده می‌کنید، عملگرهای پایتون را می‌توان به ۱۰ دسته تقسیم نمود که این دسته‌ها عبارتند از:

1- عملگرهای محاسباتی ( Arithmetic )

2- عملگرهای تخصیص ( Assignment )

3- عملگرهای منفی یکانی ( Unary minus )

4- عملگرهای رابطه‌ای ( Relational )

5- عملگرهای منطقی ( Logical )

6- عملگرهای بولی ( Boolean )

7- عملگرهای بیتی ( Bitwise )

8- عملگرهای عضویت ( Membership )

9- عملگرهای همانی ( Identity )

10- عملگرهای ویژه ( Special )

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

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

  • جمع (+): دو عدد را با هم جمع می‌کند.
  • تفریق (-): یک عدد را از عدد دیگر کم می‌کند.
  • ضرب (*): دو عدد را در هم ضرب می‌کند.
  • تقسیم (/): یک عدد را بر عدد دیگر تقسیم می‌کند و نتیجه را به صورت اعشاری برمی‌گرداند.
  • تقسیم صحیح (//): یک عدد را بر عدد دیگر تقسیم می‌کند و نتیجه را به صورت صحیح (بدون اعشار) برمی‌گرداند.
  • توان ()‌**: یک عدد را به توان عدد دیگر می‌رساند.
  • باقیمانده تقسیم (%): باقیمانده تقسیم دو عدد را برمی‌گرداند.

در مثالهای زیر نحوه استفاده از عملگرهای محاسباتی شرح داده شده است :

ردیف نام عملگر کد خروجی شرح خروجی
1جمع (+)a = 10
b = 5
result = a + b
15جمع دو عدد 10 و 5 برابر 15 می‌باشد.
2تفریق (-)a = 10
b = 5
result = a – b
5تفریق دو عدد 10 و 5 برابر 5 می‌باشد.
3ضرب (*)a = 10
b = 5
result = a * b
50ضرب دو عدد 10 و 5 برابر 50 می‌باشد.
4تقسیم (/)a = 10
b = 5
result = a / b
2.0تقسیم دو عدد 10 و 5 برابر 2.0 می‌باشد.
5تقسیم صحیح (//)a = 10
b = 3
result = a // b
3تقسیم صحیح دو عدد 10 و 3 برابر 3 می‌باشد.
6باقیمانده تقسیم (%)a = 10
b = 3
result = a % b
1باقیمانده تقسیم دو عدد 10 و 3 برابر 1 می‌باشد.
7توان (**)a = 2
b = 3
result = a ** b
8توان دو عدد 2 و 3 برابر 8 می‌باشد.

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

عملگرهای انتساب در پایتون برای تخصیص مقادیر به متغیرها استفاده می‌شوند. این عملگرها علاوه بر تخصیص ساده، می‌توانند ترکیبی از عملگرهای ریاضی و انتساب باشند. به عبارت دیگر، آن‌ها به ما امکان می‌دهند که عملیات‌های ریاضی را انجام دهیم و نتیجه را به همان متغیر اختصاص دهیم. برخی از عملگرهای انتساب عبارتند از =، +=، -=، *=، /=، //=، %=، و **=.

مثال 1: عملگر =+

این عملگر مقدار سمت راست را به متغیر اضافه کرده و نتیجه را به همان متغیر اختصاص می‌دهد.

x = 5
x += 3 # معادل با x = x + 3
print(x)

مثال 2: عملگر =*

این عملگر مقدار سمت راست را در متغیر ضرب کرده و نتیجه را به همان متغیر اختصاص می‌دهد.

y = 4
y *= 2 # معادل با y = y * 2
print(y)

عملگرمنفی تک‌عملوندی

عملگر منفی تک‌عملوندی (unary minus) در پایتون برای تغییر علامت عددی به کار می‌رود. این عملگر به‌تنهایی بر روی یک عدد یا متغیر عددی اعمال می‌شود و علامت آن را معکوس می‌کند؛ به‌عبارت‌دیگر، عدد مثبت را به منفی و عدد منفی را به مثبت تبدیل می‌کند.

مثال:

در این مثال، متغیر a مقدار مثبت ۵ دارد و با استفاده از عملگر - (unary minus)، علامت آن تغییر داده می‌شود و به -۵ تبدیل می‌گردد. سپس یک عدد منفی به متغیر b اختصاص داده شده و دوباره با استفاده از عملگر -، علامت آن به مثبت تغییر می‌کند.

ردیفنام عملگرکدخروجیشرح خروجی
1تغییر علامت به منفیa = 5
negative_a = -a
-5عدد مثبت 5 به منفی 5 تغییر می‌کند.
2تغییر علامت به مثبتb = -10
positive_b = -b
10عدد منفی 10 به مثبت 10 تغییر می‌کند.

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

عملگرهای منطقی (Logical Operators) برای ترکیب و ارزیابی شروط بولی استفاده می‌شوند و نتیجه‌ی آن‌ها یک مقدار بولی (True یا False) است. این عملگرها شامل and، or و not هستند. عملگر and زمانی True برمی‌گرداند که هر دو شرط True باشند؛ عملگر or زمانی True برمی‌گرداند که حداقل یکی از شروط True باشد؛ و عملگر not نتیجه‌ی شرط را معکوس می‌کند، یعنی True را به False و False را به True تبدیل می‌کند. این عملگرها به‌طور گسترده‌ای در ساختارهای کنترلی مانند دستورات if و while برای ایجاد منطق پیچیده‌تر استفاده می‌شوند.

عملگرهای رابطه‌ای

عملگرهای رابطه‌ای (Relational Operators) برای مقایسه‌ی دو مقدار استفاده می‌شوند و نتیجه‌ی آن‌ها یک مقدار بولی (True یا False) است. این عملگرها شامل == (برابر است با)، != (مساوی نیست با)، > (بزرگتر از)، < (کوچکتر از)، >= (بزرگتر یا مساوی)، و <= (کوچکتر یا مساوی) می‌باشند. این عملگرها به ما امکان می‌دهند که روابط بین مقادیر مختلف را بررسی کنیم. برای مثال، می‌توانیم بررسی کنیم که آیا دو مقدار برابر هستند یا اینکه یکی از دیگری بزرگتر یا کوچکتر است. این عملگرها معمولاً در دستورات شرطی مانند if و while استفاده می‌شوند.


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


عملگرهای بیتی (Bitwise Operators) برای انجام عملیات سطح پایین بر روی اعداد در سطح بیت استفاده می‌شوند. این عملگرها شامل AND (&)، OR (|)، XOR (^)، NOT (~)، شیفت چپ (<<)، و شیفت راست (>>) هستند. عملگرهای بیتی به شما امکان می‌دهند که بیت‌های یک عدد را مستقیماً دستکاری کنید. برای مثال، عملگر & هر بیت از دو عدد را مقایسه کرده و اگر هر دو بیت 1 باشند، نتیجه 1 خواهد بود. این عملگرها در برنامه‌های سطح پایین و بهینه‌سازی‌های خاص بسیار کاربرد دارند.

مقایسه عملگرهای منطقی ، بیتی و بولی

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

برای درک بهتر تفاوت این سه دسته از عملگرها و همچنین کاربرد آن‌ها، مثال‌های جدول زیر را بررسی کنید.

ردیفنوع عملگرنام عملگرمقداردهی اولیه و اجرا نتیجه و توضیحات
1عملگر منطقیANDa = True
b = False
result = a and b
result = False. زیرا b مقدار False دارد و عملگر AND تنها زمانی True می‌شود که هر دو مقدار True باشند.
2عملگر رابطه‌ایبزرگتر ازx = 10
y = 5
result = x > y
result = True. زیرا x بزرگتر از y است.
3عملگر بیتیAND بیتیm = 5  # 0b0101
n = 3  # 0b0011
result = m & n
result = 1. زیرا عملگر AND بیتی بر روی بیت‌های m و n اعمال شده و تنها بیت مشترک در حالت 1 باقی می‌ماند.

تقدم عملگرها

فرض کنید عبارت زیر را داریم:

a = 4
b = 6
c = 2
e = a + b / c

حاصل عبارت فوق چند است؟ ۷ یا ۵؟

برای پاسخ به این سوال، باید مفهوم تقدم عملگرها ( Operator Precedence ) را در پایتون درک کنیم. در پایتون، هر عملگر دارای اولویتی است که تعیین می‌کند کدام عملگر زودتر اجرا شود. عملگرهای با اولویت بالاتر پیش از عملگرهای با اولویت پایین‌تر اجرا می‌شوند.

در اینجا عملگر / (تقسیم) اولویت بالاتری نسبت به عملگر + (جمع) دارد. بنابراین، ابتدا تقسیم انجام می‌شود:

b / c = 6 / 2 = 3

سپس نتیجه تقسیم با a جمع می‌شود:

e = a + 3 = 4 + 3 = 7

بنابراین، حاصل عبارت فوق ۷ است، نه ۵.

چند مثال دیگر:

مثال اول :

x = 9
y = 4
z = 2
result = x - y * z

در این مثال، عملگر * (ضرب) اولویت بالاتری نسبت به - (تفریق) دارد. بنابراین، ابتدا ضرب انجام می‌شود که حاصل ضرب می شود 8.

سپس نتیجه ضرب از x کم می‌شود:

result = x - 8 = 9 - 8 = 1

مثال دوم:

p = 5
q = 3
r = 2
result = p + q * r


در این مثال، عملگر * (ضرب) اولویت بالاتری نسبت به + (جمع) دارد. بنابراین، ابتدا ضرب انجام می‌شود:

q * r = 3 * 2 = 6

سپس نتیجه ضرب با p جمع می‌شود:

result = p + 6 = 5 + 6 = 11


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



تقدم عملگرها مشخص می‌کند که کدام عملگر ابتدا اجرا شود، اما ترتیب ارزیابی ( Associativity ) مشخص می‌کند که اگر چند عملگر با تقدم یکسان در یک عبارت باشند، از چپ به راست (Left to Right – LR) یا از راست به چپ (Right to Left – RL) ارزیابی شوند.
بیشتر عملگرهای ریاضی مانند +, -, *, / ترتیبی چپ به راست (LR) دارند. به عنوان مثال:

result = 10 - 2 - 1
print(result)

اینجا ابتدا عدد 2 از 10 کسر می‌شود و سپس نتیجه با 1- جمع می‌شود:

result = 8 - 1
print(result)


اما عملگرهای توان (**) ترتیبی راست به چپ (RL) دارند. به عنوان مثال:

result = 4 ** 3 ** 2
print(result)


اینجا ابتدا 2 به توان 3 انجام می‌شود و سپس نتیجه به توان 9 می‌رسد:

result = 2 ** 9
print(result)


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

# درخواست دمای سلسیوس از کاربر
celsius_input = input("Please enter the temperature in Celsius: ")
# تبدیل ورودی به عدد اعشاری
celsius_temperature = float(celsius_input)
# تبدیل دما به فارنهایت
fahrenheit_temperature = (celsius_temperature * 9/5) + 32
# نمایش دمای تبدیل شده
print("The temperature in Fahrenheit is:", fahrenheit_temperature)

توضیحات کد:

  1. درخواست دمای سلسیوس از کاربر:
    • با استفاده از دستور input، دمای سلسیوس از کاربر درخواست می‌شود و به صورت رشته (متن) ذخیره می‌شود.
    • celsius_input متغیری است که مقدار وارد شده توسط کاربر را نگهداری می‌کند.
  2. تبدیل ورودی به عدد اعشاری:
    • مقدار ورودی که به صورت رشته است، با استفاده از دستور float به عدد اعشاری تبدیل می‌شود.
    • celsius_temperature متغیری است که دمای سلسیوس به صورت عددی را نگهداری می‌کند.
  3. تبدیل دما به فارنهایت:
    • دمای سلسیوس به فارنهایت با استفاده از فرمول (celsius_temperature * 9/5) + 32 تبدیل می‌شود.
    • fahrenheit_temperature متغیری است که دمای فارنهایت را نگهداری می‌کند.
  4. نمایش دمای تبدیل شده:
    • با استفاده از دستور print، دمای فارنهایت محاسبه شده نمایش داده می‌شود.
پرسش های متداول

پرسش های متداول

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

عملگرهای محاسباتی در پایتون شامل عملیات‌های ریاضیاتی پایه‌ای هستند. این عملگرها عبارتند از:

  • + برای جمع
  • - برای تفریق
  • * برای ضرب
  • / برای تقسیم
  • // برای تقسیم صحیح
  • % برای باقیمانده تقسیم
  • ** برای توان

تفاوت بین عملگرهای == و = چیست؟

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

تقدم عملگرها در عبارت 3 + 4 * 2 چگونه است؟

در پایتون، عملگر ضرب (*) تقدم بیشتری نسبت به جمع (+) دارد. بنابراین ابتدا ضرب انجام می‌شود و سپس جمع. در عبارت 3 + 4 * 2، ابتدا 4 * 2 محاسبه می‌شود که نتیجه 8 است و سپس 3 + 8 محاسبه می‌شود که نتیجه 11 است.

عملگرهای بیتی درپایتون را نام ببرید وبرای هریک مثالی بزنید.

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

  • & (AND بیتی)
  • | (OR بیتی)
  • ^ (XOR بیتی)
  • ~ (NOT بیتی)
  • << (شیفت به چپ)
  • >> (شیفت به راست)

به عنوان مثال، فرض کنید a = 5 که به صورت باینری 0101 است و b = 3 که به صورت باینری 0011 است. وقتی a & b انجام می‌دهیم، نتیجه 0001 (یعنی 1) است. وقتی a | b انجام می‌دهیم، نتیجه 0111 (یعنی 7) است و وقتی a ^ b انجام می‌دهیم، نتیجه 0110 (یعنی 6) است.

در عبارت 5 + 3 * 2 ** 2 ترتیب ارزیابی عملگرها چگونه است؟

تقدم عملگرها به ترتیب توان (**)، ضرب (*) و سپس جمع (+) است. بنابراین ابتدا توان محاسبه می‌شود، سپس ضرب و در نهایت جمع. در عبارت 5 + 3 * 2 ** 2، ابتدا 2 ** 2 محاسبه می‌شود که نتیجه 4 است، سپس 3 * 4 محاسبه می‌شود که نتیجه 12 است و در نهایت 5 + 12 محاسبه می‌شود که نتیجه 17 است.

یادگیری تحلیل داده را از امروز شروع کنید!

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

دوره جامع دیتا ساینس و ماشین لرنینگ