همانطور که از نامگذاری این نوع دادهها مشخص است، Numeric Types (دادههای عددی) برای استفاده از اعداد با همان مفهومی که در علوم ریاضی از عدد در ذهن داریم تعریف شدهاند و نیاز به توضیح نیست که در علم ریاضی اعداد بر اساس معیارهای متفاوتی در مجموعههای مختلفی مانند اعداد طبیعی، اعداد صحیح، اعداد حقیقی و ... دستهبندی میشوند که بعضی از آنها اعضای مشترکی دارند، بعضی کاملاً جدا از هم هستند و بعضی مجموعهها شامل تمام اعضای یک یا چند مجموعهٔ دیگر میشوند. در بیشتر زبانهای برنامهنویسی از جمله پایتون نیز همین رویه برقرار است و اعداد در قالب انواع مختلفی دستهبندی میشوند به طوری که انواع عددی دیفالت در زبان پایتون عبارتند از:
- عدد صحیح (Integer)
- عدد اعشاری (Floating Point)
- عدد مختلط (Complex)
- نوع بولی (Boolean)
اعداد صحیح
این نوع دادهها نمایندهٔ اعداد صحیح شامل همهٔ اعداد کامل مثبت، منفی و صفر همچون 90، 0 و 4- هستند (منظور از اعداد کامل اعدادی است که ممیز اعشاری نداشته باشند.) و در زبان برنامهنویسی پایتون اعداد صحیح نمونههایی از کلاس int
میباشند.
به خاطر داشته باشید |
در نسخههای قبلی پایتون محدودیتی برای تعریف دادههای نوع صحیح وجود داشت و نمیتوانستیم از مقادیری کمتر یا بیشتر از آن محدوده در برنامههای خود استفاده کنیم اما در عین حال این بازهٔ محدودشده هم بسیار بزرگ بود و غالباً مقادیر بین 9/223/372/036/854/775/808- تا 9/223/372/036/854/775/807 را شامل میشد که پاسخگوی نیاز بسیاری از برنامهنویسان بود. با وجود این، در نسخهٔ جدید پایتون (3.0.0) این محدودیت برداشته شده است و تا جایی که حافظهٔ سیستم جا برای ذخیرهٔ دادهها داشته باشد، میتوانید اندازهٔ این اعداد را به دلخواه بزرگ کنید. |
به صورت معمول، ما از اعداد در مبنای 10 استفاده میکنیم به طوری که این دست اعداد میتوانند ارقام 0 تا 9 را داشته باشند. فرض کنید بخواهیم تعداد چند مکعب را در مبنای 10 به دست آوریم. برای این کار از جدولی به شکل زیر استفاده میکنیم که فعلاً خالی است:
رقم اول رقم دوم رقم سوم
مکعبها را یکییکی در خانهٔ رقم اول قرار میدهیم. وقتی تعداد مکعبهای این خانه به 10 رسید، یکی از مکعبهای آن را در خانهٔ رقم دوم قرار میدهیم و بقیه را دور میریزیم و با مکعبهای باقی مخلوط نمیکنیم. باز هم مانند مرحلهٔ اول عمل میکنیم و مکعبها را یکییکی در خانهٔ اول قرار میدهیم و هر بار با رسیدن به عدد 10 این خانه را خالی میکنیم و یکی از مکعبهای خانهٔ رقم اول را در خانهٔ رقم دوم قرار میدهیم. با ادامهٔ کار در صورتی که تعداد مکعبهای ردیف دوم به 10 رسید این خانه را خالی می کنیم و یکی از مکعبهای آن را در خانهٔ رقم سوم قرار می دهیم. در واقع، این روند برای تمام خانههای جدول انجام میشود زیرا ظرفیت هر یک از خانههای این جدول 9 مکعب است و بیشتر از این تعداد نمیتوانند در خود جای دهند و اگر ظرفیت خانهٔ سوم هم پر شد، از سمت چپ جدول را گسترش میدهیم. به طور مثال، با تمام شدن مکعبها به جدول زیر میرسیم:
رقم اول رقم دوم رقم سوم
ارقام را از سمت راست به چپ مینویسیم (۵، ۸ و ۳) و به این ترتیب تعداد مکعبها را با تقسیمبندی آنها به دستههای دهتایی و در واقع در مبنای 10 به دست میآوریم. برای نمایش اعداد در سایر مبناها هم تقسیمبندی به دستههای متناسب با آن اعداد صورت میگیرد به طوری که مثلاً برای به دست آوردن نمایش تعداد n مکعب در مبنای 2، آنها را به دستههای دوتایی تقسیم میکنیم. پایتون هم این قابلیت را دارد که اعداد صحیح را در پایههای 2، 8، و 16 نیز بشناسد و به کار گیرد و از آنجا که فعلاً در مرحلهٔ آموزش مقدماتی هستیم، خود را درگیر کار با این نوع دادهها نمیکنیم.
اعداد اعشاری
در حالت معمول وقتی ما با اعداد کار میکنیم تفاوتی بین 1 و 1.0 قائل نمیشویم اما باید بدانیم که مفسر زبان برنامهنویسی پایتون آنها را دو عدد متفاوت در نظر میگیرد و اگر بخواهیم این اعداد را به صورت دادههایی در برنامه وارد کنیم، پایتون برای نمونهسازی از دو کلاس متفاوت استفاده خواهد کرد. تمام اعدادی که شامل یک نقطه اعشار باشند بر مبنای کلاسی با نام float
ساخته میشوند. به طور مثال، اعداد 3.14 یا 0.5498- و یا حتی عدد 4.0 که بعد از نقطه اعشار رقمی برای آن وجود ندارد و معادل 4.0 است، همگی نمونههای ساختهشده از این کلاس هستند که اساساً برای وارد کردن دیتا تایپ اعشاری در برنامه دو راه داریم:
- روش اول درج اعداد به صورت معمولی با استفاده از نقطه اعشار است (به طور مثال وارد کردن عدد 3.14)
- روش دوم درج اعداد به صورت نماد علمی است.
برای مثال، برای وارد کردن دادهای با مقدار 314 × 2-10 که معادل 3.14 است از عبارتی به شکل 314e-2 یا 314E-2 استفاده میکنیم که در آنها از حروف e یا E به جای ضرب در 10 به توان استفاده میکنیم. با وارد کردن دادهها به شکل زیر در پنجرهٔ شِل در ادیتور IDLE، خروجیها را به صورت اعداد اعشاری مشاهده میکنیم:
>>> 3.14
3.14
>>> 314e-2
3.14
>>> 314E-2
3.14
>>> 3e2
300.0
اعداد مختلط
این احتمال وجود دارد که شما هیچ آشنایی قبلی با اعداد مختلط نداشته باشید چرا که مبحث اعداد مختلط در دروس دانشگاهی برخی رشتههای خاص تدریس میشود. با این وجود، به سبب کاربردهای گستردهٔ اعداد مختلط در مسائل دنیای واقعی مانند حوزههای مهندسی برق، مکانیک، گرافیک کامپیوتری، سیستمهای دینامیک و بسیاری از موارد دیگر، طراحان زبان برنامهنویسی پایتون این نوع از اعداد را به صورت پیشفرض در اختیار دولوپرهای این زبان قرار دادهاند. به طور کلی، یک عدد مختلط را میتوان به صورت نقطهای روی یک دستگاه مختصات دوبُعدی نمایش داد:
همانطور که در تصویر میبینید، هر عدد مختلط از دو بخش تشکیل شده است که یکی بخش Real (حقیقی) است که فاصلهٔ افقی نقطه از مبدأ مختصات را نشان میدهد و دیگری بخش Imaginary (انتزاعی) که بیانگر فاصلهٔ عمودی نقطه از مبدأ مختصات است.
یکی از شیوههای معمول نمایش اعداد مختلط نوشتن آنها به صورت جمع قسمت حقیقی و انتزاعی است که برای ایجاد تمایز بین این دو قسمت حرف j را به عنوان واحد انتزاعی در کنار این قسمت قرار میدهیم. پایتون نیز از همین الگو برای تعریف نوع دادههای مختلط که نمونههایی از کلاس complex
میباشند استفاده میکند و از همین روی عباراتی متشکل از دو قسمت حقیقی و انتزاعی به صورت 8j + 3 ،2j - 2 ،-7j + 3 دادههایی با نوع مختلط را به مفسر پایتون معرفی میکنند.
اعداد بولی
گاهی اوقات لازم است در زمان اجرای کدهای برنامه، مفسر پایتون درست یا نادرست بودن چیزی را ارزیابی کند. مثلاً فرض کنید که در زمان کدنویسی یک بازی کامپیوتری بگوییم که در صورت برخورد موشک به سفینه، یک انفجار رخ دهد. برای اجرای این دستور در زمان بازی، مفسر دائماً این شرط را بررسی میکند که «آیا موشک با سفینه برخورد کرده است یا خیر؟» در واقع، باید دادهای در اختیار کامپیوتر قرار بگیرد که درست یا نادرست بودن این شرط را نشان دهد که بدین منظور در زبان برنامهنویسی پایتون از دیتا تایپی که از کلاس bool
ساخته میشود استفاده میکنیم که در حقیقت زیرمجموعهای از نوع int
است چرا که این نوع دادهها تنها میتوانند دو مقدار 0 یا 1 را داشته باشند (مقدار 0 نشاندهندهٔ حالت False یا «نادرست» و مقدار 1 نشاندهندهٔ حالت True یا «درست» است.)
در ادامهٔ مثال فرضی فوق، تا وقتی که دادهای با مقدار False در اختیار مفسر قرار بگیرد، انفجار صورت نمیگیرد اما به محض آنکه مفسر دادهای را دریافت کند که در ارزیابی مقدار آن را True تشخیص دهد، سفینه منفجر میشود.
نکته |
مفسر پایتون بعضی از اشیاء مانند انواع مختلف دادهٔ عددی صفر یعنی 0، 0.0 و 0j را برابر با مقدار بولی False ارزیابی میکند. |
اکنون که با مهمترین انواع عددی در زبان برنامهنویسی پایتون آشنا شدیم، میتوانیم از آنها در برنامههای آتی خود استفاده کنیم اما علاوه بر آنچه در این آموزش توضیح داده شد، بدانید که در پایتون انواع عددی دیگری مانند دسیمال و کَسر نیز در نظر گرفته شده است که در آموزشهای بعدی در کنار سایر نکات جزئیتر آنها را معرفی خواهیم کرد.