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

در زبان پایتون امکان تبدیل یک نوع به نوع دیگر وجود دارد که اصطلاحاً به آن Type Casting گفته می شود. پایتون دارای مجموعه ای از توابع از پیش تعریف شده است، که می توانند مقادیر را از یک نوع بـه نوع دیگر تبدیل کنند. در جدول زیر به برخی از این توابع اشاره شده است :

تابع کاربرد
int(x) x را به نوع صحیح تبدیل می کند.
long(x) x را به نوع long تبدیل می کند.
float(x) x را به نوع اعشار تبدیل می کند.
str(x) x را به نوع رشته تبدیل می کند.
tuple(x) x را به نوع tuple تبدیل می کند.
list(x) x را به نوع list تبدیل می کند.
set(x) x را به نوع set تبدیل می کند.
dict(x) یک tuple که به صورت کلید/مقدار است را به نوع دیکشنری تبدیل می کند.
chr(x) یک نوع صحیح را به کاراکتر تبدیل می کند
ord(x) یک کاراکتر را به کد اسکی معادلش تبدیل می کند.

به مثال زیر در مورد توابع بالا دقت کنید :

  1: x = 9.99
  2: convertToInt = int(x)
  3: 
  4: x = 9
  5: convertToFloat = float(x)
  6: 
  7: x = 'a'
  8: convertToAscii = ord(x)
  9: 
 10: x = 97
 11: convertToUnichar = chr(x)
 12: 
 13: x = (1, 2, 3, 4, 5)
 14: convertToList = list(x)
 15: 
 16: x = [1, 2, 3, 4, 5]
 17: convertToTuple = tuple(x)
 18: 
 19: x = (('one', 1), ('two', 2), ('tree', 3))
 20: convertToDictionary = dict(x)
 21: 
 22: print(convertToInt)
 23: print(convertToFloat)
 24: print(convertToAscii)
 25: print(convertToUnichar)
 26: print(convertToList)
 27: print(convertToTuple)
 28: print(convertToDictionary)
9
9.0
97
a
[1, 2, 3, 4, 5]
(1, 2, 3, 4, 5)
{'one': 1, 'two': 2, 'tree': 3}

همانطور که در کد بالا مشاهده می کنید در خط 1 یک متغیر از نوع اعشار تعریف و در خط 2 با استفاده از تابع ()int آن را به نوع صحیح تبدیل کرده ایم، در این تبدیل بخش اعشار از بین می رود و خروجی عدد 9 می شود. در خط 19 هم یک نوع tuple که آیتم های آن به صورت کلید مقدار هستند را به نوع dictionary تبدیل کرده ایم. برای به دست آوردن نوع یک متغیر هم می توان از تابع ()type استفاده کرد. به مثال زیر توجه کنید :

x = 10.0

print(type(x))

در خط اول یک متغیر تعریف کرده ایم. حال اگر بخواهیم که نوع داده ای که در این متغیر قرار داده شده است چیست، کافیست که نام متغیر را به تابع ()type بدهیم. بعد از اجرای کد بالا، نتیجه به صورت زیر خواهد بود :

<class 'float'>

همانطور که مشاهده می کنید، نتیجه نمایش کلمه float است. یعنی متغیر ما از نوع float می باشد. برای تمرین بیشتر خطوط 28-22 کد ابتدای درس را به صورت زیر تغییر داده:

print(type(convertToInt))
print(type(convertToFloat))
print(type(convertToAscii))
print(type(convertToUnichar))
print(type(convertToList))
print(type(convertToTuple))
print(type(convertToDictionary))

برنامه را اجرا و نتیجه را مشاهده کنید.