«اعداد صحیح» (Integer)، فقط قسمت کامل مقادیر عددی را نمایش میدهند و قسمت اعشار را در نظر نمیگیرند. برای داده Integer از نام مخفف Int در پایتون هم استفاده میکنند. تقریبا در بیشتر برنامههای ساخته شده با پایتون با اعداد کار میکنیم. به همین منظور هم زبان برنامه نویسی پایتون روشهای مختلفی را برای پشتیبانی از عملیات مربوط به ذخیرهسازی و پردازش اعداد به صورت درونی ارائه کرده است. اعداد در پایتون به سه نوع اصلی «اعداد صحیح» (Integer)، «اعداد قادر به نمایش مقادیر اعشاری» (Float) و «اعداد مختلط یا مرکب» (Complex Numbers) تقسیم میشوند. همه نوع این اعداد را میتوان به یکدیگر تبدیل کرد و در عملیات ریاضی مختلف در کنار هم بهکار برد. نوع داده Int یکی از سادهترین و مهمترین نوع دادهها برای شروع یادگیری برنامهنویسی است.
در این مطلب از مجله فرادرس، درباره اعداد صحیح Int بحث کردهایم. در ابتدا این اعداد را تعریف کرده و سپس به انواع روش نمایش این اعداد از مبنای ده گرفته تا باینری، اوکتال و هگزادسیمال پیش میرویم. با تابع int() آشنا شده و در نهایت هم چند ویژگی و نکته مهم درباره نوع داده Int در پایتون را بررسی کردهایم.
Int در پایتون چیست؟
کلمه Int در پایتون، به دو منظور مختلف استفاده میشود. یکی مربوط به داده Integer است و استفاده دوم مربوط به نام تابعی برای تبدیل نوع داده عددی است.
- در هر مقدار عددی در پایتون که برای ذخیره بخش اعشار عدد، تدارکات لازم در نظر گرفته نشده از داده Integer است. به این نکته توجه داشته باشید که اگر عدد بخش کسری داشت، حتی با اینکه بخش کسری عددی برابر با ۰ بود، بازهم به معنی این است که آن عدد از داده Integer نیست. برای مثال عدد ۱۰٫۰ از داده Integer نیست. این عدد داده Float است حتی با اینکه بخش کسری آن برابر با ۰ است و عدد ارزشی برابر با مقدار ۱۰ دارد. کلمه Int مخفف کلمه Integer است. عدد Integer میتواند ۰، مثبت یا منفی باشد. برای مثال ۱۲۳۴، ۰ و ۵۵- همه نمایندههای نوع داده Int در پایتون هستند.
- تابع int() هم به طور خلاصه برای تبدیل کردن اعداد از سایر نوعهای داده به Integer استفاده میشود.
در کل سه روش مختلف برای ساخت شی از داده Integer وجود دارد.
- با استفاده از تعریف تحت اللفظی.
- هر عبارتی که به عنوان عدد صحیح ارزیابی میشود.
- با استفاده از تابع int()
روش اول: تعریف عینی یا تحتاللفظی نمادی است که برای نمایش ثابتهای عددی به صورت مستقیم در کدهای برنامهنویسی استفاده میشود. برای مثال، در کد زیر عددی را از نوع Int با روش تعریف عینی، تعریف كردهایم.
روش دوم: در کد زیر، با توجه به تعریف بالا مقداری با نوع Integer را به متغیر c تخصیص دادهایم.
1a = 10
2b = 20
3c = a + b
4
5print ("a:", a, "type:", type(a))
6print ("c:", c, "type:", type(c))
بر اثر اجرای کدهای بالا خروجی زیر در کنسول پایتون به کاربر نمایش داده میشود.
a: 10 type: <class 'int'> c: 30 type: <class 'int'>
در کد بالا متغیر c در واقع از داده Integer است. اما قبل از آن عبارت a + b ارزیابی میشود. سپس مقدار جواب این عبارت به صورت مستقیم به متغیر c تخصیص داده شده است.
روش سوم: شامل شکل دادن شیئی از کلاس Integer با بهکاربردن تابع int() است. این تابع هر مقدار، با نوع داده رشته یا Float در پایتون را به داده Integer تبدیل میکند.
1>>> a=int(10.5)
2>>> b=int("100")
چگونه زبان برنامه نویسی پایتون را بیاموزیم؟
برای آموختن بهتر هر مطلبی، بهترین روش بهکارگیری حواس دیداری وشنیداری در طی آموزش است. برای همین مطالعه صرف از روی کتاب مخصوصا در مورد برنامه نویسی چندان توصیه نمیشود. مشاهده فیلمهای آموزشی یکی از بهترین گزینههای در دسترس برای شما مخاطبین عزیز است. این روش آموزشی مزایای زیادی نسبت به سایر روشها دارد. این روش حتی نسبت به کلاسهای حضوری نیز امتیازاتی دارد که در ادامه فهرست کردهایم.
- عدم وجود محدودیت زمانی
- هزینههای مالی بسیار مقرون بهصرفهتر از کلاسهای حضوری و دانشگاه
- تضمین کیفیت فیلمها و مطالب آموزشی مخصوصا در وبسایت آموزشی فرادرس
- امکان بازبینی چندباره مطالب تدریس شده
- و غیره
امتیازات خاص فیلمهای آموزشی، باعث پرطرفدار شدن این تکنیک شدهاند.
بنابراین بهترین راه، استفاده از فیلمهای آموزشی است. وبسایت آموزشی فرادرس فیلمهای بسیار خوبی با کیفیت عالی در روش آموزش و متناسب با همه سطوح دانش را برای دانشجویان فراهم کرده است. در صورتی که در اوایل مسیر یادگیری پایتون هستید تماشای دورههای آموزشی زیر برای شما توصیه میشوند.
پیشنهاد کلی ما برای شروع یادگیری زبان برنامهنویسی پایتون تماشای فیلم مربوط به دوره رایگان آموزش پایتون، برنامه نویسی سریع و آسان در ۱۴۰ دقیقه است. این یک فرصت بسیار عالی برای شروع به حرفهای شدن است. البته اگر از قبل با این زبان برنامهنویسی قدرتمند آشنا شده و به دنبال افزایش مهارتهای خود هستید، میتوانید بهعنوان مثال چند دوره زیر را در نظر داشته باشید.
در صورت تمایل با کلیک بر روی تصویر بالا میتوانید به صفحه اصلی این مجموعه آموزشی منتقل شده و سایر فیلمهای آموزشی مربوط به پایتون را نیز مشاهده کنید.
نمایش اعداد Int در انواع دستگاه های نمایش اعداد
میتوانیم اعداد Integer را در مبنای «دودویی یا باینری» (Binary)، «هشتی یا اوکتال» (Octal)، «شانزدهی یا هگزادسیمال» (Hexa-decimal) نیز نمایش داد. با این حال، در هر مبنایی که نمایش دهیم شی به عنوان نوع داده عدد صحیح Integer در نظر گرفته میشود.
نمایش Int در پایتون با استفاده از اعداد Binary
عددی که فقط شامل ارقام دودویی ۰ و ۱ میشود و پیشوند «0b» به آن اضافه شده، از نوع اعداد Binary است. اگر این نوع، عدد Binary را به متغیری تخصیص دهیم، باز هم متغیر از نوع داده Int در نظر گرفته خواهد شد.
نمایش عدد Int به شکل اعداد Binary باعث میشود که آن مقدار به صورت مستقیم به عنوان نمایش عینی عدد صحیح، ذخیره شود.
برای ذخیره کردن اعداد Int با شکل Binary دو روش مختلف قابل استفاده هستند.
- خود عدد را به صورت عینی در مبنای دو ذخیره کنیم. در این حالت نمای دودویی مقدار، به صورت عدد صحیح ذخیره میشود.
- شکل Binary را با استفاده از تابع int() در مبنای دو ذخیره کنیم. تابع int() خودش عدد Binary را به عدد صحیح تبدیل میکند.
در کد پایین هر دو روش مورد اشاره در بالا را پیادهسازی کردهایم.
1a=0b101
2print ("a:",a, "type:",type(a))
3
4b=int("0b101011", 2)
5print ("b:",b, "type:",type(b))
با اجرای کد بالا نتایج زیر به عنوان خروجی به کاربر نمایش داده میشود.
a: 5 type: <class 'int'> b: 43 type: <class 'int'>
در پایتون تابعی هم با نام bin() وجود دارد. این تابع از عدد صحیحی که به عنوان ورودی دریافت میکند، دادهای با نوع رشته از مقدار باینری معادل آن برمیگرداند.
1a=43
2b=bin(a)
3print ("Integer:",a, "Binary equivalent:",b)
با اجرای کد بالا خروجی زیر بر روی کنسول پایتون نمایش داده میشود.
Integer: 43 Binary equivalent: 0b101011
نمایش اعداد Int در پایتون با مبنای هشت
به اعداد مبنای هشت، اعداد اوکتال هم گفته میشود. هر عدد اوکتالی فقط از ارقام بین ۰ تا ۷ تشکیل شده است. به منظور مشخص کردن اینکه اعداد Int از نشانهگذاری اوکتال استفاده میکنند، باید در ابتدای اعداد از پیشوند «0O» یا «0o » استفاده کنیم. از هر دو حالت بزرگ و کوچک حرف «O» میتوان استفاده کرد.
برای مثال، فرض کنیم باید عدد ۷۱ را در مبنای هشت نمایش دهیم. تعریف عینی این عدد در مبنای هشت به شکل کد زیر نمایش داده شده.
1a=0O107
2print (a, type(a))
با اجرای کد بالا خروجی زیر به کاربر نمایش داده میشود.
71 <class 'int'>
توجه کنید که این شی به صورت درونی به عنوان نوع داده صحیح ذخیره شده است. مقدار معادل عدد اوکتال 107 در مبنای ده برابر با 71 است.
از آنجا که سیستم نمایش اعداد در مبنای هشت، از ۸ نماد -ارقام ۰ تا ۷- تشکیل میشود، پایه آن برابر با عدد ۸ است. بنابراین، در زمان استفاده از تابع int() برای تبدیل رشتهای در مبنای اوکتال به عدد صحیح، باید آرگومان پایه را بر روی عدد ۸ تنظیم کنیم.
1a=int('20',8)
2print (a, type(a))
بر اثر اجرای کد بالا خروجی زیر به کاربر نمایش داده میشود.
16 <class 'int'>
به همین ترتیب، برای مثال مقدار دهدهی عدد «۳۰ در مبنای هشت» برابر با ۱۶ است.
در کد زیر، از مقادیر نشانهگذاری شده اوکتال، دو عدد integer به دست میآوریم. سپس اعداد را با هم جمع بسته و مقدار نهایی را در خروجی نمایش میدهیم.
1a=0O56
2print ("a:",a, "type:",type(a))
3
4b=int("0O31",8)
5print ("b:",b, "type:",type(b))
6
7c=a+b
8print ("addition:", c)
بر اثر اجرای کد بالا خروجی زیر در کنسول پایتون به کاربر نمایش داده میشود.
a: 46 type: <class 'int'> b: 25 type: <class 'int'> addition: 71
برای به دست آوردن مقدار اوکتال یا مبنای هشت اعداد صحیح به صورت رشته، از تابع oct() استفاده میکنیم.
1a=oct(71)
2print (a, type(a))
نمایش اعداد Int در پایتون با مبنای شانزده
همانطور که از نام این دستگاه نمایش اعداد مشخص است، ۱۶ نماد برای نمایش ارقام در سیستم شانزدهی یا هگزادسیمال وجود دارد. این ارقام از ۰ تا ۹ و از A تا F هستند. ۱۰ رقم اول مانند ارقام موجود در سیستم دهدهیاند. حروف الفبای A و B و C و D و E و F هم به ترتیب برابر با مقادیر ۱۱، ۱۲، ۱۳، ۱۴، ۱۵ و ۱۶ هستند. برای استفاده از این نمادهای الفبایی میتوان از شکل بزرگ یا کوچک حروف استفاده کرد.
در صورت تمایل به آشنا شدن با انواع داده عددی در پایتون، به صورت مختصر و مفید، میتوانید مطلب نوع داده عددی در پایتون، به زبان ساده را از مجله فرادرس مطالعه کنید.
برای نمایش عینی اعداد صحیح Int در «مبنای شانزده» (Hexadecimal) باید به اعداد پیشوند «0x» یا «0X » را الحاق کنیم.
1a=0XA2
2print (a, type(a))
با اجرای کد بالا خروجی زیر در کنسول نمایش داده میشود
162 <class 'int'>
برای تبدیل کردن رشتهای از ارقام در مبنای شانزده به اعداد صحیح در مبنای ده، در تابعint() باید پایه را به روی 16 تنظیم کنیم.
1a=int('0X1e', 16)
2print (a, type(a))
قطعه کد زیر را اجرا میکنیم. در این قطعه کد، رشتهای در مبنای هگزادسیمال را به برنامه دادهایم. در خروجی برنامه، باید معادل Integer آن را دریافت کنیم.
1num_string = "A1"
2number = int(num_string, 16)
3print ("Hexadecimal:", num_string, "Integer:",number)
بر اثر اجرای کد بالا، نتیجه زیر به عنوان خروجی در کنسول پایتون نمایش داده میشود.
Hexadecimal: A1 Integer: 161
البته، اگر رشته مورد نظر دارای نماد یا کاراکتری به غیر از کاراکترهای مجاز در سیستم داده هگزادسیمال باشد، باعث اعلام خطا از طرف پایتون میشود.
1num_string = "A1X001"
2print (int(num_string, 16))
با اجرای برنامه بالا، خطای زیر در کنسول به کاربر نمایش داده میشود.
Traceback (most recent call last): File "/home/main.py", line 2, in print (int(num_string, 16)) ValueError: invalid literal for int() with base 16: 'A1X001'
کتابخانه استاندارد پایتون دارای تابع hex() است. با کمک این تابع میتوانیم مقدار معادل هر عدد صحیح داده Integer را در مبنای شانزده نمایش دهیم.
1a=hex(161)
2print (a, type(a))
با اجرای کد بالا خروجی زیر تولید میشود.
0xa1 <class 'str'>
با وجود اینکه هر عدد صحیحی را میتوان در مبناهای دودویی، هشت یا شانزده نمایش داد، اما به صورت درونی آن عدد هنوز Integer است. بنابراین در زمان اجرای عملیات ریاضی، روش نمایش اعداد اهمیتی ندارد.
1a=10 #decimal
2b=0b10 #binary
3c=0O10 #octal
4d=0XA #Hexadecimal
5e=a+b+c+d
6
7print ("addition:", e)
در نتیجه اجرای کد بالا میبینیم که برنامه بدون برگرداندن هیچ خطایی جواب صحیح را به کاربر نمایش میدهد.
addition: 30
ویژگی های نوع داده Int در پایتون
در این بخش به بررسی چند مورد از خواص اعداد با داده Integer در پایتون پرداختهایم. استفاده صحیح از انواع داده مختلف در عملیات محاسباتی گوناگون در پایتون باعث افزایش سرعت اجرای برنامهها میشود. این سرعت در برنامههای بزرگ و سِروِری بهشدت مورد نیاز خواهد بود. اما روشهای دیگری هم برای افزایش سرعت اجرا پردازش وجود دارند که برای آشنا شدن با آنها پیشنهاد میکنیم که فیلم آموزش افزایش سرعت اجرای برنامه ها در Python را از فرادرس مشاهده کنید. برای راحتی کار، لینک این فیلم آموزشی را در ادامه نیز قرار دادهایم.
بیشترین اندازه اعداد Integer
برعکس بیشتر زبانهای برنامهنویسی دیگر، در پایتون۳ اعداد نوع داده Int میتوانند مقادیر بسیار بزرگی را شامل شوند. این اعداد بدون مرز هستند. به این معنا که هیچ محدودیتی بر روی اندازه اعداد با نوع داده Int وجود ندارد. به عنوان مثال نمونهای از اعداد Int را همراه با عملیات ریاضی سادهای بر روی آن در کد زیر نمایش دادهایم.
1>>> num = 98762345098709872345000
2>>> num + 1
398762345098709872345001
البته، از آنجا که حافظه کامپیوتر ما بدون محدودیت نیست، هنوز هم تولید اعداد بزرگ با محدودیت روبهرو میشوند. اما به صورت منطقی، در اجرای هر نوع هدف کاربردی و عملیاتی، جایی برای نگرانی وجود ندارد.
کلاس Int
متغیرهای نوع داده Int و همینطور نمادهای عینی این اعداد، همه اشیائی از کلاس Int هستند. همانطور که در کد زیر نمایش داده شده است، با استفاده از متد type() در پایتون میتوان نام کلاس مرجع هر نمونه و شی را بدست آورد.
1print(type(100))
2
3x=1234567890
4print(type(x))
5
6y=5000000000000000000000000000000000000000000000000000000
7print(type(y))
خروجی حاصل از اجرای قطعات کد بالا به شکل زیر است.
<class 'int'> <class 'int'> <class 'int'>
توجه: در پایتون مجاز به استفاده از صفرهای قبل از اعداد Int در مقادیر غیر صفر نیستیم. برای مثال عدد 000123 عددی نامعتبر است و عدد 0000 برابر با مقدار 0 است.
تعریف اعداد Integer به شکل نامعتبر باعث ظاهر شدن پیغام خطای استثنای syntaxError میشود.
1x=001234567890 #syntaxError: invalid token
استفاده از جدا کننده ها در Int
پایتون اجازه استفاده از کاراکتر کاما , را بهعنوان جداکننده در ارقام نمیدهد. در صورتی که برای انجام محاسبات نیاز به جدا کردن دستهای ارقام، مثلا هر سه رقم، داریم باید از کاراکتر «خط زیر» (Underscore) ـ به عنوان جداکننده استفاده کنیم.
1x = 1_234_567_890
2print(x) #output: 1234567890
توجه: اعداد integer باید بدون قسمت کسری -بعد از نقطه اعشار- نمایش داده شوند. اگر در پایتون، به اعداد قسمت اعشاری اضافه کنیم، عدد مورد نظر به صورت خودکار به داده Float تبدیل میشود.
1x=5
2print(type(x)) #output: <class 'int'>
3
4x=5.0
5print(type(x)) #output: <class 'float'>
تابع Int
با کمک تابع int() میتوانیم سایر نوعهای داده از قبیل Float و String در پایتون را به Integer تبدیل کنیم.
1x = int('100')
2print(x) #output: 100
3
4y = int('-10')
5print(y) #output: -10
6
7z = int(5.5)
8print(z) #output: 5
9
10n = int('100', 2)
11print(n) #output: 4
آموزش های تکمیلی پایتون
بعد از اینکه مهارتهای خود را در زبان برنامهنویسی پایتون در حد مناسبی ارتقا دادیم، قبل از ورود به بازار کار باید به پیدا کردن کاستیهای مهارتی خودمان توجه کنیم. برای متوجه شدن درباره اینکه چه بخشهایی از دانش برنامهنویسیمان نیاز به مطالعه و تمرین بیشتر دارد، میتوانیم به بررسی آموزشهای پروژه محور یا حتی تماشای فیلمهای مربوط به دورههای حرفهای برنامهنویسی بپردازیم. بنابراین قدم بعدی، آمادهسازی خود به منظور ورود به دنیای برنامهنویسی متناسب با بازار کار است. برای ورود به این بخش چند مورد از فیلمهای آموزشی تخصصی فرادرس را به شما پیشنهاد میدهیم.
در صورت تمایل با کلیک بر روی تصویر بالا میتوانید به صفحه اصلی این مجموعه آموزشی منتقل شده و سایر فیلمهای آموزشی مربوط به پایتون را نیز مشاهده کنید. در این مجموعه آموزشی فیلمهای مربوط به دورههای پروژه محور پایتون در انواع سطوح علمی موجود هستند. این دورهها بهترین گزینه ممکن برای آموزش ترکیب تکنیکهای مختلف برنامهنویسی در کنار همدیگراند.
جمع بندی
سه نوع داده عددی اصلی در برنامهنویسی وجود دارد، داده Integer که با مخفف Int هم نمایش داده میشود، داده Float و نوع داده اعداد مرکب. در زبانهای برنامه نویسی مختلف هر کدام از این نوعهای داده دارای تفاوتهای جزئی در ساختار و اندازه فضای اشغالی و سایر موارد میشوند. در پایتون هم ویژگیهای منحصر به فرد خود را دارند. نوع داده Int که برای نمایش اعداد صحیح استفاده میشود به عنوان کلاس در پایون تعریف شده است. بنابراین، دارای متدهای درونی منحصر به خود است. این نوع داده بدون محدودیت منطقی و کاملا کاربردی ارائه شده است.
در این مطلب از مجله فرادرس، با نوع داده Int و انواع روشهای نمایش آن در مبناهای مختلف اعداد، آشنا شدیم. همچنین، متوجه شدیم که تابع int() برای تبدیل دادههای سایر نوعها به Int استفاده میشود. با تسلط بر روی خواص نوع دادههای مختلف در پایتون میتوانیم برنامههای بسیار کارآمدتر با ریزهکاریهای حرفهایتری طراحی و پیادهسازی کنیم.
source