شنبه ۲۹ دي ۱۴۰۳
Tut24 آموزش برنامه نویسی و مجله تخصصی فناوری ورود/عضویت

آموزش پایتون - انواع داده‌ها

انواع داده‌های پایتون (data types) برای تعریف نوع متغیر استفاده می‌شوند. انواع داده‌ها مشخص می‌کنند که نوع داده‌ای که می‌خواهیم در یک متغیر ذخیره کنیم چیست. داده‌های ذخیره شده در حافظه می‌توانند از انواع مختلفی باشند. به عنوان مثال، سن یک شخص به صورت یک مقدار عددی و آدرس او به صورت کاراکترهای الفبایی ذخیره می‌شود.

پایتون انواع داده‌های داخلی متعددی دارد که در این آموزش به آنها پرداخته خواهد شد:

  • عددی - int (عدد صحیح)، float (عدد اعشاری)، complex (عدد مختلط)
  • رشته - str
  • دنباله - list (فهرست)، tuple (تاپل)، range (بازه)
  • دودویی - bytes (بایت)، bytearray (آرایه بایت)، memoryview (مشاهده حافظه)
  • نگاشت - dict (واژه‌نامه)
  • منطقی - bool (بولین)
  • مجموعه - set (مجموعه)، frozenset (مجموعه منجمد)
  • خالی - None (نوع نامعلوم)

انواع داده‌های عددی پایتون

انواع داده‌های عددی پایتون مقادیر عددی را ذخیره می‌کنند. اشیاء عددی ایجاد می‌شوند وقتی به آنها یک مقدار اختصاص می‌دهید. به عنوان مثال -

var1 = 1
var2 = 10
var3 = 10.023

پایتون از چهار نوع عددی مختلف پشتیبانی می‌کند −

  • int (عدد صحیح با علامت)
  • long (عدد صحیح بلند)
  • float (مقادیر اعشاری ممیزدار)
  • complex (اعداد مختلط)

مثال‌ها

در زیر چند مثال از اعداد آورده شده است −

int long float complex
10 51924361L 0.0 3.14j
100 -0x19323L 15.20 45.j
-786 0122L -21.9 9.322e-36j
080 0xDEFABCECBDAECBFBAEl 32.3+e18 .876j
-0490 535633629843L -90. -.6545+0J
-0x260 -052318172735L -32.54e100 3e+26J
0x69 -4721885298529L 70.2-E12 4.53e-7j
  • پایتون به شما اجازه می‌دهد که از حرف l کوچک به همراه long استفاده کنید، اما توصیه می‌شود فقط از حرف L بزرگ استفاده کنید تا ابهام با عدد 1 را از بین ببرید. پایتون اعداد صحیح بلند را با حرف L بزرگ نمایش می‌دهد.

  • یک عدد مختلط از یک جفت مرتب از اعداد حقیقی ممیزدار تشکیل شده است که با x + yj نشان داده می‌شوند، جایی که x و y اعداد حقیقی و j واحد غیرحقیقی است.

مثال

مثال زیر نحوه استفاده از اعداد صحیح، اعشاری و مختلط را نشان می‌دهد:

# integer variable.
a=100
print("The type of variable having value", a, " is ", type(a))

# float variable.
b=20.345
print("The type of variable having value", b, " is ", type(b))

# complex variable.
c=10+3j
print("The type of variable having value", c, " is ", type(c))

نوع داده رشته‌ای پایتون

رشته‌های پایتون به عنوان یک مجموعه پیوسته از کاراکترها که داخل نقل قول قرار می‌گیرند، شناسایی می‌شوند. پایتون به شکل همزمان از جفت‌های نقل قول تکی (سینگل کوتیشن) یا دوتایی (دابل کوتیشن) پشتیبانی می‌کند. زیرمجموعه‌های رشته با استفاده از عملگر برش ([ ] و [:]) و با شماره‌گذاری از ۰ در ابتدای رشته و به سمت -۱ در انتها، قابل استخراج هستند.

علامت پلاس (+) عملگر اتصال رشته و علامت ستاره (*) عملگر تکرار در پایتون است. به عنوان مثال −

str = 'Hello World!'

print (str)          # Prints complete string
print (str[0])       # Prints first character of the string
print (str[2:5])     # Prints characters starting from 3rd to 5th
print (str[2:])      # Prints string starting from 3rd character
print (str * 2)      # Prints string two times
print (str + "TEST") # Prints concatenated string

این نتیجه زیر را ایجاد می کند -

Hello World!
H
llo
llo World!
Hello World!Hello World!
Hello World!TEST

نوع داده لیست‌های پایتون

لیست‌های پایتون چندشکل‌ترین نوع داده‌های ترکیبی هستند. یک لیست پایتون شامل آیتم‌هایی است که با کاما جدا شده و درون براکت‌های مربعی ([ ]) قرار می‌گیرند. به نسبتی، لیست‌های پایتون شبیه به آرایه‌ها در زبان C هستند. یک تفاوت بین آن‌ها این است که آیتم‌های یک لیست پایتون می‌توانند از نوع داده‌های مختلف باشند در حالی که آرایه C می‌تواند عناصری را از یک نوع داده خاص ذخیره کند.

مقادیر ذخیره شده در یک لیست پایتون با استفاده از عملگر برش ([ ] و [:]) با شماره‌گذاری از ۰ در ابتدای لیست و به سمت انتها -۱ قابل دسترسی هستند. علامت پلاس (+) عملگر اتصال لیست و علامت ستاره (*) عملگر تکرار است. به عنوان مثال −

list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']

print (list)            # Prints complete list
print (list[0])         # Prints first element of the list
print (list[1:3])       # Prints elements starting from 2nd till 3rd 
print (list[2:])        # Prints elements starting from 3rd element
print (tinylist * 2)    # Prints list two times
print (list + tinylist) # Prints concatenated lists

این نتیجه زیر را ایجاد می کند -

['abcd', 786, 2.23, 'john', 70.2]
abcd
[786, 2.23]
[2.23, 'john', 70.2]
[123, 'john', 123, 'john']
['abcd', 786, 2.23, 'john', 70.2, 123, 'john']

نوع داده تاپل‌های پایتون

تاپل پایتون یک نوع داده توالی است که شبیه به یک لیست است. یک تاپل پایتون شامل چندین مقدار است که با کاما جدا می‌شوند. با این حال، به عکس لیست‌ها، تاپل‌ها درون پرانتز قرار می‌گیرند.

تفاوت‌های اصلی بین لیست‌ها و تاپل‌ها عبارتند از: لیست‌ها در براکت‌ها ([ ]) قرار می‌گیرند و عناصر و اندازه آنها قابل تغییر هستند، در حالی که تاپل‌ها در پرانتزها (( )) قرار می‌گیرند و قابلیت بروزرسانی ندارند. تاپل‌ها می‌توانند به عنوان لیست‌های فقط خواندنی در نظر گرفته شوند. به عنوان مثال −

tuple = ( 'abcd', 786 , 2.23, 'john', 70.2  )
tinytuple = (123, 'john')

print (tuple)               # Prints the complete tuple
print (tuple[0])            # Prints first element of the tuple
print (tuple[1:3])          # Prints elements of the tuple starting from 2nd till 3rd 
print (tuple[2:])           # Prints elements of the tuple starting from 3rd element
print (tinytuple * 2)       # Prints the contents of the tuple twice
print (tuple + tinytuple)   # Prints concatenated tuples

این نتیجه زیر را ایجاد می کند -

('abcd', 786, 2.23, 'john', 70.2)
abcd
(786, 2.23)
(2.23, 'john', 70.2)
(123, 'john', 123, 'john')
('abcd', 786, 2.23, 'john', 70.2, 123, 'john')

کد زیر با تاپل نامعتبر است، زیرا ما سعی کردیم تاپل را به‌روزرسانی کنیم که مجاز نیست. اما مورد مشابه با لیست‌ها امکان پذیر است −

tuple = ( 'abcd', 786 , 2.23, 'john', 70.2  )
list = [ 'abcd', 786 , 2.23, 'john', 70.2  ]
tuple[2] = 1000    # Invalid syntax with tuple
list[2] = 1000     # Valid syntax with list

بازه‌های پایتون

range() در پایتون یک تابع داخلی است که یک توالی از اعداد را با شروع از ۰ و افزایش ۱ پله ای تا رسیدن به یک عدد مشخص برمی‌گرداند.

ما از تابع range() در حلقه for برای تولید یک توالی از اعداد استفاده می‌کنیم. نحو تابع به شرح زیر است:

range(start, stop, step)

در ادامه توضیحات پارامترهای استفاده شده آمده است:

  • start: عدد صحیح برای تعیین موقعیت شروع (اختیاری است، پیش‌فرض: 0)
  • stop: عدد صحیح برای تعیین موقعیت پایانی (اجباری است)
  • step: عدد صحیح برای تعیین پله افزایشی (اختیاری است، پیش‌فرض: 1)

مثال‌ها

در زیر یک برنامه آورده شده است که از حلقه for برای چاپ اعداد از ۰ تا ۴ استفاده می‌کند −

for i in range(5):
  print(i)

این نتیجه زیر را ایجاد می کند -

0
1
2
3
4

حالا بیایید برنامه بالا را تغییر دهیم تا به جای 0 عددی که از 1 شروع می شود چاپ شود:

for i in range(1, 5):
  print(i)

این نتیجه زیر را ایجاد می کند -

1
2
3
4

مجدداً، بیایید برنامه را طوری تغییر دهیم که عدد از 1 شروع شود اما با افزایش 2 پله ای به جای 1 پله نتیجه را چاپ کند:

for i in range(1, 5, 2):
  print(i)

این نتیجه زیر را ایجاد می کند -

1
3

دیکشنری یا لغتنامه پایتون (Dictionary)

لغت‌نامه‌های پایتون نوعی از جداول هش هستند. آن‌ها مانند نوعی از آرایه‌ها یا هش‌ها که در پرل وجود دارند عمل می‌کنند و از جفت‌های کلید-مقدار تشکیل شده‌اند. کلید لغت‌نامه می‌تواند هر نوعی از نوع‌ داده‌های پایتون باشد، اما به طور عمومی اعداد یا رشته‌ها هستند. از سوی دیگر، مقادیر می‌توانند هر شیء دلخواهی از شیء‌های پایتون باشند.

لغت‌نامه‌ها توسط آکولادهای منحنی ({ }) محصور می‌شوند و مقادیر می‌توانند با استفاده از براکت‌های مربعی ([]]) اختصاص داده شده و دسترسی‌ به آن‌ها امکان پذیر است. برای مثال −

dict = {}
dict['one'] = "This is one"
dict[2]     = "This is two"

tinydict = {'name': 'john','code':6734, 'dept': 'sales'}


print (dict['one'])       # Prints value for 'one' key
print (dict[2])           # Prints value for 2 key
print (tinydict)          # Prints complete dictionary
print (tinydict.keys())   # Prints all the keys
print (tinydict.values()) # Prints all the values

این نتیجه زیر را ایجاد می کند -

This is one
This is two
{'dept': 'sales', 'code': 6734, 'name': 'john'}
['dept', 'code', 'name']
['sales', 6734, 'john']

دیکشنری‌های پایتون مفهوم ترتیب بین عناصر را ندارند. گفتن اینکه عناصر "بدون ترتیب" هستند صحیح نیست؛ آن‌ها در حالت عادی بدون ترتیب هستند.

نوع داده‌ای بولین

نوع boolean پایتون یکی از نوع‌های داده‌های تعبیه شده است که یکی از دو مقدار True یا False را نمایندگی می‌کند. تابع bool() پایتون به شما اجازه می‌دهد تا ارزش هر عبارت را ارزیابی کنید و بر اساس آن مقدار True یا False برمی‌گرداند.

مثال‌ها

برنامه زیر مقدار متغیرهای بولین a و b را چاپ می‌کند −

a = True
# display the value of a
print(a)

# display the data type of a
print(type(a))

این نتیجه زیر را ایجاد می کند -

true
<class 'bool'>

در زیر برنامه دیگری وجود دارد که عبارات را ارزیابی کرده و مقادیر بازگشتی را چاپ می کند:

# Returns false as a is not equal to b
a = 2
b = 4
print(bool(a==b))

# Following also prints the same
print(a==b)

# Returns False as a is None
a = None
print(bool(a))

# Returns false as a is an empty sequence
a = ()
print(bool(a))

# Returns false as a is 0
a = 0.0
print(bool(a))

# Returns false as a is 10
a = 10
print(bool(a))

این نتیجه زیر را ایجاد می کند -

False
False
False
False
False
True

تبدیل نوع داده‌ها در پایتون

گاهی اوقات ممکن است نیاز داشته باشید تا تبدیل‌هایی بین انواع داده‌ای تعبیه شده انجام دهید. برای تبدیل داده بین نوع‌های مختلف داده پایتون، شما به راحتی نام نوع را به عنوان یک تابع استفاده می‌کنید.

تبدیل به int

مثال زیر نحوه تبدیل عدد، اعشاری و رشته به نوع داده‌ای صحیح (integer) را نشان می‌دهد:

a = int(1)     # a will be 1
b = int(2.2)   # b will be 2
c = int("3")   # c will be 3

print (a)
print (b)
print (c)

این نتیجه زیر را ایجاد می کند -

1
2
3

تبدیل به float

مثال زیر نحوه تبدیل عدد، اعشاری و رشته به نوع داده‌ای اعشاری (float) را نشان می‌دهد:

a = float(1)     # a will be 1.0
b = float(2.2)   # b will be 2.2
c = float("3.3") # c will be 3.3

print (a)
print (b)
print (c)

این نتیجه زیر را ایجاد می کند -

1.0
2.2
3.3

تبدیل به رشته

مثال زیر نحوه تبدیل عدد، اعشاری و رشته به نوع داده‌ای رشته (string) را نشان می‌دهد:

a = str(1)     # a will be "1" 
b = str(2.2)   # b will be "2.2"
c = str("3.3") # c will be "3.3"

print (a)
print (b)
print (c)

این نتیجه زیر را ایجاد می کند -

1
2.2
3.3

توابع تبدیل نوع داده‌ها

چندین تابع برای انجام تبدیل از یک نوع داده به نوع دیگر وجود دارد. این توابع یک شیء جدید را که مقدار تبدیل شده را نمایش می‌دهد، برمی‌گردانند.

ردیف تابع و توضیحات
۱

int(x [,base])

عدد x را به عدد صحیح تبدیل می‌کند. اگر x یک رشته باشد، پایه (base) را مشخص می‌کند.

۲

long(x [,base])

عدد x را به عدد صحیح بلند تبدیل می‌کند. اگر x یک رشته باشد، پایه (base) را مشخص می‌کند.

۳

float(x)

عدد x را به عدد اعشاری تبدیل می‌کند.

۴

complex(real [,imag])

یک عدد مختلط ایجاد می‌کند.

۵

str(x)

شیء x را به نمایش رشته‌ای تبدیل می‌کند.

۶

repr(x)

شیء x را به یک رشته عبارت تبدیل می‌کند.

۷

eval(str)

یک رشته را ارزیابی کرده و یک شیء برمی‌گرداند.

۸

tuple(s)

رشته s را به یک تاپل تبدیل می‌کند.

۹

list(s)

رشته s را به یک لیست تبدیل می‌کند.

۱۰

set(s)

رشته s را به یک مجموعه تبدیل می‌کند.

۱۱

dict(d)

یک دیکشنری ایجاد می‌کند. d باید یک توالی از جفت‌های (کلید، مقدار) باشد.

۱۲

frozenset(s)

رشته s را به یک مجموعه منجمد تبدیل می‌کند.

۱۳

chr(x)

یک عدد صحیح را به یک کاراکتر تبدیل می‌کند.

۱۴

unichr(x)

یک عدد صحیح را به یک کاراکتر یونیکد تبدیل می‌کند.

۱۵

ord(x)

یک کاراکتر تک را به مقدار صحیح آن تبدیل می‌کند.

۱۶

hex(x)

یک عدد صحیح را به یک رشته هگزادسیمال تبدیل می‌کند.

۱۷

oct(x)

یک عدد صحیح را به یک رشته هشتاددهی تبدیل می‌کند.