عملیات ریاضی در پایتون
عملیات ریاضی در پایتون
آموزش برنامه نویسی پایتون از صفر (جلسه 8)
عملیات ریاضی در پایتون؛ آموزش کامل عملگرها و اولویت محاسبات (جلسه هشتم آموزش پایتون از صفر)
عملیات ریاضی در پایتون یکی از مهمترین مباحثی است که هر برنامهنویس باید در ابتدای مسیر یادگیری خود به آن مسلط شود. تقریباً هیچ برنامهای را نمیتوان پیدا کرد که به نوعی با محاسبات عددی سروکار نداشته باشد. از ساخت یک ماشینحساب ساده گرفته تا توسعه نرمافزارهای مالی، طراحی بازیهای رایانهای، تحلیل دادهها، یادگیری ماشین و حتی توسعه سامانههای مبتنی بر هوش مصنوعی.
در جلسات گذشته مجموعه آموزش «آموزش برنامهنویسی پایتون از صفر»، با مفاهیم پایه مانند متغیرها، انواع داده، تابع print() و تابع type() آشنا شدیم. اکنون زمان آن رسیده است که از این مفاهیم برای انجام محاسبات واقعی استفاده کنیم.
با سرویس آموزش برنامه نویسی از خبرICT همراه باشید و در این جلسه با تمامی عملگرهای ریاضی پایتون، نحوه استفاده از آنها، اولویت اجرای عملیات، مثالهای کاربردی، اشتباهات رایج و نکات حرفهای آشنا خواهید شد. در پایان نیز میتوانید با اطمینان از عملگرهای ریاضی در پروژههای خود استفاده کنید.
تحقیق و تدوین مهدی گمرکی
مروری بر جلسه هفتم
در جلسه قبل، پایههای اصلی کار با دادهها را یاد گرفتیم. مهمترین موضوعاتی که با آنها آشنا شدیم عبارت بودند از:
- نمایش خروجی با استفاده از تابع
print() - تعریف و مقداردهی متغیرها
- تغییر مقدار متغیرها
- آشنایی با انواع داده
- استفاده از تابع
type()برای تشخیص نوع داده
این مفاهیم، پیشنیاز ورود به محاسبات عددی هستند؛ زیرا تقریباً تمام عملیات ریاضی روی متغیرها انجام میشود.
نکته: اگر هنوز با مفاهیم متغیرها یا انواع داده آشنا نیستید، پیشنهاد میکنیم ابتدا مقاله «متغیر چیست؟» و «انواع داده در پایتون» را مطالعه کنید.
چرا عملیات ریاضی در پایتون اهمیت دارد؟
تقریباً تمام شاخههای برنامهنویسی به نوعی از محاسبات استفاده میکنند. برای مثال:
| حوزه | نمونه کاربرد |
|---|---|
| حسابداری | جمع و تفریق مبالغ |
| فروشگاه اینترنتی | محاسبه تخفیف |
| بازیسازی | محاسبه امتیاز بازیکن |
| هوش مصنوعی | انجام میلیونها محاسبه ریاضی |
| علم داده | تحلیل دادهها |
| برنامههای مالی | محاسبه سود و زیان |
| سیستمهای بانکی | محاسبه بهره و اقساط |
به همین دلیل، تسلط بر عملگرهای ریاضی یکی از اولین مهارتهایی است که هر برنامهنویس باید کسب کند.
عملگر (Operator) چیست؟
در برنامهنویسی، عملگر یا Operator نمادی است که روی یک یا چند مقدار عملیات خاصی انجام میدهد.
برای مثال:
5 + 3
در این عبارت:
- ۵ و ۳ عملوند (Operand) هستند.
- علامت
+عملگر (Operator) است. - نتیجه برابر با ۸ خواهد بود.
عملگرهای ریاضی در پایتون
پایتون مجموعهای از عملگرهای ریاضی را در اختیار برنامهنویسان قرار داده است که تقریباً تمام نیازهای روزمره را پوشش میدهد.
| عملگر | عملکرد | مثال |
| + | جمع | 5+2 |
| – | تفریق | 8-3 |
| * | ضرب | 6*4 |
| / | تقسیم | 10/2 |
| % | باقیمانده | 10%3 |
| // | تقسیم صحیح | 10//3 |
| ** | توان | 2**4 |
در ادامه هر کدام را با مثال بررسی میکنیم.
عملگر جمع (+)
سادهترین عملگر ریاضی، جمع است.
print(8 + 5)
خروجی:
13
اگر از متغیر استفاده کنیم:
price = 150
tax = 25
total = price + tax
print(total)
خروجی:
175
مثال واقعی
فرض کنید در یک فروشگاه اینترنتی، کاربر سه کالا خریداری کرده است.
item1 = 120
item2 = 85
item3 = 60
total = item1 + item2 + item3
print(total)
خروجی:
265
این نمونه یکی از رایجترین کاربردهای عملگر جمع در پروژههای واقعی است.
عملگر تفریق (-)
برای کم کردن دو مقدار از عملگر منفی استفاده میشود.
print(20 - 7)
نتیجه:
13
نمونه واقعی:
wallet = 500
shopping = 180
remain = wallet - shopping
print(remain)
خروجی:
320
عملگر ضرب (*)
عملگر ضرب برای محاسبه حاصلضرب دو مقدار استفاده میشود.
print(7 * 6)
نتیجه:
42
مثال عملی:
price = 80
count = 4
total = price * count
print(total)
خروجی:
320
عملگر تقسیم (/)
تقسیم یکی از مهمترین عملگرهای پایتون است.
print(10 / 2)
نتیجه:
5.0
نکته مهم اینجاست که حتی اگر نتیجه یک عدد صحیح باشد، خروجی از نوع Float خواهد بود.
برای اطمینان میتوانیم نوع داده را بررسی کنیم:
result = 10 / 2
print(type(result))
خروجی:
<class 'float'>
چرا تقسیم همیشه Float برمیگرداند؟
طراحان پایتون تصمیم گرفتهاند که تقسیم همیشه بتواند نتیجه اعشاری تولید کند.
برای مثال:
7 / 2
نتیجه:
3.5
اگر نتیجه تقسیم همیشه Integer بود، بخشی از اطلاعات از بین میرفت.
به همین دلیل خروجی تقسیم در پایتون همیشه Float است؛ حتی اگر بخش اعشاری صفر باشد.
مثال کاربردی: محاسبه میانگین نمرات
فرض کنید سه نمره داریم.
math = 18
physics = 20
english = 17
average = (math + physics + english) / 3
print(average)
خروجی:
18.3333333333
این مثال یکی از رایجترین کاربردهای تقسیم در برنامهنویسی است.
استفاده همزمان از چند عملگر
پایتون به شما اجازه میدهد چندین عملگر را در یک عبارت استفاده کنید.
result = 5 + 8 - 2 * 3
print(result)
اما آیا نتیجه برابر ۳۳ خواهد بود؟
خیر.
زیرا پایتون مانند ریاضیات، اولویت عملگرها را رعایت میکند. این موضوع را در ادامه مقاله بهصورت کامل بررسی خواهیم کرد.
نکته
هر زمان که نتیجه تقسیم برایتان عجیب بود، ابتدا نوع داده را با تابع
type()بررسی کنید. بسیاری از خطاهای برنامهنویسان تازهکار به دلیل تفاوت بینintوfloatایجاد میشود.
اشتباه رایج
بسیاری از افراد تصور میکنند:
10 / 2
باید خروجی زیر را تولید کند:
5
در حالی که خروجی واقعی:
5.0
است. این رفتار کاملاً طبیعی و بخشی از طراحی زبان پایتون است.
عملگر باقیمانده (%) یا Modulus
یکی از کاربردیترین عملگرهای ریاضی در پایتون، عملگر باقیمانده است که با نماد % نمایش داده میشود. این عملگر باقیمانده تقسیم دو عدد را برمیگرداند.
ساختار
a % b
مثال
print(10 % 3)
خروجی:
1
زیرا:
- ۱۰ ÷ ۳ = ۳
- باقیمانده = ۱
مثالهای بیشتر
print(20 % 6)
خروجی:
2
print(15 % 5)
خروجی:
0
زیرا عدد ۱۵ کاملاً بر ۵ بخشپذیر است.
کاربردهای واقعی عملگر %
برخلاف تصور بسیاری از افراد، این عملگر در پروژههای واقعی بسیار پرکاربرد است.
۱. تشخیص زوج یا فرد بودن عدد
number = 18
print(number % 2)
خروجی:
0
اگر باقیمانده صفر باشد، عدد زوج است.
اگر خروجی برابر ۱ باشد، عدد فرد است.
نمونه کامل:
number = 21
if number % 2 == 0:
print("Even")
else:
print("Odd")
۲. تقسیم کاربران به گروهها
فرض کنید میخواهید کاربران را در چهار گروه قرار دهید.
user_id = 57
group = user_id % 4
print(group)
این تکنیک در بسیاری از سامانههای بزرگ برای توزیع بار (Load Balancing) و تقسیم دادهها استفاده میشود.
۳. بررسی مضرب بودن اعداد
number = 45
print(number % 5)
اگر خروجی صفر باشد، یعنی عدد مضرب ۵ است.
عملگر تقسیم صحیح (//)
گاهی اوقات فقط به قسمت صحیح حاصل تقسیم نیاز داریم و بخش اعشاری برایمان اهمیتی ندارد.
در این شرایط از عملگر // استفاده میکنیم.
مثال
print(10 // 3)
خروجی:
3
مثال دیگر
print(25 // 4)
خروجی:
6
در حالی که:
25 / 4
برابر است با:
6.25
کاربردهای تقسیم صحیح
محاسبه تعداد بستهها
فرض کنید هر کارتن ۱۲ محصول را در خود جای میدهد.
products = 95
boxes = products // 12
print(boxes)
خروجی:
7
یعنی هفت کارتن کاملاً پر میشود.
تبدیل ثانیه به دقیقه
seconds = 140
minutes = seconds // 60
print(minutes)
خروجی:
2
عملگر توان (**)
یکی دیگر از عملگرهای مهم، عملگر توان است.
نماد آن:
**
است.
مثال
print(2 ** 3)
خروجی:
8
زیرا:
۲ × ۲ × ۲ = ۸
مثالهای بیشتر
print(5 ** 2)
خروجی:
25
print(10 ** 4)
خروجی:
10000
کاربردهای توان
این عملگر در بسیاری از شاخههای برنامهنویسی استفاده میشود.
از جمله:
- رمزنگاری
- هوش مصنوعی
- یادگیری ماشین
- پردازش تصویر
- تحلیل داده
- الگوریتمهای ریاضی
- محاسبات آماری
مقایسه عملگرهای ریاضی
| عملگر | نام | مثال | خروجی |
|---|---|---|---|
| + | جمع | 4 + 3 | 7 |
| – | تفریق | 8 – 2 | 6 |
| * | ضرب | 6 * 5 | 30 |
| / | تقسیم | 10 / 4 | 2.5 |
| // | تقسیم صحیح | 10 // 4 | 2 |
| % | باقیمانده | 10 % 4 | 2 |
| ** | توان | 3 ** 3 | 27 |
اولویت عملگرها در پایتون (Operator Precedence)
اگر در یک عبارت چند عملگر وجود داشته باشد، پایتون آنها را بر اساس قوانین مشخصی اجرا میکند.
این قوانین دقیقاً مشابه قوانین ریاضی هستند.
ترتیب اجرای عملیات از بیشترین اولویت به کمترین اولویت به شکل زیر است:
۱. پرانتز ()
۲. توان **
۳. ضرب، تقسیم، تقسیم صحیح و باقیمانده
*
/
//
%
۴. جمع و تفریق
+
-
مثال اول
result = 2 + 3 * 4
print(result)
خروجی:
14
چرا؟
زیرا ابتدا:
۳ × ۴ = ۱۲
سپس:
۱۲ + ۲ = ۱۴
مثال دوم
result = (2 + 3) * 4
print(result)
خروجی:
20
چون پرانتز در اولویت قرار دارد.
مثال سوم
result = 10 + 8 // 2
print(result)
ابتدا:
8 // 2
برابر است با:
4
سپس:
10 + 4
نتیجه:
14
مثال چهارم
result = 2 ** 3 * 4
ابتدا:
2 ** 3
برابر ۸
سپس:
8 * 4
نتیجه:
32
چرا استفاده از پرانتز توصیه میشود؟
اگرچه پایتون ترتیب عملیات را بهخوبی مدیریت میکند، اما استفاده از پرانتز باعث میشود کد خواناتر و قابلدرکتر شود.
بهعنوان مثال:
salary = (base_salary + bonus) - tax
از نظر خوانایی بسیار بهتر از نوشتن همان عبارت بدون پرانتز است.
نکته
برنامهنویسان حرفهای حتی زمانی که نیازی به پرانتز نیست، برای افزایش خوانایی کد از آن استفاده میکنند. خوانایی یکی از مهمترین اصول توسعه نرمافزار است.
اشتباهات رایج برنامهنویسان تازهکار
اشتباه اول
استفاده از علامت ^ برای توان
2 ^ 3
این عملگر در پایتون به معنی XOR است، نه توان.
روش صحیح:
2 ** 3
اشتباه دوم
فراموش کردن تفاوت / و //
بسیاری از افراد انتظار دارند:
10 // 4
خروجی:
2.5
باشد.
در حالی که نتیجه واقعی:
2
است.
اشتباه سوم
فراموش کردن اولویت عملیات
5 + 2 * 8
بعضی افراد پاسخ را ۵۶ تصور میکنند.
در حالی که خروجی صحیح:
21
است.
اشتباه چهارم
استفاده نکردن از پرانتز در عبارتهای طولانی
هرچه عبارت پیچیدهتر باشد، احتمال بروز خطا نیز بیشتر خواهد شد.
مثالهای واقعی از کاربرد عملیات ریاضی در پایتون
ممکن است در نگاه اول تصور کنید عملگرهای ریاضی تنها برای انجام محاسبات ساده به کار میروند، اما در عمل تقریباً تمام نرمافزارها و سامانههای هوشمند از آنها استفاده میکنند. در ادامه با چند نمونه کاربرد واقعی آشنا میشویم.
محاسبه مبلغ نهایی خرید
یکی از رایجترین کاربردها، محاسبه مبلغ پرداختی مشتری در فروشگاههای اینترنتی است.
price = 850000
discount = 120000
shipping = 45000
final_price = price - discount + shipping
print(final_price)
خروجی:
775000
در این مثال، با استفاده از عملگرهای جمع و تفریق، مبلغ نهایی قابل پرداخت محاسبه میشود.
محاسبه میانگین نمرات دانشآموز
math = 18
science = 19
english = 17
average = (math + science + english) / 3
print(average)
محاسبه مساحت مستطیل
length = 12
width = 8
area = length * width
print(area)
خروجی:
96
محاسبه توان یک عدد
number = 7
square = number ** 2
print(square)
بررسی زوج یا فرد بودن عدد
number = 35
if number % 2 == 0:
print("عدد زوج است.")
else:
print("عدد فرد است.")
این نمونه یکی از پرکاربردترین مثالهای آموزشی در برنامهنویسی محسوب میشود.
نکات مهم برای برنامهنویسان تازهکار
نکته ۱: همیشه برای خواناتر شدن عبارتهای ریاضی از پرانتز استفاده کنید، حتی اگر از نظر فنی اجباری نباشد.
نکته ۲: قبل از انجام محاسبات، از نوع داده متغیرها مطمئن شوید. استفاده از تابع
type()میتواند از بروز بسیاری از خطاها جلوگیری کند.
نکته ۳: تفاوت بین عملگرهای
/و//را بهخوبی درک کنید. انتخاب نادرست هرکدام ممکن است نتیجه برنامه را تغییر دهد.
نکته ۴: برای محاسبات پیچیدهتر، در جلسه آینده با ماژول
mathآشنا خواهید شد که امکانات بسیار بیشتری در اختیار شما قرار میدهد.
تمرینهای پیشنهادی
برای تثبیت مفاهیم این جلسه، سعی کنید تمرینهای زیر را بدون مشاهده پاسخ انجام دهید.
تمرین ۱
دو متغیر تعریف کنید و حاصل جمع، تفریق، ضرب و تقسیم آنها را چاپ کنید.
تمرین ۲
برنامهای بنویسید که باقیمانده تقسیم ۴۷ بر ۶ را نمایش دهد.
تمرین ۳
برنامهای بنویسید که عدد ۹ را به توان ۴ برساند.
تمرین ۴
برنامهای بنویسید که میانگین پنج عدد را محاسبه کند.
تمرین ۵
برنامهای بنویسید که تشخیص دهد یک عدد زوج است یا فرد.
مینیپروژه جلسه هشتم
در پایان این جلسه، یک ماشینحساب ساده طراحی کنید که بتواند دو عدد را دریافت کرده و نتایج عملیات زیر را نمایش دهد:
- جمع
- تفریق
- ضرب
- تقسیم
- تقسیم صحیح
- باقیمانده
- توان
نمونه کد:
a = 15
b = 4
print("جمع:", a + b)
print("تفریق:", a - b)
print("ضرب:", a * b)
print("تقسیم:", a / b)
print("تقسیم صحیح:", a // b)
print("باقیمانده:", a % b)
print("توان:", a ** b)
سعی کنید در جلسات آینده این برنامه را توسعه دهید تا با استفاده از تابع input() اعداد را از کاربر دریافت کند.
خلاصه عملگرهای ریاضی
| عملگر | کاربرد | نمونه |
|---|---|---|
| + | جمع | 8 + 2 |
| – | تفریق | 9 - 4 |
| * | ضرب | 5 * 6 |
| / | تقسیم | 12 / 5 |
| // | تقسیم صحیح | 12 // 5 |
| % | باقیمانده | 12 % 5 |
| ** | توان | 3 ** 4 |
جمعبندی
در این جلسه با یکی از مهمترین مباحث برنامهنویسی، یعنی عملیات ریاضی در پایتون آشنا شدیم. یاد گرفتیم که چگونه با استفاده از عملگرهای مختلف، محاسبات ساده و پیچیده را انجام دهیم و تفاوت میان عملگرهای تقسیم، تقسیم صحیح، باقیمانده و توان را درک کنیم. همچنین با مفهوم اولویت عملگرها آشنا شدیم و دیدیم که استفاده از پرانتز چگونه میتواند خوانایی و دقت کد را افزایش دهد.
تسلط بر این مفاهیم، پایهای محکم برای یادگیری مباحث پیشرفتهتر پایتون مانند ساخت شرطها، حلقهها، توابع، پردازش داده و حتی توسعه مدلهای هوش مصنوعی فراهم میکند.
اگر تمرینهای این جلسه را بهطور کامل انجام دهید، درک بهتری از نحوه انجام محاسبات در پایتون خواهید داشت و در ادامه مسیر یادگیری با اعتمادبهنفس بیشتری پیش خواهید رفت.
سؤالات متداول (FAQ)
آیا عملگر / همیشه عدد اعشاری برمیگرداند؟
بله. در پایتون، عملگر / همیشه مقداری از نوع float برمیگرداند؛ حتی اگر نتیجه تقسیم یک عدد صحیح باشد.
تفاوت / و // چیست؟
عملگر / نتیجه تقسیم را بهصورت اعشاری نمایش میدهد، اما // بخش اعشاری را حذف کرده و فقط قسمت صحیح خارجقسمت را برمیگرداند.
عملگر % چه کاربردی دارد؟
این عملگر باقیمانده تقسیم را محاسبه میکند و برای تشخیص زوج یا فرد بودن اعداد، بررسی مضربها و بسیاری از الگوریتمها کاربرد دارد.
چگونه یک عدد را به توان برسانیم؟
با استفاده از عملگر ** میتوان یک عدد را به توان دلخواه رساند. برای مثال:
2 ** 5
نتیجه برابر با ۳۲ خواهد بود.
آیا پایتون از قوانین ریاضی برای ترتیب انجام عملیات پیروی میکند؟
بله. ابتدا پرانتز، سپس توان، بعد ضرب و تقسیم و در نهایت جمع و تفریق اجرا میشوند.
برای انجام محاسبات پیشرفته چه ابزاری در پایتون وجود دارد؟
برای محاسباتی مانند جذر، لگاریتم، سینوس، کسینوس و سایر توابع ریاضی میتوانید از ماژول math استفاده کنید که در جلسه آینده با آن آشنا خواهید شد.
در جلسه بعد
اکنون که با عملگرهای ریاضی و نحوه انجام محاسبات در پایتون آشنا شدید، زمان آن رسیده است که یک گام مهم دیگر بردارید.
در جلسه نهم یاد میگیرید چگونه انواع داده را به یکدیگر تبدیل کنید و با استفاده از توابعی مانند int()، float() و str() دادههای متنی و عددی را به شکل دلخواه تبدیل کنید. همچنین با ماژول math آشنا میشوید و از توابع قدرتمند آن برای انجام محاسبات پیشرفته بهره خواهید برد.
اگر این آموزش برای شما مفید بود، آن را با دوستان خود به اشتراک بگذارید و نظرات یا پرسشهای خود را در بخش دیدگاهها با ما در میان بگذارید. همراه ما باشید تا در ادامه این مجموعه، قدمبهقدم به یک برنامهنویس پایتون حرفهای تبدیل شوید.
تحقیق و تدوین مهدی گمرکی
