در پایتون عملگرهای زیادی برای اجرای عملیات مختلف ریاضی تعریف شدهاند. بعضی از این عملگرها با شکل ظاهری خود در ریاضیات شناخته شده تفاوت دارند. یکی از مهمترین عملگرهای ریاضی، علامت = (مساوی) است. عملگر = در ریاضیات برای نشان دادن برابری استفاده میشود. اما این عملگر در پایتون کاربرد کاملا متفاوتی دارد و در عوض از عمگر == برای بررسی برابری بین دو مقدار استفاده میشود. تفاوت = و == در پایتون بسیار مهم است و اشتباه ناشی از کم دقتی میتواند باعث بروز مشکلات زیادی در برنامه نوشته شده شود. در این مطلب از مجله فرادرس به بررسی تفاوت این دو عملگر پرداختهایم.
در ریاضیات معمولی عملیات برابری، خروجی ندارد، اما در پایتون این مقایسه دارای مقدار خروجی است. برای مثال عبارت «a = b == c» عبارتی کاملا معنادار است. برای کمک به درک بهتر تفاوت = و == در پایتون، در این مطلب ابتدا هر دو عملگر را به صورت جدا تعریف و بررسی کرده و بعد از آن با مثال سادهای این دو عملگر را با هم مقایسه کردهایم.
تفاوت = و == در پایتون چیست؟
تفاوت این دو عملگر را میتوان به صورت خلاصه در فهرست زیر بیان کرد.
- عملگر = برای تخصیص مقدار بهکار برده میشود. اصطلاحا به این عملگر، عملگر تخصیص هم گفته میشود. یعنی اینکه مقدار سمت راست عملگر به متغیر سمت چپ آن اختصاص داده میشود.
- عملگر == برای بررسی مساوی بودن دو مقدار بهکار برده میشود. این عملگر را با نام عملگر برابری نیز میشناسند. در صورت مساوی بودن دو مقدار سمت چپ و راست این عملگر، «True» و در غیر این صورت «False» به بیرون برگشت داده میشود.
با کمک فرادرس زبان پایتون را بیاموزیم
گروه آموزشی فرادرس در همه زمینههای تحصیلی و کاری تلاش کرده که فیلمهایی بسیار خوب و با کیفیت عالی تولید کند. آموزش زبان پایتون هم یکی از حوزههای فعالیت فرادرس است. بنابراین، فرادرس تلاش کرده از ابتدای کار تا به سطوح بسیار پیشرفته پایتون را پوشش دهد. پیشنهاد اول فرادرس، برای آغاز آموزش زبان برنامه نویسی پایتون، تماشای فیلم رایگان آموزش پایتون، برنامه نویسی سریع و آسان در ۱۴۰ دقیقه است. این مورد، فیلم بسیار خوبی برای شروع به آشنایی و آموزش کار با زبان پایتون است.
اما اگر از قبل با این زبان برنامه نویسی قدرتمند آشنا شدهاید و اکنون به دنبال افزایش مهارتهای خود هستید، میتوانید دورههای پیشرفتهتر فرادرس را مشاهده کنید. در این دورهها هم اصول کدنویسی پیشرفتهای مانند دیزاین پترنها و برنامه نویسی شیءگرایانه آموزش داده شدهاند و هم به تکنولوژیهای مدرنی که پایتون در آنها فعالیت میکند، مانند هوش مصنوعی ،پرداخته شده است. در صورت تمایل با کلیک بر روی تصویر بالا میتوانید به صفحه اصلی مجموعه آموزش هدایت شده و از فیلمهای بیشتری بهرهمند شوید.
عملگر = در پایتون
عملگر = برای تخصیص بهکار برده میشود. این عملگر مقدار سمت راست خود را به متغیر سمت چپ خود اختصاص میدهد. در سمت چپ عملگر = حتما باید متغیر قرار داشته باشد و در سمت راست آن هر عبارتی میتواند قرار بگیرد، البته با این شرط که خروجی تولید کند. در سمت راست این متغیر حتی میتوان از مقداری که به هیچ فضایی در حافظه اختصاص داده نشده استفاده کرد.
در مقابل عملگر = عملگر دیگری هم با نماد =! در پایتون وجود دارد. این عملگر به نام نامساوی شناخته میشود. عملگر نامساوی در پایتون از نوع عملگرهای مقایسهای یا رابطهای است که تعداد دو یا بیشتری عملوند را با هم مقایسه میکند. برای آشنا شدن با عملگر =!، میتوانید مطلب نامساوی در پایتون چیست؟ – به زبان ساده را از مجله فرادرس مطالعه کنید.
در نهایت مقدار عبارت سمت راست عملگر = به متغیر سمت چپ آن تخصیص داده میشود. این عمل بدون در نظر گرفتن محتوای متغیر سمت چپ انجام میشود. عبارت سمت راست با متغیر سمت چپ قابل جابهجایی نیستند.
1>>> a=10
2>>> b=20
3>>> c=a+b
4>>> a,b,c
5(10, 20, 30)
6>>> a+b=c
7SyntaxError: can't assign to operator
قابل مشاهده است که در مثال بالا، ۴ بار عمل تخصیص را با کمک عملگر = انجام دادهایم. در دو بار اول، مقادیری را به متغیرهای a و b اختصاص دادیم که بدون خطا انجام شدند. در خط سوم حاصل جمع دو متغیر را به متغیر دیگری اختصاص دادیم که این بار هم بدون خطا دستور اجرا شد.
اما میبینیم که آخرین عملیات تخصیص با خطا روبهرو شده است. در آخرین عملیات، متغیری در سمت راست قرار دارد. وجود این متغیر به صورت تنها، بدون ایراد است اما در سمت چپ عملگر = دو متغیر با هم جمع شدهاند که انجام چنین عملیاتی در زبان پایتون مجاز نیست. در نتیجه با خطای SyntaxError روبهرو شدهایم.
عملگر == در پایتون
عملگر == برای انجام عمل مقایسه بهکار برده میشود. به این == ، عملگر برابری هم گفته میشود. عمگر == مقدار عملوندهای سمت چپ و راست خود را با یکدیگر مقایسه کرده و در صورت برابری، True و در غیر این صورت False به بیرون برگشت میدهد.
1>>> 10+2 == 10
2False
3>>> (10+2) == 12
4True
5>>> 'computer' == 'Computer'
6False
7>>> 'computer' == "computer"
8True
در مثال بالا ۴ مدل مقایسه انجام شده است. تمام این کدها را در فهرست زیر به صورت کامل و شفاف توضیح دادهایم.
- در خط اول برابری 10+2 را با 10 سنجیده و در نتیجه با پیغام False روبهرو شدهایم.
- در خط کد دوم هم دوباره برابری عدد ۱۲ را با حاصل جمع ۱۰ و ۲ سنجیدهایم. چون این دو مقدار با همدیگر برابر هستند، پایتون پاسخ True را به بیرون برگردانده است.
- در دفعه سوم کلمات Computer و computer را با یکدیگر سنجیدهایم. اما چون عملگر == به بزرگی و کوچکی حروف حساس است این دو کلمه را با هم برابر ندانسته و پاسخ False در خروجی برمیگرداند.
- در نهایت هم کلمه computer را با خودش سنجیدهایم. تنها تفاوت استفاده از کوتیشن یگانه و دوگانه برای تعریف استرینگ در پایتون است. این کوتیشنها تاثیری در محتوای رشته نوشته شده ندارند، پس پاسخ این عمل مقایسه هم True است.
مقایسه تفاوت = و == در پایتون
در این بخش میخواهیم که تفاوت = و == در پایتون را به طور کامل مورد بررسی قرار دهیم. تا به اینجای مطلب دانستیم که = برای اجرای عملیات تخصیص بهکار برده میشود و == برای بررسی برابری بین دو عبارت یا متغیر.
در مثال زیر میتوان تفاوت بین == و = را مشاهده کرد.
1x = 10
2y = 10
3x = 20 # Assignment
4result = x == y # Comparison
5print(result)
در مثال بالا، در ابتدا به متغیر x مقدار 10 تخصیص داده شده است. بعدا در ادامه کدها مقدار 20 به این متغیر اختصاص داده شد. در ضمن، مقدار 10 به متغیر y اختصاص داده شده است. در آخر هم هر دو متغیر با یکدیگر مقایسه شدهاند. نتیجه چاپ شده بر روی مانیتور در اثر اجرای این کد برابر با «False» است. زیرا x دیگر مقدار اولیه خود را ندارد.
مثال های بیشتر درباره تفاوت = و == در پایتون
در این بخش از مطلب، چند مثال دیگر را برای کمک به درک بهتر موضوع، درباره کاربرد و روش استفاده از هر کدام از این عملگرها نمایش دادهایم.
اعتبار سنجی داده های ورودی کاربر
در این بخش از مطلب، تفاوت = و == را در کدی نمایش دادهایم که برای اعتبارسنجی کلمه عبور کاربر استفاده میشود.
1entered_password = input("Enter your password: ")
2if entered_password == "correct_password":
3 print("Access granted.")
4else:
5 print("Access denied.")
در خط اول کدهای بالا، با کمک عملگر = رمز عبور را از کاربر دریافت کرده و در متغیری به نام entered_password جایگذاری کردیم. در خط بعد با کمک عبارت شرطی if و عملگر == برابری داده ورودی کاربر را با کلمه عبور صحیح میسنجیم.
فیلتر کردن داده ها
عملگر برابر یکی از مشهورترین عملگرهایی است که در «پردازش دادهها» (Data Processing) برای فیلتر کردن یا دسته بندی داده اطلاعات بر اساس معیارهای مشخص شده بهکار برده میشود. برای نمونه با کمک عملگر == میتوانیم عنصر مشخصی را از درون لیستها پیدا کنیم.
1items = ["apple", "banana", "cherry"]
2for item in items:
3 if item == "banana":
4 print("Banana found!")
منطق شرطی در بازی ها
در توسعه بازی میتوان از عملگر = برای مشخص کردن حالت بازی یا رفتار بازیکنان استفاده کرد. به عنوان مثال، فرض کنید که باید رسیدن بازیکن به امتیاز لازم برای پیروزی در بازی را بررسی کنیم.
1player_score = 100
2if player_score == 100:
3 print("Congratulations, you've reached the high score!")
در کدهای بالا، ابتدا امتیازی را برای بازی کند در نظر گرفتهایم. عملگر = به اختصاص دادن امتیاز به بازیکن در خط اول کمک کرده است. سپس در خط بعد با کمک عبارت شرطی if برابری امتیاز بازیکن با مقدار مورد نیاز را برای شکستن رکورد بررسی کردیم.
جمعبندی
عملگر = برای اختصاص دادن مقدار به متغیرها استفاده میشود. به این معنا که در سمت چپ این عملگر همیشه باید خانه حافظه – به صورت متغیر – قرار داشته باشد. در سمت راست = هر مقداری مجاز است. در حالی که عملگر == برای مقایسه به کار برده میشود. این عملگر برابری عملوندهای قرار گرفته در دو سوی خود را با یکدیگر مقایسه میکند.
در این مطلب از مجله فرادرس به بررسی و تفاوت = و == در پایتون پرداختیم. در ابتدا هر دو عملگر را تعریف کرده و با مثالهای مرتبط، روش کار هر دو را نشان دادیم. سپس در مثال کدنویسی شدهای کارکرد عملگرهای = و == را با یکدیگر مقایسه کردیم.
مصطفی رشیدی دانشآموخته مقطع لیسانس مهندسی نرم افزار است. علاقه بسیار زیادی به هوش مصنوعی و دیتاساینس دارد. برای مجله فرادرس در زمینه هوش مصنوعی و برنامهنویسی و مطالب مرتبط با علوم کامپیوتری مینویسد.
source