انواع Data Type در پایتون
در زبانهای برنامه نویسی مختلف، متغیرها و دادهها در انواع مختلفی تعریف و ذخیره میشوند. نوع داده یا دیتا تایپ (Data Type) نقش مهمی در اجرای صحیح پروژه و بخشهای مختلف آن دارد. متغیرها وظیفه دارند مقدار مشخصی از نوع مشخصی از دادهها را در خود ذخیره کنند و در زمان مناسب، مورداستفاده قرار دهند. انواع داده ها در پایتون، حدود 10 نوع متغیر را شامل میشود؛ به همین دلیل تصمیم گرفتیم در این مطلب، به زبان ساده Data Type در پایتون را تشریح کرده و هرکدام را به صورت جداگانه بررسی کنیم.
متغیر چیست و چطور ساخته میشود؟
متغیرها، بخشهای کوچکی از حافظه هستند که میتوانند مقادیر مختلفی را درون خود نگهداری کنند. برای مثال، اگر یک بشقاب برنج را به عنوان داده درنظر بگیریم، هر قاشق برنج به عنوان یک متغیر درنظر گرفته میشود. همانطور که میتوانید مواد غذایی دیگر نظیر نمک، ترشی و خورشت را به برنج اضافه کنید و آنها را مخلوط کنید، میتوانید دادهها و متغیرهای مختلف را با یکدیگر ادغام کنید و عملیاتهای مختلفی روی آنها انجام دهید.
کد زیر، نحوه ساخت یک متغیر را نشان میدهد:
Var = Value
این متغیر دارای نام Var بوده و Value نیز مقدار متغیر را نشان میدهد. از آنجایی که پایتون یک زبان برنامه نویسی پویا (Dynamic) است؛ نیازی به تعیین نوع متغیر ندارد. بلکه مفسر با توجه به سینتکس، دیتا تایپ متغیر را تشخیص میدهد. البته برای تعریف متغیرهای مختلف، نیاز است علائم خاصی در زمان تعریف متغیر بنویسید تا در زمان اجرا، مفسر بتواند نوع متغیر را تشخیص دهد.
در پایتون، میتوان نوع متغیر را به صورت دستی تعریف کرد؛ اما این کار باعث افزایش حجم کدنویسی شده و ممکن است سرعت توسعه پروژه را تحت تاثیر قرار دهد. البته که تاثیر بسیار اندکی در افزایش سرعت اجرای کد دارد. به مثال زیر دقت کنید:
A = int(10)
در اینجا، A نام متغیر، عدد 10 مقدار متغیر و int نشان دهنده نوع متغیر (در اینجا اعداد صحیح) است.
در ادامه با انواع داده ها در پایتون و نحوه تعریف متغیر متناسب با نوع دادهها آشنا خواهیم شد؛ اما قبل از آن، بهتر است کمی درباره نحوه تشخیص Data Type در پایتون بدانیم.
تشخیص نوع متغیر یا دیتا تایپ ها در پایتون
ممکن است در برخی مواقع، نیاز داشته باشید بدانید یک متغیر از چه نوع داده تشکیل شده است. برای این کار، میتوانید از دستور ()type
در پایتون استفاده کنید. این دستور با توجه به متغیر، نوع آن را تشخیص داده و نمایش میدهد. برای مثال، کد زیر را مشاهده کنید:
A = 10 print(type (A))
خروجی:
<Class 'int'>
بنابراین متوجه میشویم مقدار 10، یک عدد صحیح است و متغیر A فقط امکان ذخیره دادههای عددی از نوع Int را دارد.
انواع دادههای داخلی در پایتون
منظور از دادههای داخلی، دستهای از داده ها در پایتون است که کاربرد نزدیک به یکدیگر دارند. در جدول زیر، انواع دادهها در زبان برنامه نویسی پایتون به صورت مختصر معرفی شده است.
نوع داده | ویژگیها | نام کلاس |
Integer | نگهداری اعداد صحیح به طول بینهایت | int |
Float | نگهداری اعداد اعشاری تا 15 رقم اعشار | float |
Complex | نگهداری اعداد صحیح و اعشاری به صورت مختلط | complex |
String | نگهداری رشتهها، غیرقابل تغییر | str |
List | دنباله قابل تغییر و دارای ترتیب | list |
Tuple | دنباله غیرقابل تغییر و دارای ترتیب | tuple |
Set | مجموعه قابل تغییر و بدون ترتیب | set |
FrozenSet | مجموعه غیرقابل تغییر و بدون ترتیب | frozenset |
Dictionary | نگهداری از عناصر و دادهها به صورت Key:Value | ()dict |
دادههای عددی در پایتون
دادههای عددی، یک از انواع داده ها در پایتون هستند که مقدارهای عددی را درون خود نگهداری میکنند. این داده ها در پایتون به سه دسته تقسیم میشوند:
- اعداد صحیح یا integer
- اعداد اعشاری یا Float
- اعداد مختلط یا Complex
کلاس Integer شامل دادههایی با اعداد صحیح مثبت و منفی میشود. یک متغیر عددی از نوع int میتواند بینهایت عدد صحیح را درون خود نگهداری کند. علاوه بر این، در صورتی که یک عدد اعشاری را درون یک متغیر از نوع صحیح قرار دهید، ارقام اعشاری آن قطع میشوند.
کلاس float برای نگهداری اعداد اعشاری تا 15 رقم اعشار مورداستفاده قرار میگیرد. در صورتی که یک عدد با بیشتر از 15 رقم اعشار را درون این کلاس قرار دهید، رقم به صورت گرد شده نمایش داده میشود.
کلاس Copmlex نوعی از دیتا تایپ ها در پایتون است که میتواند اعداد صحیح و اعشاری را درون خود ذخیره کند. نحوه تعریف این متغیر، به صورت x+yj
است که مقدار x نشان دهنده اعداد صحیح و مقدارy نشان دهنده اعداد اعشاری است. علاوه بر این، در صورتی که بیش از یک عدد صحیح یا اعشاری درون آن قرار دهید، اعداد با Data Type یکسان را با یکدیگر جمع میکند.
مثال زیر، میتواند به درک بهتر این داده ها در پایتون کمک کند:
# integer Data Type A = 10 # float Data Type B = 5.01 # Complex Data Type C = 2+0.5j # Variables Printing print(A, "and", B, "and", C) print("A is a", type(A)) print("B is a", type(B)) print("C is a", type(C))
خروجی:
10 and 5.01 and (2+0.5j) A is a <class 'int'> B is a <class 'float'> C is a <class 'complex'>
در ابتدا، سه متغیر به نامهای A و B و C ایجاد کردیم و هرکدام را به ترتیب با اعداد صحیح، اعشاری و اعداد مختلط مقداردهی کردیم. در ادامه، همه آنها را با استفاده از دستور ()print
چاپ کردیم. در ادامه نیز با استفاده از دستور ()Type
، نوع این داده ها در پایتون را مشاهده کردیم.
نکته مهم در زمان کار با دادههای عددی، نحوه کار با آنها در محاسبات است. در صورتی که بخواهید یک متغیر int را با یک متغیر از نوع float جمع کنید، خروجی باید به شکل float باشد. برای این کار، میتوانید یک متغیر سوم از نوع float تعریف کنید و حاصل جمع را درون آن بریزید. همچنین میتوانید فرمولی به صورت B += A
بنویسید تا حاصل عملیات، درون متغیر B قرار بگیرد.
دادههای رشتهای در پایتون
نوعی دیگر از انواع data Type در پایتون، رشته است که با اسم String شناخته میشود. این دیتا تایپ، همه محتویات خود را به عنوان یک رشته از کاراکترهای یونیکد (Unicode) درنظر میگیرد. برای تعریف متغیر رشتهای در پایتون، باید دادههای درون آن را بین دو کوتیشن '
یا "
قرار دهید. حتی در صورت قرار دادن یک عدد درون کوتیشن، مفسر پایتون آن را به عنوان یک رشته درنظر میگیرد. نکته مهم درباره رشتهها در پایتون، تغییر ناپذیری آنها است؛ بنابراین در صورت تعریف یک متغیر از نوع String در پایتون، امکان تغییر و مقداردهی مجدد آن وجود ندارد.
در صورتی که بخواهیم یک داده را به صورت رشته و در چندین خط بنویسیم، میتوانیم از: سه کوتیشن ”’ یا سه دبل کوتیشن””” استفاده کنیم.
# String Data Type A = """Hello World""" B = "10" # Variables Printing print(A, "and", B) print(A, "is a", type(A)) print(B, "is a", type(B))
در این کد، ابتدا دو متغیر به نامهای A و B از نوع رشته در پایتون ایجاد میکنیم. سپس با استفاده از دستور print، ابتدا یک بار هر دو متغیر را چاپ کرده و سپس در دو خط آخر، نوع متغیرها را با دستور ()type در خروجی نمایش میدهیم.
Hello World and 10 Hello World is a <class 'str'> 10 is a <class 'str'>
همچنین میتوانیم عناصر درون یک متغیر با Data Type رشتهای را با استفاده از اندیسها و به صورت جداگانه فراخوانی کنیم. برای مثال، کد زیر اندیس شماره 7 از متغیر H و اندیس شماره 8 تا 15 از متغیر G را فراخوانی میکند.
نکته مهم: اندیسها در Python از عدد 0 آغاز میشوند.
H = "Hello My Frined" G = "Python Learning" print(H[7]) print(G[7:15])
خروجی:
Y Learning
متدهای قابل استفاده در رشتهها
در شرایطی، امکان استفاده از دستورات و متدهای خاصی وجود دارد که اعمال مختلفی را برای ما انجام میدهند. در جرول زیر، برخی متدهای مربوط به دیتا تایپهای رشتهای را مشاهده میکنید.
نام متد | کاربرد |
()strip | نمایش یک کپی از رشته با حذف فضاهای خالی (WhiteSpace) از ابتدا و انتهای رشته |
()capitalize | نمایش یک کپی از رشته با بزرگ کردن نخستین حرف انگلیسی در آن |
(count(sub | پیدا کردن یک رشته در یک رشته دیگر |
()lower | نمایش یک کپی از رشته با تبدیل همه حروف به حروف کوچک |
()upper | نمایش یک کپی از رشته با تبدیل همه حروف به حروف بزرگ |
دادههای توالی یا دنباله در پایتون
دنبالهها یکی دیگر از انواع داده ها در پایتون هستند که دو کلاس را شامل میشوند.
- لیست یا list
- تاپل یا Tuple
لیست چیست؟ لیست، نوعی از داده ها در زبان پایتون است که امکان ذخیره هر نوع داده را با رعایت ترتیب دارد. رعایت ترتیب یعنی هرکدام از عناصر، دارای ادرس مشخصی به نام اندیس هستند. با استفاده از اندیسها، میتوانید عناصر یا اشیا درون لیستها را به صورت تکی نمایش دهید. بنابراین تفاوتی از نظر نحوه قرارگیری اشیا درون لیست وجود ندارد؛ حتی میتوانید درون یک لیست، تعدادی لیست دیگر نیز قرار دهید! دادههای درون یک لیست، با استفاده از علامت کاما (,) از یکدیگر جدا میشوند و همگی درون کروشه [] قرار میگیرند. نکته مهم درباره لیستها، تغییرپذیر بودن مقادیر درون آنها است. میتوانیم با استفاده از اندیسها، عناصر درون یک لیست را تغییر دهیم.
تاپل چیست؟ تاپلها، از هر نظر مشابه لیست هستند؛ با این تفاوت که اشیا درون آن قابل تغییر نبوده و درون پرانتز قرار میگیرند. با توجه به تغییرناپذیر بودن Tupleها، استفاده از این نوع دیتا تایپ در پایتون باعث افزایش سرعت اجرا و کاهش مصرف حافظه میشود؛ زیرا نیاز به تغییر ندارند و مقادیر آنها، همیشه ثابت هستند. از Tupleها برای نوشتن دادههای محافظت شده و غیرقابل تغییر استفاده میشود.
قطعه کد زیر، مثالی از انواع دنباله در پایتون است:
# List Data Type A = [1,5,10,"Hello"] # Tuple Data Type B = (1,11,15,"SabzLearn Academy") # Variables Printing print(A) print(A[0]) print(B) print(B[3])
خروجی:
[1, 5, 10, 'Hello'] 1 (1, 11, 15, ' SabzLearn Academy') SabzLearn Academy
در این مثال، ابتدا دو متغیر از نوع List و Tuple ایجاد کردیم و آنها را متغیرهای A و B نامیدیم. در ادامه، متغیر A را چاپ کرده و مقادیر آن را دریافت کردیم. در دستور بعد، اندیس شماره 0 از متغیر A را درخواست کردیم و مقدار 1 را دریافت کردیم. در ادامه، متغیر B که از نوع تاپل بود را چاپ کرده و از مفسر خواستیم اندیس 3 را به ما نمایش دهد.
متدهای قابل استفاده در دنبالهها
در جدول زیر، برخی از متدهای کاربردی که امکان استفاده در دنباله list را دارند معرفی شده است.
نام متد |
کاربرد |
()append | یک عضو یا شی به انتهای لیست اضافه میکند. |
()extend | عضوها و کاراکترهای یک شی را به انتهای لیست اضافه میکند. |
(insert(x, y | عضو جدید x را در اندیس موردنظر y قرار میدهد. |
()remove | از سمت چپ به دنبال مقدار درون آرگومان میگردد و اولین نتیجه صحیح را حذف میکند. در صورت عدم یافتن نتیجه، یک ارور نمایش داده میشود. |
([pop([x | عضو متناظر با اندیس x را حذف کرده و نمایش میدهد. در صورت عدم وجود x، یک ارور نمایش داده میشود. |
()clear | اشیا درون لیست را حذف میکند. |
()del | مشابه متد clear() اشیا درون لیست را حذف میکند. |
()count | تعداد وجود شی موجود در آرگومان را بررسی و نمایش میدهد. |
()reverse | اشیا موجود در لیست را به صورت برعکس و از آخر به اول نمایش میدهد. |
()sort | اشیا درون لیست را براسا نوع و مقدار، مرتب سازی میکند. |
دادههای مجموعهای در پایتون
مجموعهها، نوعی از داده ها در پایتون هستند که گروهی از دادهها و اشیا را بدون ترتیب خاصی در خود ذخیره میکنند. دو نوع مجموعه در پایتون وجود دارد.
- کلاس Set
- کلاس FrozenSet
کلاس ست یا Set، یکی از دیتا تایپ ها در پایتون است که در دسته بندی مجموعهها قرار میگیرد. کلاس set با استفاده از آکولاد تعریف شده و مقادیر درون آن، نمیتوانند تکراری باشند. در صورتی که یک عنصر تکراری درون یک متغیر از نوع Set تعریف کنید، تنها یکی از آنها را نمایش میدهد. از دیگر ویژگیهای دیتا تایپ Set در پایتون میتوان به تغییرپذیری اشاره کرد؛ البته با توجه به عدم وجود ترتیب در عناصر و اشیا درون یک Set، نمیتوان با استفاده از اندیسها این کار را انجام داد.
ست منجمد یا FrozenSet، نوع دیگری از دادههای مجموعهای است که برخلاف Set، اشیا درون آن قابل تغییر یا حذف نیستند. از این رو، سرعت اجرای بالاتری نسبت به set دارد. قطعه کد زیر، نحوه ایجاد دیتا تایپ Set و FrozenSet را نشان میدهد:
# Set Data Type A = {1,50.1,"Data Types in Python",10,5.001,20,24} # frozenset Data Type B = frozenset((1,5,0.005,'Hello World')) # Variables Printing print(A) print(B)
در اینجا، ابتدا یک متغیر به نام A از نوع سِت ساختیم و آن را مقداردهی کردیم. سپس متغیر دیگری با نام B در کلاس Frozenset ساخته و از هر دو متغیر، خروجی میگیریم. هربار که از مجموعهها خروجی بگیرید، ترتیب متفاوتی دریافت میکنید.
خروجی:
{'Data Types in Python', 1, 5.001, 10, 50.1, 20, 24} frozenset({'Hello World', 1, 5, 0.005})
متدهای قابل استفاده در مجموعهها
چند متد کاربردی برای استفاده از مجموعهها وجود دارد که در جدول زیر معرفی شدهاند.
نام متد |
کاربرد |
()union | اجتماع عناصر دو یا چند مجموعه و ساخت مجموعه جدید از اجتماع آنها |
()intersection | اشتراک عناصر دو یا چند مجموعه و ساخت مجموعه جدید از اشتراک آنها |
()difference | محاسبه تفاضل دو مجموعه |
()symmetric_difference | محاسبه تفاضل متقارن دو مجموعه |
()issubset | بررسی زیرمجموعههای یک مجموعه |
()issuperset | بررسی Superset یک مجموعه |
()clear | حذف همه عناصر درون یک مجموعه |
()add | اضافه کردن یک یا چند عنصر به مجموعه |
()remove | حذف کردن یک یا چند عنصر از مجموعه، در صورت عدم وجود عنصر موردنظر، یک ارور نمایش داده میشود. |
()discard | مشابه remove، در صورت عدم وجود عنصر موردنظر، هیچ اروری نمایش داده نمیشود. |
()pop | به صورت دلخواه، یکی از عناصر درون مجموعه را حذف و مقدار آن را نمایش میدهد. در صورت خالی بودن مجوعه، یک ارور نمایش داده میشود. |
دادههای دیکشنری در پایتون
از نظر فنی، دیکشنریها هم نوعی مجموعه به حساب میآیند؛ با این تفاوت که دارای ساختار متفاوتی نسبت به مجموعهها هستند. مقداردهی در دیکشنری به صورت «Key:Value»
انجام میشود و برای فراخوانی اشیا درون دیکشنری نیز، از کلید استفاده میشود. با توجه به نحوه مقداردهی مجموعه، مفسر پایتون Data Type آن کلاس را مشخص میکند؛ بنابراین به سادگی و با پیروی از روش مقداردهی «کلید:مقدار» یا همان «Key:Value»
میتوانید دیکشنری در پایتون ایجاد کنید؛ البته که امکان استفاده از متد ()dict
نیز برای این کار وجود دارد. برای فراخوانی عناصر درون یک متغیر از نوع Dict، میتوانیم از کلیدها یا دستور ()get
استفاده کنیم.
کد زیر، نحوه ایجاد یک داده از نوع دیکشنری در پایتون را نشان میدهد:
# Dictionary Data Type A = {'Name' : 'Mohammad', 'Age' : 18, 'Address' : "Iran"} # Variables Printing print(A.get('Age')) print(A['Age']) print(A.get('Number'))
متغیر A از نوع دیکشنری بوده و دارای سه مقدار Name و Age و Address است که مقادیر مشخصی دارند. در ابتدا، با استفاده از دستور print، از مفسر میخواهیم مقدار کلید Age را چاپ کند؛ یک بار با استفاده از دستور ()get
و بار دیگر، بدون استفاده از آن. مزیت این دستور، در این است که اگر کلید درخواست شده، درون دیکشنری وجود نداشته باشد، مقدار None را نمایش میدهد؛ درست مانند دستور print(A.get('Number'))
. این در حالیست که در حالت عادی، کد با Syntax Error مواجه و متوقف میشود.
خروجی:
18 18 None
متدهای قابل استفاده در دیکشنری
در جدول زیر، برخی از مهمترین متدهای قابل استفاده در دیکشنریها را شرح دادهایم.
نام متد | کاربرد |
()items | نمایش تمام عناصر درون دیکشنری |
()values | نمایش تمام مقادیر درون دیکشنری |
()keys | نمایش تمام کلیدهای درون دیکشنری |
()clear | پاک کردن عناصر درون دیکشنری |
()update | تغییر مقادیر کلیدهای یکسان یک دیکشنری با یک دیکشنری دیگر که در آرگومان تعیین شده |
دادههای منطقی در پایتون
نوعی از Data Type در پایتون، داده های منطقی تنها در یک کلاس به نام Boolean وجود دارند. متغیرهای منطقی همواره دارای مقدار 0 یا 1 یا همان مقادیر True و False هستند و برای مقایسه مقادیر و ساخت دستورات شرطی در پایتون کاربرد دارند. برای مثال، زمانی که قصد مقایسه دو متغیر با یکدیگر را داریم، در واقع در حال استفاده از دادههای منطقی هستیم. مثال زیر، نمونهای از کاربرد دادههای بولین در پایتون است.
A = 10 B = 9 print(A > B) print(A == B) print(A < B)
در ابتدا، دو متغیر از نوع int ایجاد کردیم و سپس، از عملگرهای مقایسهای برای مقایسه آنها استفاده کردیم.
خروجی:
True False False
همانطور که در خروجی قابل مشاهده است، تنها دستور A > B از نظر منطقی صحیح است؛ زیرا عدد 10 از 9 بزرگتر بوده و در نتیجه، مقایسه صحیح است. در سایر دستورات، مقایسه صحیح نبوده و در نتیجه، مقدار False نمایش داده شده است.
جمع بندی
در این مطلب، با انواع داده ها در پایتون و نحوه کاربرد آنها اشنا شدیم و دانستیم که در پایتونData Typeها به 6 گروه عددی، رشتهای، توالی یا دنباله، مجموعهای، منطقی و دیکشنری تقسیم میشوند. همچنین نحوه ایجاد متغیرها و هرکدام از انواع داده ها در پایتون را فرا گرفته و دانستیم چطور نوع یک متغیر را با استفاده از دستور type() پیدا کنیم.
چگونه در پایتون حرفهای تر شویم؟
با خواندن مقالات مختلف احتمالا بتوانید تا حدی به بخشهای مختلف پایتون مسلط شوید اما قطعا بیبرنامه بودن و اصولی نبودن مسیر یادگیری باعث میشود شما نسبت به زبان برنامه نویسی پایتون دلسرد شوید یا اینکه آن را بصورت کامل یاد نگیرید؛ اما نگران این موضوع نباشید، تیم سبزلرن برای شما آموزش صفر تا صد پایتون را قرار داده تا بتوانید بهصورت اصولی و حرفهای در زبان پایتون متخصص شوید. اما این همه ماجرا نیست!! این دوره دارای پشتیبانی انلاین نیز هست و هرکجا به هر مشکلی برخوردید، افراد متخصص در این زبان آماده پاسخگویی به اشکالات و سوالات شما هستند، چی بهتر از این؟ پس فرصت را غنیمت بشمرید و همین الان در این دوره شرکت کنید و بصورت تخصصی یادگیری خودتان را شروع کنید.
در انتها، اگر مشکلی در استفاده از داده ها در پایتون داشتید، در بخش نظرات آن را با ما به اشتراک بزارید.
نظری برای این مقاله ثبت نشده است