عملگرها در پایتون (Operators) — به زبان ساده
در این مطلب، انواع «عملگرها در پایتون» (Python Operators)، نحو و چگونگی استفاده از آنها همراه با مثالهایی آموزش داده شده است. برای مطالعه پیرامون انواع متغیرها در «زبان برنامهنویسی پایتون» (Python Programming Language) مطلب «انواع متغیرها در پایتون -- به زبان ساده» از مجله فرادرس توصیه میشود. در مطلب «انواع داده در پایتون (Data Types) — به زبان ساده» نیز انواع داده موجود در پایتون مورد بررسی قرار گرفته و در «تبدیل نوع در پایتون (Type Conversion) — به زبان ساده» روش تبدیل انواع دادهها به یکدیگر در پایتون شرح داده شده است.
عملگرها در پایتون
«عملگرها» (Operators) سمبلهای خاصی در پایتون هستند که پردازشهای حسابی و منطقی را انجام میدهند.
مثال زیر در این راستا شایان توجه است.
>>> 2+3 5
در اینجا، + عملگری است که عمل جمع را انجام میدهد. ۲ و ۳ «عملوندها» (Operands) هستند و ۵ خروجی عملیات است. نمونه پیشرفتهتر این عملگر، تابع SUM در پایتون است.
عملگرهای حسابی
«عملگرهای حسابی» (Arithmetic Operators) برای انجام پردازشهای ریاضی مانند جمع، تفریق، ضرب و دیگر موارد استفاده میشود.
در جدول زیر، کلیه عملگرهای حسابی موجود در پایتون ارائه و عملکرد آنها همراه با مثالی شرح داده شده است.
عملگر | شرح عملکرد | مثال |
+ | جمع کردن دو عملوند یا عمل یگانی مثبت | x + y +2 |
- | تفریق عملوند سمت راست از سمت چپی یا عمل یگانی منفی | x - y 2- |
* | ضرب دو عملوند در پایتون | x * y |
/ | تقسیم کردن عملوند سمت چپ بر سمت راستی | x / y |
% | عملیات پیمانهای (محاسبه باقیمانده تقسیم عملوند سمت چپ بر سمت راستی) | (باقیمانده x % y (x/y |
// | خارج قسمت صحیح (این تقسیم، خارج قسمت صحیح را در خروجی ارائه میکند) | x // y |
** | عملگر توان در پایتون برای به توان y رساندن متغیر x | (x به توان y شده) x**y |
توجه: از عملگر توان ** برای محاسبه رادیکال در پایتون نیز میشود استفاده کرد.
مثال ۱: عملگرهای حسابی در پایتون
1x = 15
2y = 4
3
4# Output: x + y = 19
5print('x + y =',x+y)
6
7# Output: x - y = 11
8print('x - y =',x-y)
9
10# Output: x * y = 60
11print('x * y =',x*y)
12
13# Output: x / y = 3.75
14print('x / y =',x/y)
15
16# Output: x // y = 3
17print('x // y =',x//y)
18
19# Output: x ** y = 50625
20print('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 |
مثال ۲: عملگرهای مقایسه در پایتون
1x = 10
2y = 12
3
4# Output: x > y is False
5print('x > y is',x>y)
6
7# Output: x < y is True
8print('x < y is',x<y)
9
10# Output: x == y is False
11print('x == y is',x==y)
12
13# Output: x != y is True
14print('x != y is',x!=y)
15
16# Output: x >= y is False
17print('x >= y is',x>=y)
18
19# Output: x <= y is True
20print('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 |
مثال ۳: عملگرهای منطقی در پایتون
1x = True
2y = False
3
4# Output: x and y is False
5print('x and y is',x and y)
6
7# Output: x or y is True
8print('x or y is',x or y)
9
10# Output: not x is False
11print('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 |
مثال ۴: عملگرهای هویت در پایتون
1x1 = 5
2y1 = 5
3x2 = 'Hello'
4y2 = 'Hello'
5x3 = [1,2,3]
6y3 = [1,2,3]
7
8# Output: False
9print(x1 is not y1)
10
11# Output: True
12print(x2 is y2)
13
14# Output: False
15print(x3 is y3)
در اینجا، میتوان مشاهده کرد که x1 و y1 اعداد صحیحی با مقادیر مشابه هستند، بنابراین، هم برابر و هم همانی هستند. مساله مشابهی برای x2 و y2 نیز وجود دارد (رشتهها). اما، x3 و y3 لیست هستند. این موارد مساوی و غیر همانی هستند. این امر بدین دلیل است که مفسر آنها را به طور جداگانه در حافظه قرار میدهد، اگرچه با هم مساوی هستند.
عملگرهای عضویت
in و not in عملگرهای عضویت در پایتون هستند. این عملگرها برای بررسی اینکه یک مقدار یا متغیر در یک توالی پیدا میشود یا نه مورد استفاده قرار میگیرند (رشته، لیست، مجموعه و دیکشنری).
در یک دیکشنری، فقط میتوان وجود یا عدم وجود یک کلید را بررسی کرد، نه یک مقدار را. در جدول زیر، عملگرهای عضویت همراه با مثالهایی ارائه شدهاند.
عملگر | شرح عملکرد | مثال |
in | در صورتی صحیح است که مقدار/متغیر در توالی پیدا شود. | 5 in x |
not in | در صورتی صحیح است که مقدار/متغیر در توالی پیدا نشود. | 5 not in x |
مثال ۵: عملگرهای عضویت در پایتون
1x = 'Hello world'
2y = {1:'a',2:'b'}
3
4# Output: True
5print('H' in x)
6
7# Output: True
8print('hello' not in x)
9
10# Output: True
11print(1 in y)
12
13# Output: False
14print('a' in y)
در اینجا، 'H' در x قرار دارد، اما 'hello' در x نیست (به خاطر داشته باشید که پایتون به حروف بزرگ و کوچک حساس است). به طور مشابه، ۱ کلید و a مقدار در دیکشنری y است. بنابراین 'a' in y خروجی False را باز میگرداند.
سلام من توی پایتون مینویسم type(false)میگه name error میگه معنی نشده ولی تو فیلم اموزشی نشون میده که بولینه ورژن پایتونم هم 3.12.0 لطفا راهنمایی کنید
سلام.
باید False نوشته بشه. یعنی f باید با حرف بزرگ باشه.
موفق باشید.
سلام ببشخید وقتی سوال میشه که هویت داده رو پیدا کنید مثل داده ی”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’
با تشکر
سلام . تابع اینپوت هر چیزی که دریافت کند را به صورت استیرینگ ذخیره میکند . پس شما اگر از کاربر سنش را بخواهید و کاربر 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 کارمون راه میافته ولی بدونید خوبه)
موفق باشی
پشت input ات یک ()float اضافه کن
چون دستور input یک استرینگ میسازد این مورد پیش میاد و باید قبل از input از دستور float استفاده کنید تا به عدد تبدیل شود
دو متغیر hوt داری اشتباهه میتونی بزرگشو بذاری
سلام من یه سوال داشتم اگر امکانش باشه جواب بدید
این کد رو من وارد کردم و میخوام بدونم دلیل اینکه 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) میباشند دوست عزیز.
موفق باشید.