اع

اعداد در Python

78 تمرین

درباره‌ی اعداد

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 بیندازید.

ویرایش از طریق GitHub این پیوند در پنجره یا زبانه‌ی جدیدی باز می‌شود

اعداد را یاد بگیرید

تمرین کردن قفل شده است

برای تمرین اعداد قفل 3 تمرین دیگر را باز کنید