logo
همه

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

Unes Moradi - 1404/1/10
banner image

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


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

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

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


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

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


  • + (جمع): برای جمع کردن دو مقدار، متغیر، لیست و غیره استفاده می‌شود. در این مثال عبارت بعد از # توضیح خروجی هر عملیات است:

a = 10 + 5  

# 15


str1 = "پایتون " + "زبانی قدرتمند"  

#  "پایتون زبانی قدرتمند"


list1 = [1, 2] + [3, 4]  

# [1, 2, 3, 4]


  • (تفریق): این عملگر علاوه‌بر تفریق دو عدد، می‌تواند برای منفی کردن یک عدد نیز استفاده شود:

a = 15

b = 10

result = a - b

print(result)  # خروجی: 5



  • (ضرب): این عملگر در پایتون فراتر از ضرب ساده ریاضی عمل کرده و برای تکرار رشته‌ها و لیست‌ها نیز استفاده می‌شود:

d = 4 * 5

 # 20


str2 = "پایتون " * 3 

 # "پایتون پایتون پایتون "


list2 = [1, 2] * 3 

# [1, 2, 1, 2, 1, 2]


  • / (تقسیم): حتی اگر هر دو عملوند عدد صحیح باشند، این عملگر همیشه تقسیم را با اعشار انجام می‌دهد. این یکی از تغییرات مهم در پایتون ۳ نسبت به پایتون ۲ است:

e = 20 / 4  # نتیجه: 5.0

f = 15 / 2  # نتیجه: 7.5


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

g = 20 // 4  # نتیجه: 5

h = 15 // 2  # نتیجه: 7

i = -15 // 2  # -8 (به سمت عدد کمتر گرد می‌شود)


  • % (باقی‌مانده): این اپراتور باقی‌مانده تقسیم را محاسبه می‌کند و در بسیاری از الگوریتم‌ها، مخصوصاً در تشخیص اعداد زوج و فرد یا مضارب خاص کاربرد دارد:

j = 15 % 4  # نتیجه: 3

k = 20 % 5  # نتیجه: 0



  • ** (توان): با این عملگر می‌توانیم هر عدد را به توان دلخواه برسانیم. این اپراتور نسبت به کتابخانه math.pow() کارآمدتر است:

l = 2 ** 3  # نتیجه: 8

m = 10 ** 2  # نتیجه: 100

n = 16 ** 0.5  # 4.0 (جذر 16)


عملگرهای مقایسه‌ای (Comparison Operators)

عملگرهای مقایسه‌ای در پایتون برای مقایسه دو مقدار یا متغیر به کار رفته و نتیجه را به صورت بولین (True یا False) بازمی‌گردانند. 


عملگر

عملکرد

مثال

==

بررسی برابری

x == y

!=

بررسی نامساوی بودن

x != y

>

بزرگ‌تر بودن

x > y

<

کوچک‌تر بودن

x < y

>=

بزرگ‌تر یا مساوی

x >= y

<=

کوچک‌تر یا مساوی

x <= y


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


  • == (برابری): برابری دو مقدار را بررسی می‌کند. در نظر داشته باشید که == مقادیر را مقایسه می‌کند، نه مرجع حافظه را:

x = (10 == 10)  # نتیجه: True

y = (10 == "10")  # نتیجه: False (مقایسه نوع‌های مختلف)

z = ([1, 2] == [1, 2])  # نتیجه: True (مقایسه محتوا)


  • != (نامساوی): عکس مورد قبلی عمل می‌کند و زمانی True برمی‌گرداند که دو مقدار با هم برابر نباشند:

a = (5 != 10)  # نتیجه: True

b = ("پایتون" != "پایتون") 

 # نتیجه: False


  • > و < (بزرگ‌تر و کوچک‌تر): این عملگرها برای مقایسه مقادیر استفاده می‌شوند. در رشته‌ها، مقایسه بر اساس ترتیب الفبایی صورت می‌گیرد:

c = (10 > 5)  # نتیجه: True

d = (3 < 2)  # نتیجه: False

e = ("ب" > "الف") 

 # نتیجه: True (بر اساس ترتیب الفبایی)


  • >= و <= (بزرگ‌تر یا مساوی، کوچک‌تر یا مساوی)**: این عملگرها مشابه عملگرهای > و < هستند، با این تفاوت که در صورت برابری دو مقدار نیز True برمی‌گردانند:

f = (10 >= 10)  # نتیجه: True

g = (5 <= 3)  # نتیجه: False



کاربرد عملگرهای مقایسه‌ای در شرط‌ها 

یکی از ویژگی‌های قدرتمند پایتون امکان زنجیره‌ای کردن مقایسه‌هاست. به لطف این ویژگی می‌توانیم شرط‌های مختلفی را بررسی کرده و بر اساس نتیجه‌ آن‌ها، بخش‌های خاصی از کد را اجرا کنیم:

age = 25

# بررسی اینکه آیا سن بین 18 و 30 است

if 18 <= age <= 30:

    print("جوان هستید")


این نوع نگارش با جلوگیری از تکرار متغیرها خوانایی کد را افزایش می‌دهد. برای نگارش کد مشابه در زبان‌های دیگر مثل جاوا یا++C باید از عملگر منطقی AND استفاده کرد که خوانایی کمتری دارد.



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

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


عملگر

عملکرد

مثال

and

درست اگر هر دو شرط برقرار باشند

(x > 5 and y < 20)

or

درست اگر حداقل یکی از شرط‌ها برقرار باشد

(x > 5 or y < 20)

not

معکوس کردن مقدار بولی

not(x > 5)



  • and (و): این عملگر بررسی می‌کند که آیا هر دو شرط برقرار هستند یا خیر. بنابراین نتیجه تنها در صورتی True خواهد بود که هر دو شرط جاری باشند:

username = "admin"

password = "1234"

if username == "admin"and password == "1234":

    print("ورود موفقیت‌آمیز")


  • or (یا): این عملگر زمانی True برمی‌گرداند که حداقل یکی از عبارات True باشد.

a = -5

b = 10

if a > 0 or b > 0:

    print("حداقل یکی از اعداد مثبت است")  

# خروجی: حداقل یکی از اعداد مثبت است


  • not (نقیض): نتیجه شرط را معکوس می‌کند؛ یعنی True را به False و False را به True تبدیل می‌کند:

a = 5

if not a < 0:

    print("عدد منفی نیست")  

# خروجی: عدد منفی نیست



نکته‌ای که اغلب برنامه‌نویسان مبتدی از آن غافل می‌شوند، این است که عملگرهای منطقی در پایتون از ارزیابی کوتاه (short-circuit evaluation) استفاده می‌کنند. برای مثال در عبارت x and y، اگر x برابر False باشد، دیگر y بررسی نمی‌شود و نتیجه مستقیماً False خواهد بود. این ویژگی برای بهینه‌سازی و جلوگیری از خطاهای احتمالی بسیار مفید است.


عملگرهای انتساب (Assignment Operators)

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


عملگر

عملکرد

مثال

=

مقداردهی اولیه

x = 10

+=

جمع و انتساب

x += 5 (معادل x = x + 5)

-=

تفریق و انتساب

x -= 3 (معادل x = x - 3)

*=

ضرب و انتساب

x *= 2 (معادل x = x * 2)

/=

تقسیم و انتساب

x /= 4 (معادل x = x / 4)

//=

تقسیم صحیح و انتساب

x //= 2 (معادل x = x // 2)

%=

باقی‌مانده و انتساب

x %= 3 (معادل x = x % 3)

**=

توان و انتساب

x **= 2 (معادل x = x ** 2)



  • = (مقداردهی): ساده‌ترین عملگر انتساب است که مقدار سمت راست را به متغیر سمت چپ اختصاص می‌دهد:

x = 10

name = "Ali"


  • +=، -=، *=، /= و سایر عملگرهای ترکیبی: عمل انتساب را با یکی از عملگرهای محاسباتی ترکیب می‌کنند. به عنوان مثال، x += 5 معادل x = x + 5 است:

x = 10

x += 5  # x =15

x -= 3  # x = 12

x *= 2  # x = 24

x /= 4  # x = 6.0


کاربرد عملگرهای انتساب در برنامه‌های واقعی بسیار گسترده است. برای مثال در شمارش تعداد تکرار یک کلمه در متن یا جمع‌آوری امتیازات در یک بازی، استفاده از += ساده‌ترین و کاربردی‌ترین روش ممکن خواهد بود:

# شمارش تعداد کلمات در یک متن

word_counter = {}

text = "پایتون زبانی قدرتمند است. پایتون برای هوش مصنوعی مناسب است."

words = text.split()


for word in words:

    if word in word_counter:

        word_counter[word] += 1

    else:

        word_counter[word] = 1


print(word_counter)  # نتیجه: {'پایتون': 2, 'زبانی': 1, 'قدرتمند': 1, 'است.': 2, 'برای': 1, 'هوش': 1, 'مصنوعی': 1, 'مناسب': 1}




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

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

مثلا تبدیل باینری دو عدد 12 و 5 به ترتیب 1100 و 0101 است؛ بنابراین محاسبه بر مبنای آنها انجام می‌‌شود. در ادامه هر یک از این عملگرها را به طور کامل بررسی می‌کنیم.


عملگر

عملکرد

&

1 اگر هر دو بیت باشند

|

1 اگر یکی از بیت‌ها 1 باشد

~

هر بیت را معکوس می‌کند

^

1 اگر فقط یک بیت 1 باشد

><< و >>

شیفت به طرفین


  • & (AND بیتی): عملگر AND بیتی که با نماد & نمایش داده می‌شود، بیت‌های متناظر دو عدد را با هم مقایسه می‌کند. اگر هر دو بیت 1 باشند، نتیجه 1 خواهد بود؛ در غیر این صورت نتیجه 0 است. در واقع این عملگر یک عملیات منطقی AND را در سطح بیت‌ها انجام می‌دهد:

a = 60    # 0011 1100 در مبنای دو

b = 13    # 0000 1101 در مبنای دو

print(a & b)  # نتیجه: 12 0000 1100


نتیجه اجرای این کد عدد 12 خواهد بود چون نمایش باینری آن 0000 1100 است. 


  • | (OR بیتی): اگر حداقل یکی از بیت‌ها 1 باشد، نتیجه 1 خواهد بود:

a = 60    # 0011 1100 در مبنای دو

b = 13    # 0000 1101 در مبنای دو

print(a | b)    # 61 (0011 1101)


  • ^ (XOR بیتی): اگر فقط یکی از بیت‌ها 1 باشد (نه هر دو)، نتیجه 1 خواهد بود:

a = 60    # 0011 1100 در مبنای دو

b = 13    # 0000 1101 در مبنای دو

print(a ^ b)    #  49 (0011 0001)


  • ~ (نقیض بیتی): هر بیت را معکوس می‌کند:

a = 60    # 0011 1100 در مبنای دو

print(~a)    # نتیجه: -61

نتیجه این عملگر برابر است با منفی ۶۱ چون پایتون از نمایش مکمل دو برای اعداد منفی استفاده می‌کند. در این نمایش نقیض هر عدد، برابر است با «منفی آن عدد منهای یک».


  • << و >> (شیفت بیتی چپ و راست): این عملگرها بیت‌های هر عدد صحیح را به سمت چپ یا راست جابه‌جا می‌کنند. در شیفت چپ، بیت‌ها به سمت چپ منتقل شده و بیت‌های خالی در سمت راست با صفر پر می‌شوند. در شیفت راست، بیت‌ها به سمت راست منتقل شده و بیت‌های خالی در سمت چپ با بیت علامت (برای اعداد منفی) یا صفر (برای اعداد مثبت) پر می‌شوند:

a = 60    # 0011 1100 در مبنای دو

print(a << 2)    # 240 (1111 0000)

print(a >> 2)    # 15 (0000 1111)

شیفت به چپ (<<) معادل ضرب عدد در ۲ به توان تعداد بیت‌های شیفت است. شیفت به راست (>>) هم معادل تقسیم عدد بر ۲ به توان تعداد بیت‌های شیفت است (البته با گرد کردن به سمت پایین).


کاربرد عملگرهای بیتی در پردازش داده‌ها

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

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

در رمزنگاری عملگر XOR برای تولید کلیدهای رمزنگاری یا پنهان‌سازی داده‌ها به کار می‌رود. در بهینه‌سازی عملکرد هم شیفت‌های بیتی جایگزین سریع‌تری برای ضرب و تقسیم بر توان‌های ۲ هستند.

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


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

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


  • in (بررسی عضویت): اگر مقدار مورد نظر در مجموعه وجود داشته باشد، True برمی‌گرداند. این عملگر برای دیکشنری‌ها کلیدها را بررسی می‌کند، نه مقادیر:

my_list = [1, 2, 3, 4]

my_string = "پایتون"

my_dict = {"name": "علی", "age": 30}


print(3 in my_list)  # خروجی: True

print("ا" in my_string)  # خروجی: True

print("name" in my_dict)  # خروجی: True

print("علی" in my_dict)  # خروجی: False



  • not in (بررسی عدم عضویت): عملگر not in برعکس in است و نبود عنصری خاص در مجموعه داده را بررسی می‌کند:

my_list = [1, 2, 3, 4]

my_string = "پایتون"


print(5 not in my_list)  # خروجی: True

print("ب" not in my_string)  # خروجی: True



مثال‌های کاربردی

عملگرهای عضویت در پایتون کاربردهای متنوعی دارند و برای اعتبارسنجی ورودی‌ها، فیلتر داده‌ها یا بررسی شرایط خاص می‌توان از آنها بهره برد:

# بررسی مجاز بودن یک کاراکتر

allowed_chars = 'abcdefghijklmnopqrstuvwxyz0123456789'

user_input = 'python3'


is_valid = all(char in allowed_chars for char in user_input)

print(is_valid)    # نتیجه: True


# جستجو در یک متن

emails = [

    'user1@example.com',

    'info@company.org',

    'contact@website.net'

]


company_emails = [email for email in emails if 'company' in email]

print(company_emails)    # نتیجه: ['info@company.org']



عملگرهای هویتی (Identity Operators)

این عملگرها کمی خاص‌تر بوده و به ما می‌گویند که آیا دو متغیر متفاوت به یک شیء یکسان در حافظه اشاره می‌کنند یا خیر.


  • is: اگر دو متغیر به یک شیء اشاره کنند، True برمی‌گرداند. توجه داشته باشید که این عملگر هویت آبجکت‌ها را مقایسه می‌کند نه مقدار آن‌ها را:

a = [1, 2, 3]

b = [1, 2, 3]

c = a


print(a is b)    # نتیجه: False (دو لیست مختلف با مقادیر یکسان)

print(a is c)    # نتیجه: True (هر دو متغیر به یک لیست اشاره می‌کنند)

در این مثال هرچند a و b از نظر محتوا یکسانند، اما به دو آبجکت متفاوت در حافظه اشاره می‌کنند. از طرف دیگر a و c به یک آبجکت مشترک اشاره می‌کنند بنابراین عملگر is نتیجه True را برمی‌گرداند.


  • is not: اگر دو متغیر به اشیاء متفاوتی اشاره کنند، True برمی‌گرداند:

a = [1, 2, 3]

b = [1, 2, 3]

c = a


print(a is not b)    # نتیجه: True

print(a is not c)    # نتیجه: False


تفاوت == و is در پایتون

یکی از رایج‌ترین اشتباهات برنامه‌نویس‌های تازه‌کار در پایتون یکی دانستن عملگرهای == و is است. عملگر == مقادیر را مقایسه می‌کند، در حالی که is هویت آبجکت‌ها را بررسی می‌کند. 

برای اجتناب از این اشتباه متخصصان پایتون توصیه می‌کنند که از عملگر is فقط برای مقایسه با None ،True یا False استفاده شود.


اولویت عملگرها در پایتون (Operator Precedence)

ترتیب اجرای عملگرها در پایتون از قواعد خاصی پیروی می‌کند. برای مثال عملگرهای محاسباتی (**، *، + و ...) اولویت بالاتری نسبت به عملگرهای مقایسه‌ای (==، is) دارند. در جدول زیر اولویت عملگرها در پایتون را از بالاترین (بالا) تا پایین‌ترین اولویت (پایین) مشاهده می‌کنید:


اولویت

دسته عملگر

عملگرها

توضیح

ترتیب ارزیابی

1

پرانتز

()

گروه‌بندی 

از چپ به راست

2

توان

**

عملگر توان

از راست به چپ

3

یکانی (تک‌عملوندی)

+x, -x, ~x

مثبت، منفی، مکمل بیتی

از راست به چپ

4

ضرب و تقسیم

*, /, //, %

ضرب، تقسیم، تقسیم صحیح، باقی‌مانده

از چپ به راست

5

جمع و تفریق

+, -

جمع و تفریق

از چپ به راست

6

بیتی (شیفت)

<<, >>

شیفت به چپ، شیفت به راست

از چپ به راست

7

بیتی (AND)

&

مقایسه مقادیر بینی

از چپ به راست

8

بیتی (XOR)

^

مقایسه مقادیر بینی

از چپ به راست

9

بیتی (OR)

`

مقایسه مقادیر بینی

از چپ به راست

10

مقایسه‌ای

<, <=, >, >=, ==, !=

مقایسه (کوچکتر، بزرگتر، برابر، ...)

از چپ به راست

11

هویتی

is, is not

بررسی هویت اشیاء

از چپ به راست

12

عضویت

in, not in

بررسی عضویت در مجموعه‌ها

از چپ به راست

13

منطقی (NOT)

not

عملگر منطقی NOT

از راست به چپ

14

منطقی (AND)

and

عملگر منطقی AND

از چپ به راست

15

منطقی (OR)

or

عملگر منطقی OR

از چپ به راست

16

تخصیص

=, +=, -=, *=, /=, //=, %=, **=, &=, `

=, ^=, >>=, <<=`

عملگرهای تخصیص (انتساب)


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


مثال‌های عملی و کاربردی از عملگرها

در ادامه برای درک بهتر کاربرد عملگرها چند مثال را با هم مرور می‌کنیم. همان‌طور که می‌بینید، در مثال‌های پیشرفته ترکیب عملگرها با ساختارهای کنترلی (if, for) و توابع بسیار رایج است.


  • محاسبه و مقایسه روی اعداد:

num1 = 15

num2 = 4

result = (num1 + num2) * 2  # محاسباتی

is_greater = result > 30  # مقایسه‌ای

print("آیا نتیجه بزرگتر از 30 است؟", is_greater)  # نتیجه: True


  • بررسی شرط با عملگرهای منطقی:

age = 25

has_permission = True

can_enter = age >= 18 and has_permission  # منطقی

print("آیا اجازه ورود دارد؟", can_enter)  # نتیجه: True


  • محاسبه تخفیف:

price = 100

discount = 20

is_member = True

final_price = price - (discount if is_member else 0)  # محاسباتی و منطقی

print("قیمت نهایی:", final_price)  # نتیجه: 80


  • بررسی شرایط برای پذیرش در دوره:

def can_enroll(age, has_experience, passed_test, is_member):

    # شرایط پذیرش:

    # 1. سن بین 18 تا 30 باشد

    # 2. یا تجربه کاری داشته باشد یا آزمون را قبول شده باشد

    # 3. عضویت فعال داشته باشد

    is_eligible = (18 <= age <= 30) and (has_experience or passed_test) and is_member

    return is_eligible


  • بررسی عدد اول با عملگرهای محاسباتی و منطقی:

def is_prime(n):

    if n < 2:

        return False

    for i in range(2, int(n ** 0.5) + 1):  # فقط تا جذر n بررسی می‌کنیم

        if n % i == 0:  # استفاده از عملگر باقی‌مانده

            return False

    return True


  • شیفت بیتی برای تولید اعداد توان‌دار:

power_of_two = 1 << 3  # معادل 2^3 = 8


  • فیلتر کردن داده‌ها با in:

valid_users = ["admin", "user1", "guest"]  

username = input("نام کاربری: ")  

if username in valid_users:  

    print("دسترسی مجاز است.")


نمونه پیشرفته‌‌تر از فیلتر با in:

# لیستی از محصولات

products = [

    {"id": 1, "name": "Laptop", "categories": ["electronics", "computer"]},

    {"id": 2, "name": "Headphones", "categories": ["electronics", "audio"]},

    {"id": 3, "name": "Coffee Maker", "categories": ["kitchen", "appliances"]},

    {"id": 4, "name": "Keyboard", "categories": ["electronics", "computer"]}

]


# فیلتر کردن محصولات الکترونیکی

electronics = [product for product in products if "electronics" in product["categories"]]

print(len(electronics))    # نتیجه: 3


# فیلتر کردن محصولات کامپیوتری که الکترونیکی نیستند

computer_not_electronics = [product for product in products 

                           if "computer" in product["categories"] and "electronics" not in product["categories"]]

print(len(computer_not_electronics))    # نتیجه: 0 (چنین محصولی وجود ندارد)



  • بهینه‌سازی حافظه با is:

def process_data(data):  

    if data is None:  

        return "داده‌ای دریافت نشد."


  • استفاده از عملگرهای بیتی برای تنظیم دسترسی‌ها:

# تعریف سطوح دسترسی با استفاده از عملگرهای بیتی

READ = 4    # 100 در مبنای دو

WRITE = 2    # 010 در مبنای دو

EXECUTE = 1    # 001 در مبنای دو


# ایجاد دسترسی‌های ترکیبی

read_write = READ | WRITE  

read_execute = READ | EXECUTE

all_permissions = READ | WRITE | EXECUTE  


# بررسی دسترسی‌ها

def check_permission(user_permission, required_permission):

    return (user_permission & required_permission) == required_permission


user1_permission = read_write

print(check_permission(user1_permission, READ))    # نتیجه: True

print(check_permission(user1_permission, EXECUTE))    # نتیجه: False


  • استفاده از عملگرهای هویتی برای مدیریت آبجکت‌ها:

class ConfigManager:

    _instance = None

    

    @classmethod

    def get_instance(cls):

        if cls._instance is None:

            cls._instance = ConfigManager()

        return cls._instance

    

    def __init__(self):

        self.settings = {}

    

# استفاده از الگوی Singleton

config1 = ConfigManager.get_instance()

config2 = ConfigManager.get_instance()


config1.settings['debug'] = True


# بررسی اینکه آیا هر دو متغیر به یک آبجکت اشاره می‌کنند

print(config1 is config2)    # نتیجه: True

print(config2.settings['debug'])    # نتیجه: True


تسلط بر عملگرهای پایتون؛ تمرین کلید موفقیت

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


سوالات متداول

  1. انواع عملگرها در پایتون کدامند؟ عملگرهای حسابی، مقایسه‌ای، منطقی، بیتی، عملگرهای انتساب، هویت و عضویت از پرکاربردترین عملگرها در پایتون هستند. 

  2. آیا می‌توان در یک عبارت انواع عملگرها را با هم ترکیب کرد؟ بله، می‌توانید عملگرهای حسابی، مقایسه‌ای، منطقی و... را با هم ترکیب کرده و عملیات‌ پیچیده‌تری انجام دهید.

  3. سربارگذاری عملگر (Overloading) چیست؟ این قابلیت پایتون به شما اجازه می‌دهد رفتار یک عملگر معمولی را برای اشیا در کلاس‌های سفارشی خودتان تغییر دهید.

  4. عملگرهای is و == چه تفاوتی دارند؟ اپراتور == برابری مقادیر را چک می‌کند اما is بررسی می‌کند که عملوندها به یک شیء یکسان در حافظه اشاره می‌کنند یا خیر (هویت یکسان).

  5. اولویت عملگرها چیست؟ اولویت، ترتیب اجرای عملگرها را در یک عبارت تعیین می‌کند. مثلاً ضرب و تقسیم قبل از جمع و تفریق انجام می‌شوند. از پرانتز می‌توان برای تغییر اولویت استفاده کرد.

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

  7. عملگر والروس (:=) چیست و چه کاربردی دارد؟ این عملگر (در پایتون 3.8 و بالاتر) امکان تخصیص مقدار به متغیر و استفاده همزمان از آن را فراهم می‌کند.


مطالب مشابه

دیدگاهتان را بنویسید

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

دیدگاه‌ها

دیدگاهی ثبت نشده، شما اولین نفر باشدی.
یاد بگیر، تجربه کسب کن،
تو بهترین شرکت‌ها استخدام شو.
K . E . L . A . A . S . O . R
| تمامی حقوق کپی‌رایت محفوظ است. ۱۴۰۲ شرکت کلاسور |