Python سه نوع مختلف از اعداد توکار دارد: اعداد صحیح (int)، اعداد اعشاری (float) و اعداد مختلط (complex).
کسرها (fractions.Fraction) و دهدهیها (decimal.Decimal) هم از طریق import از کتابخانهی استاندارد در دسترساند.
اعداد صحیح، از جمله اعداد شانزدهشانزدهی (hex())، هشتوهشتی (oct()) و دودویی (bin()) که بدون رقم اعشار هستند، هم ints شناسایی میشوند:
# Ints are whole numbers.
>>> 1234
1234
>>> type(1234)
<class 'int'>
>>> -12
-12
اعدادی که یک ممیز اعشار دارند (با جزء کسری یا بدون آن) floats شناسایی میشوند:
>>> 3.45
3.45
>>> type(3.45)
<class 'float'>
Python بهطور کامل از محاسبات بین این انواع مختلف عدد پشتیبانی میکند و هنگام استفاده با عملگرهای دودویی حساب (+، -، *، /، // و %)، اعداد محدودتر را به همتاهای گستردهترشان تبدیل میکند.
همهی اعداد (بهجز مختلط) از همهی عملیات حسابی پشتیبانی میکنند که بر اساس اولویت عملگرها ارزیابی میشوند.
پشتیبانی از توابع ریاضی (فراتر از + و -) برای اعداد مختلط در ماژول cmath یافت میشود.
عملگرهای جمع و تفریق همانطور که در ریاضی معمولی عمل میکنند، رفتار میکنند.
اگر یک یا چند عملوند float باشد، بقیهی intها هم به float تبدیل میشوند:
>>> 5 - 3
2
# The int is widened to a float here, and a float is returned.
>>> 3 + 4.0
7.0
مانند جمع و تفریق، ضرب هم اعداد محدودتر را به همتاهای گستردهترشان تبدیل میکند:
>>> 3 * 2
6
>>> 3 * 2.0
6.0
تقسیم همیشه یک float برمیگرداند، حتی اگر نتیجه یک عدد صحیح باشد:
>>> 6/5
1.2
>>> 6/2
3.0
اگر نتیجهی int لازم دارید، میتوانید از تقسیم صحیح برای برشزدن نتیجه استفاده کنید.
تقسیم صحیح با عملگر // انجام میشود:
>>> 6//5
1
>>> 6//2
3
عملگر باقیمانده (%) باقیماندهی تقسیم دو عملوند را برمیگرداند:
# The result of % is zero here, because dividing 8 by 2 leaves no remainder
>>> 8 % 2
0
# The result of % is 2 here, because 3 only goes into 5 once, with 2 left over
>>> 5 % 3
2
روش دیگری برای نگاه کردن به ۵ % ۳:
>>> whole_part = int(5/3)
1
>>> decimal_part = 5/3 - whole_part
0.6666666666666667
>>> whole_remainder = decimal_part * 3
2.0
توانرسانی با عملگر ** انجام میشود:
>>> 2 ** 3
8
>>> 4 ** 0.5
2
اعداد را میتوان با توابع توکار int() و float() از int به float و از float به int تبدیل کرد:
>>> int(3.45)
3
>>> float(3)
3.0
Python یک تابع توکار round(<number>, <decimal_places>) ارائه میدهد تا یک عدد اعشاری را تا تعداد مشخصی رقم اعشار گرد کند.
اگر تعداد رقمهای اعشار مشخص نشود، عدد به نزدیکترین عدد صحیح گرد میشود و یک int برمیگرداند:
>>> round(3.1415926535, 2)
3.14
>>> round(3.1415926535)
3
Python به شما اجازه میدهد از پرانتز برای گروهبندی عبارتها استفاده کنید. این کار وقتی مفید است که بخواهید ترتیب پیشفرض عملیات را تغییر دهید.
>>> 2 + 3 * 4
14
>>> (2 + 3) * 4
20
Python از قاعدهی PEMDAS برای اولویت عملگرها پیروی میکند.
این یعنی محاسبات داخل () بالاترین اولویت را دارند و پس از آن **، سپس *، /، //، %، + و - قرار میگیرند:
>>> 2 + 3 - 4 * 4
-11
>>> (2 + 3 - 4) * 4
4
# In the following example, the `**` operator has the highest priority, then `*`, then `+`
# Meaning we first do 4 ** 4, then 3 * 256, then 2 + 768
>>> 2 + 3 * 4 ** 4
770
اعداد صحیح در Python دقت نامحدود دارند؛ تعداد رقمها فقط با حافظهی در دسترس سیستم میزبان محدود میشود.
اعداد اعشاری معمولاً با double در C پیادهسازی میشوند (۱۵ رقم دقت)، اما بازنماییشان بسته به سیستم میزبان متفاوت است.
اعداد مختلط یک بخش real و یک بخش imaginary دارند که هر دو با اعداد اعشاری بازنمایی میشوند.
برای بحثهای مفصلتر دربارهی مسائل و محدودیتهای حساب اعشاری در زبانهای برنامهنویسی، نگاهی به 0.30000000000000004.com و آموزش Python بیندازید.