مقاله قبلی: انواع عملگرهای پایتون – قسمت دوم
قبل از این که بخواهید با مبحث تبدیل نوع در پایتون آشنا شوید لازم است که مقاله انواع داده های پایتون را مطالعه بفرمائید.
به فرآیند تبدیل مقداری از یک نوع داده (صحیح، اعشاری، رشته و غیره) به نوع داده دیگر، تبدیل نوع می گویند. پایتون به دو روش تبدیل نوع را انجام می دهد که این روش ها عبارتند از : روش ضمنی و روش صریح.
تبدیل نوع ضمنی
در تبدیل نوع ضمنی، خود پایتون به طور خودکار یک نوع داده را به نوع داده دیگر تبدیل می کند و نیازی به دخالت کاربر نیست. پایتون در تبدیل نوع ضمنی برای جلوگیری از، از دست رفتن اطلاعات، نوع داده کوچک تر را به نوع داده بزرگ تر تبدیل می کند. به مثال زیر توجه کنید. در این برنامه قرار است یک عدد صحیح (int) را با یک عدد اعشاری (float) جمع کنیم. با این که نوع این دو عدد یکی نیست ولی پایتون به طور خودکار نوع داده کوچک تر (صحیح) را به نوع داده بزرگ تر float تبدیل می کند یعنی عدد 123 به عدد 123.0 تبدیل شده و سپس با عدد اعشاری 1.23 جمع می شود و عدد 124.23 تولید می شود که دارای نوع داده اعشاری (float) است.
خروجی برنامه بالا به صورت زیر است:
حال بیایید رفتار پایتون را به هنگام جمع بستن یک عدد صحیح با یک رشته بررسی کنیم.
خروجی برنامه بالا:
در مثال بالا، ملاحظه می کنید که به هنگام جمع یک متغیر صحیح (num_int) با یک متغیر رشته ای (num_str)، پایتون قادر به تبدیل نوع ضمنی نیست و در خروجی خطای نوع (TypeError) ایجاد شده است. این خطا بیانگر آن است که در حالت عادی، عملگر + نمی تواند یک عدد صحیح را با یک رشته جمع ببندد. اما پایتون برای این مشکل هم راه حلی دارد که تبدیل نوع صریح نامیده می شود.
تبدیل نوع صریح
در تبدیل نوع صریح، این کاربر است که نوع داده یک شی را به نوع داده مورد نیاز خود تبدیل می کند. برای تبدیل نوع صریح بایستی از نام نوع داده به عنوان توابع استفاده کنید. درنتیجه تبدیل صریح با استفاده از توابع از پیش تعریف شده ای مثل int() و float()و str() و غیره صورت می گیرد.
در مثال زیر، با استفاده از تابع int()، متغیر رشته ای num_str به طور صریح به نوع داده صحیح تبدیل می شود و آن گاه پایتون به راحتی می تواند متغیرهای num_int و num_str را با هم جمع کند. در تبدیل نوع داده صریح که به آن Type Casting نیز گفته می شود احتمال از دست رفتن بخشی از اطلاعات وجود دارد چرا که ما شیئی از نوع داده بزرگ تر (string) را مجبور می کنیم که به نوع داده کوچک تر (int) تبدیل شود.
خروجی برنامه بالا:
در جدول زیر تعدادی از توابع درون ساخته مورد نیاز برای تبدیل نوع صریح را ذکر نموده ایم.
توسط دو آرگومان ورودی خود، یک عدد مختلط را تولید می کند | complex(real [,imag]) |
X را به یک عدد اعشاری تبدیل می کند | float(x) |
X را به یک عدد صحیح تبدیل می کند | int(x [,base]) |
یک عدد را به یک رشته عددی در مبنای 8 تبدیل می کند
|
oct(x) |
یک عدد را به یک رشته عددی در مبنای 16 تبدیل می کند
|
hex(x) |
یک کاراکتر تنها را به معادل عددی آن (کد اسکی آن) تبدیل می کند.
|
ord(x) |
یک عدد را به کاراکتر معادل آن تبدیل می کند | chr(x) |
شی x را به یک رشته تبدیل می کند. | str(x) |
s را به یک تاپل تبدیل می کند | tuple(s) |
s را به یک لیست تبدیل می کند | list(s) |
s را به یک مجموعه تبدیل می کند | set(s) |
s را به یک frozen set تبدیل می کند | frozenset(s) |
آرگومان ورودی خود را به صورت یک رشته نمایش می دهد. | repr(x) |
در این مقاله آموختید که چگونه پایتون به دو روش ضمنی و صریح تبدیل نوع را انجام می دهد. در مقالات بعدی آموزش زبان برنامه نویسی پایتون با ما همراه باشید.
مقاله بعدی: ساختار داده ای رشته در زبان برنامه نویسی پایتون
ترجمه: رقیه آقایاری
نظر شما چیست؟