اعداد در پایتون - انجام عملیاتهای ریاضی در پایتون
اعداد در برنامه نویسی بسیار رایج هستند. از اعداد برای نشان دادن مواردی مانند ابعاد اندازه صفحه، موقعیت های جغرافیایی، پول و امتیاز، مدت زمانی که در یک فیلم می گذرد، موقعیت های آواتار بازی و رنگ ها از طریق اختصاص کدهای عددی استفاده می شوند.
توانایی انجام کارهای ریاضی به طور موثر در برنامه نویسی، مهارت مهمی است که باید توسعه یابد، زیرا به دفعات کار با اعداد انجام می شود. اگرچه درک سطح بالای ریاضیات مطمئناً می تواند به شما کمک کند تا یک برنامه نویس بهتر شوید، اما یک پیش شرط نیست. اگر سابقه ریاضی ندارید، سعی کنید ریاضیات را ابزاری برای تحقق بخشیدن به آنچه می خواهید به دست آورید و همچنین راهی برای بهبود تفکر منطقی خود بدانید.
در این مقاله، با اعداد مختلف مورد استفاده در پایتون، نحوه تبدیل از یک نوع داده به نوع دیگر و عملیات ریاضی پشتیبانی شده در پایتون آشنا خواهید شد.
پایتون دارای سه نوع داده عددی است: اعداد صحیح، اعداد اعشاری و اعداد مختلط. در این بخش، با اعداد صحیح و اعداد اعشاری، که دو نوع اعداد رایج هستند، آشنا خواهید شد. در بخش بعدی با اعداد مختلط آشنا خواهید شد.
اعداد صحیح (integer) در پایتون
اعداد صحیح عددی کامل بدون ارقام اعشار است. به عنوان مثال، 1 عدد صحیح است، اما 1.0 نیست. نام نوع داده عدد صحیح int یا integer است که می توانید با تابع type آن را ببینید:
>>> type(1)
<class 'int'>
با تایپ عدد مورد نظر می توانید یک عدد صحیح ایجاد کنید. به عنوان مثال، کد زیر عدد صحیح 25 را به متغیر num نسبت می دهند:
>>> num = 25
هنگامی که یک عدد صحیح مانند این ایجاد می کنید، مقدار 25 یک عدد صحیح واقعی(integer literal) نامیده می شود زیرا عدد صحیح به معنای واقعی کلمه در کد تایپ می شود.
همچنین میتوانید از تابع ()int برای تبدیل یک آبجکت به عدد صحیح استفاده کنید:
>>> int("25")
25
int("25")
یک عدد صحیح واقعی نیست زیرا مقدار صحیح از یک رشته ایجاد می شود.
وقتی اعداد بزرگ را با دست می نویسید، معمولاً ارقام را به گروه های سه تایی که با کاما یا نقطه اعشار از هم جدا می شوند، گروه بندی می کنید. خواندن عدد 1,000,000 بسیار ساده تر از 1000000 است.
در پایتون، نمیتوانید از کاما برای گروهبندی ارقام در اعداد صحیح استفاده کنید، اما میتوانید از زیرخط (_) استفاده کنید. هر دو مورد زیر روشهای معتبری برای نمایش عدد یک میلیون به عنوان یک عدد صحیح واقعی هستند:
>>> 1000000
1000000
>>> 1_000_000
1000000
هیچ محدودیتی برای اینکه یک عدد صحیح می تواند بزرگ باشد وجود ندارد، که با توجه به اینکه رایانه ها دارای حافظه محدودی هستند، ممکن است تعجب آور باشد. سعی کنید بیشترین عددی را که فکر می کنید را در پنجره تعاملی IDLE تایپ کنید. پایتون بدون مشکل می تواند آن را مدیریت کند!
اعداد اعشاری (float) در پایتون
عدد ممیز شناور یا به اختصار float عددی با رقم اعشار است. 1.0
یک عدد ممیز شناور است، همانطور که 2.75-
است. نام نوع داده ممیز شناور float است:
>>> type(1.0)
<class 'float'>
مانند اعداد صحیح، اعداد اعشاری را هم میتوان به شکل مستقیم ایجاد کرد و یا با استفاده از تابع ()float از آبجکت های دیگر تبدیل کرد:
>>> a = -3.9
>>> a
-3.9
>>> float("1.25")
1.25
سه راه برای نشان دادن بخش اعشاری وجود دارد. هر یک از موارد زیر یک رقم اعشار با مقدار یک میلیون ایجاد می کند:
>>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
دو روش اول مشابه دو تکنیک برای ایجاد اعداد صحیح هستند. رویکرد سوم از E notation برای ایجاد یک عدد اعشار استفاده می کند.
عبارات و عملیات های ریاضی در پایتون
در این بخش، نحوه انجام محاسبات پایه مانند جمع، تفریق، ضرب و تقسیم را با اعداد در پایتون خواهید آموخت. در طول مسیر، برخی از قراردادها را برای نوشتن عبارات ریاضی در کد یاد خواهید گرفت.
جمع اعداد
برای جمع دو عدد در پایتون می توانید از عملگر +
استفاده کنید:
>>> 1 + 2
3
به دو عدد اطراف +
عملوند(operand) می گویند. در مثال بالا، هر دو عملوند اعداد صحیح هستند، اما لازم نیست عملوندها از یک نوع باشند. میتوانید اعداد اعشار و صحیح را با هم جمع کنید:
>>> 1.0 + 2
3.0
دقت کنید که نتیجه به شکل یک عدد اعشار میباشد. هر زمان که یک عدد اعشار به یک عدد اضافه شود، نتیجه یک عدد اعشار خواهد بود. جمع کردن دو عدد صحیح با هم همیشه به یک int منجر می شود.
تفریق اعداد
برای تفریق اعداد در پایتون میتوانید از عملگر -
استفاده کنید:
>>> 1 - 1
0
>>> 5.0 - 3
2.0
درست مانند جمع کردن دو عدد صحیح، تفریق دو عدد صحیح همیشه به یک عدد integer منجر میشود. هرگاه یکی از عملوندها float باشد، نتیجه نیز یک float خواهد بود.
عملگر -
همچنین برای نشان دادن اعداد منفی استفاده می شود:
>>> -3
-3
می توانید یک عدد منفی را از عدد دیگری کم کنید، اما همانطور که در زیر می بینید، گاهی اوقات ممکن است گیج کننده به نظر برسد:
>>> 1 - -3
4
>>> 1 --3
4
>>> 1- -3
4
>>> 1--3
4
از چهار مثال بالا، اولین مورد مطابق با PEP 8 است. گفته شد، میتوانید 3- را با پرانتز احاطه کنید تا واضحتر شود:
>>> 1 - (-3)
4
استفاده از پرانتز ایده خوبی است زیرا کد شما را واضح تر می کند. کامپیوترها کد را اجرا می کنند، اما انسان ها کد را می خوانند. هر کاری که بتوانید برای خواندن و درک بهتر کد خود انجام دهید، چیز خوبی است.
ضرب اعداد
برای ضرب اعداد در پایتون از عملگر *
استفاده کنید:
>>> 3 * 3
9
>>> 2 * 8.0
16.0
نوع عددی که از ضرب به دست می آورید از همان قوانین جمع و تفریق پیروی می کند. با ضرب دو عدد صحیح یک int و ضرب یک عدد در یک float یک float می شود.
تقسیم اعداد
برای تقسیم اعداد در پایتون میتوانید از عملگر /
استفاده کنید:
>>> 9 / 3
3.0
>>> 5.0 / 2
2.5
برخلاف جمع، تفریق و ضرب، تقسیم با عملگر / همیشه یک float برمیگرداند. اگر می خواهید مطمئن شوید که بعد از تقسیم دو عدد یک عدد صحیح به دست می آورید، می توانید از int() برای تبدیل نتیجه استفاده کنید:
>>> int(9 / 3)
3
به خاطر داشته باشید که تابع ()int قسمت اعشاری عدد را حذف میکند:
>>> int(5.0 / 2)
2
اگر نوشتن int(5.0 / 2)
کمی طولانی به نظر می رسد، پایتون یک عملگر تقسیم دیگر دارد که با دو علامت //
مشخص میشود. این عملگر در زمان تقسیم بخش اعشاری را حذف میکند و همیشه مقداری صحیح برمیگرداند:
>>> 9 // 3
3
>>> 5.0 // 2
2.0
>>> -3 // 2
-2
عملگر //
ابتدا عدد سمت چپ را بر عدد سمت راست تقسیم می کند و سپس نتیجه بدست آمده را به پایین گرد می کند. دقت کنید که نمیتوانید هیچ عددی را بر صفر تقسیم کنید زیرا از نظر ریاضی تقسم بر صفر ممکن نیست:
>>> 1 / 0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: division by zero
اگر عددی را به صفر تقسیم کنید پایتون به شما یک خطای ZeroDivisionError می دهد و به شما اطلاع می دهد که به تازگی سعی کرده اید یک قانون اساسی جهان را زیر پا بگذارید.
توان اعداد
می توانید با استفاده از عملگر ** عددی را به توان برسانید:
>>> 2 ** 2
4
>>> 2 ** 3
8
>>> 2 ** 4
16
میتوانید اعداد اعشار را نیز به توان برسانید:
>>> 3 ** 1.5
5.196152422706632
>>> 9 ** 0.5
3.0
برای به توان رساندن اعداد در پایتون میتوانید از تابع pow نیز استفاده کنید. تابع pow دو آرگومان میگیرد. آرگومان اول عدد پایه است و آرگومان دوم تعداد دفعاتی است که میخواهید عدد پایه به توان برسد، است.
در مثال زیر، عدد 2 به توان 3 میرسانیم:
>>> pow(2, 3)
8
اما تفاوت تابع pow با علامت ** چیست؟ تابع pow آرگومان سوم اختیاری دارد که باقیمانده عدد به توان رسیده را بر محاسبه میکند که معادل عملیات (x ** y) % z
است. مثلا در کد زیر ابتدا عدد 2 را به توان 3 رسانده و نتیجه 8 بدست می آید. سپس باقیمانده 8 به عدد 2 محاسبه میشود که 0 است:
>>> pow(2, 3, 2)
0
عملگرهای پایتون
عملگر یک نماد یا عملکرد است که نشان دهنده یک عملیات است. به عنوان مثال ، در ریاضی علامت جمع یا + عملیاتی است که جمع را نشان می دهد.
در پایتون ، برخی از اپراتورهای آشنا را خواهیم دید که از ریاضی آورده شده اند ، اما اپراتورهای دیگری که استفاده خواهیم کرد ، مختص برنامه نویسی رایانه هستند.
در اینجا یک جدول مرجع سریع از اپراتورهای مرتبط با ریاضیات در پایتون آورده شده است. ما در این آموزش کلیه عملیات زیر را پوشش خواهیم داد.
عملیات | مقدار بازگشتی |
---|---|
x + y | جمع x و y |
x - y | تفریق x و y |
-x | منفی x |
x * y | ضرب x و y |
x / y | تقسیم اعشاری x و y |
x // y | تقسیم صحیح x و y |
x % y | باقیمانده x و y |
x ** y | توان x و y |
عملیات حسابی Unary
یک عبارت ریاضی واحد فقط از یک جز یا عنصر تشکیل شده است و در پایتون از علامت های جمع و منفی می توان به عنوان یک عنصر منفرد با یک مقدار برای بازگرداندن هویت مقدار (+) یا تغییر علامت مقدار استفاده کرد .
اگرچه معمولاً استفاده نمی شود ، اما علامت بعلاوه هویت مقدار را نشان می دهد. می توانیم از علامت مثبت با مقادیر مثبت استفاده کنیم:
i = 3.3
print(+i)
# OUTPUT
3.3
وقتی از علامت بعلاوه با مقدار منفی استفاده می کنیم ، هویت آن مقدار را نیز برمی گرداند و در این حالت مقدار منفی است:
j = -19
print(+j)
# OUTPUT
-19
با مقدار منفی علامت مثبت همان مقدار منفی را برمی گرداند.
علامت منهای ، علامت یک مقدار را تغییر می دهد. بنابراین ، هنگامی که یک مقدار مثبت را عبور می دهیم ، متوجه خواهیم شد که علامت منفی قبل از مقدار ، مقدار منفی را برمی گرداند:
i = 3.3
print(-i)
# OUTPUT
-3.3
متناوباً ، وقتی از عملگر unary علامت منفی با مقدار منفی استفاده می کنیم ، مقدار مثبت برمی گردد:
j = -19
print(-j)
# OUTPUT
19
عملیات حساب unary نشان داده شده با علامت جمع و علامت منفی یا مقدار مقدار را در حالت + i یا علامت مخالف مقدار را در -i برمی گرداند.
Modulo
عملگر٪ را modulo است که باقیمانده را به جای ضریب پس از تقسیم برمی گرداند. این برای یافتن اعدادی که مضربی از یک عدد هستند ، مفید است.
بیایید به modulo در عمل نگاه کنیم:
o = 85
p = 15
print(o % p)
# OUTPUT
10
برای تجزیه این ، 85 تقسیم بر 15 ، ضریب 5 را با 10 باقی مانده برمی گرداند. مقدار 10 همان چیزی است که در اینجا برمی گردد ، زیرا عملگر modulo باقی مانده عبارت تقسیم را برمی گرداند.
اگر از دو float با modulo استفاده کنیم ، مقدار float برای باقیمانده بازگردانده می شود:
q = 36.0
r = 6.0
print(o % p)
# OUTPUT
0.0
در مورد 36.0 تقسیم بر 6.0 ، هیچ باقیمانده ای وجود ندارد ، بنابراین مقدار 0.0 بازگردانده می شود.
اولویت اپراتور
در پایتون ، مانند ریاضیات ، باید توجه داشته باشیم که عملگرها به ترتیب اولویت ارزیابی می شوند ، نه از چپ به راست یا راست به چپ.
اگر به عبارت زیر نگاه کنیم:
u = 10 + 10 * 5
ممکن است آن را از چپ به راست بخوانیم ، اما به یاد داشته باشید که ابتدا ضرب انجام می شود ، بنابراین اگر چاپ (u) بگیریم ، مقدار زیر را دریافت خواهیم کرد:
60
این به این دلیل است که 10 * 5 به 50 ارزیابی می کند و سپس 10 را اضافه می کنیم تا 60 را به عنوان نتیجه نهایی برگردانیم.
اگر در عوض می خواهیم مقدار 10 را به 10 اضافه کنیم ، سپس آن جمع را در 5 ضرب کنیم ، می توانیم از پرانتز درست مثل ریاضیات استفاده کنیم:
u = (10 + 10) * 5
print(u)
# OUTPUT
100
یکی از راه های به خاطر سپردن ترتیب کار از طریق مخفف PEMDAS است:
Order | Letter | Stands for |
---|---|---|
1 | P | Parentheses |
2 | E | Exponent |
3 | M | Multiplication |
4 | D | Division |
5 | A | Addition |
6 | S | Subtraction |
ممکن است برای ترتیب عملیات با کلمات اختصاری دیگری مانند BEDMAS یا BODMAS آشنا باشید. هر کلمه اختصاری که به درد شما بخورد ، سعی کنید آن را هنگام انجام عملیات ریاضی در پایتون بخاطر داشته باشید تا نتایج مورد انتظار شما برگردانده شود.
اپراتورهای مقداردهی
متداولترین عملگر انتساب عملی است که قبلاً از آن استفاده کرده اید: علامت برابر =. عملگر = تخصیص مقدار سمت راست را به یک متغیر در سمت چپ اختصاص می دهد. به عنوان مثال ، v = 23 مقدار عدد صحیح 23 را به متغیر v اختصاص می دهد.
هنگام برنامه نویسی ، معمولاً استفاده از عملگرهای انتساب مرکب که عملیاتی را روی مقدار متغیر انجام می دهند و سپس مقدار جدید حاصل را به آن متغیر اختصاص می دهیم. این عملگرهای مرکب یک عملگر حساب را با عملگر = ترکیب می کنند ، بنابراین برای اضافه کردن + و = برای بدست آوردن عملگر مرکب + =. بیایید ببینیم چه شکلی است:
w = 5
w += 1
print(w)
# OUTPUT
6
ابتدا متغیر w را برابر با مقدار 5 قرار می دهیم ، سپس از عملگر انتساب مرکب + استفاده می کنیم تا عدد سمت راست را به مقدار متغیر سمت چپ اضافه کنیم و سپس نتیجه را به w نسبت می دهیم.
عملگرهای انتساب مرکب معمولاً در مورد حلقه ها مورد استفاده قرار می گیرند ، که وقتی می خواهید یک فرآیند را چندین بار تکرار کنید ، از آنها استفاده خواهید کرد:
for x in range (0, 7):
x *= 2
print(x)
# OUTPUT
0
2
4
6
8
10
12
با حلقه for ، ما توانستیم روند عملگر * = را که متغیر w را در عدد 2 ضرب می کند و سپس نتیجه را در متغیر w برای تکرار بعدی حلقه for به خود اختصاص دهیم ، خودکار کنیم.
پایتون برای هر یک از عملگرهای حسابی که در این مقاله آموزش داده شده است ، یک عملگر انتساب مرکب دارد:
y += 1 # add then assign value
y -= 1 # subtract then assign value
y *= 2 # multiply then assign value
y /= 3 # divide then assign value
y // = 5 # floor divide then assign value
y **= 2 # increase to the power of then assign value
y %= 3 # return remainder then assign value
اپراتورهای انتساب مرکب می توانند در مواردی که نیاز به افزایش یا کاهش تدریجی کارها هستند و یا نیاز به انجام خودکار فرآیندهای خاص در برنامه خود ، مفید باشند.