سطح مقدماتی (Beginner Level)
در برنامهنویسی پایتون، گاهی اوقات نیاز داریم نوع یک داده را به نوع دیگری تغییر دهیم. مثلاً میخواهیم یک عدد که به صورت رشته ("123") ذخیره شده را به عدد صحیح (123) تبدیل کنیم تا بتوانیم روی آن عملیات ریاضی انجام دهیم. به این فرآیند Type Casting یا Type Conversion میگویند.
۱. تبدیل ضمنی (Implicit Conversion)
پایتون هوشمند است و در برخی موارد، به صورت خودکار نوع دادهها را تغییر میدهد تا از بروز خطا جلوگیری کند. این اتفاق معمولاً زمانی رخ میدهد که انواع عددی مختلف (مثل عدد صحیح و اعشاری) را با هم ترکیب میکنید.
مثال اول: جمع عدد صحیح و اعشاری
در اینجا پایتون خودکار int را به float تبدیل میکند تا دقت محاسبه حفظ شود.
مثال دوم: تقسیم اعداد
در پایتون ۳، عملگر تقسیم / همیشه خروجی float میدهد، حتی اگر هر دو عدد صحیح باشند.
۲. تبدیل صریح (Explicit Conversion)
در بیشتر موارد، ما باید به صورت دستی به پایتون بگوییم که نوع داده را تغییر دهد. برای این کار از توابع داخلی مثل int(), float(), str() و bool() استفاده میکنیم.
تبدیل به عدد صحیح (int)
این تابع رشتهها یا اعداد اعشاری را به عدد صحیح تبدیل میکند. دقت کنید که هنگام تبدیل عدد اعشاری، بخش اعشار حذف میشود (گرد نمیشود).
تبدیل به رشته (str)
تقریباً هر چیزی در پایتون قابل تبدیل به رشته است. این کار برای چاپ کردن یا ترکیب متن با اعداد بسیار پرکاربرد است.
# Static Example: Converting a list to string
my_list = [1, 2, 3]
s = str(my_list)
# s is now "[1, 2, 3]" (a string characters)
سطح پیشرفته (Professional Level)
در سطح حرفهای، تبدیل انواع داده تنها محدود به اعداد و رشتهها نیست. مدیریت تبدیل ساختارهای داده (Collections)، درک عمیق مقادیر Truthy/Falsy و پیادهسازی قابلیت تبدیل در کلاسهای سفارشی از مباحث مهم هستند.
۱. تبدیل ساختارهای داده (Collection Casting)
یکی از الگوهای رایج در پایتون، تبدیل لیستها، تاپلها و مجموعهها به یکدیگر برای بهرهبرداری از ویژگیهای خاص آنهاست.
مثال اول: حذف تکراریها با set
سریعترین راه برای حذف آیتمهای تکراری از یک لیست، تبدیل آن به set و بازگرداندن به list است.
مثال دوم: تبدیل لیست به دیکشنری اگر لیستی از تاپلهای دوتایی (Key-Value) داشته باشید، میتوانید مستقیماً آن را به دیکشنری تبدیل کنید.
۲. مفهوم Truthy و Falsy در bool()
تابع bool() هر دادهای را به True یا False تبدیل میکند. در پایتون، مقادیر "خالی" یا "صفر" به عنوان False در نظر گرفته میشوند و بقیه True هستند. دانستن این موضوع کدنویسی شرطی را بسیار تمیزتر میکند.
مقادیر Falsy (همیشه False):
0,0.0""(رشته خالی)[],(),{}(لیست/تاپل/دیکشنری خالی)None
۳. پیادهسازی تبدیل در کلاسها (Magic Methods)
شما میتوانید نحوه تبدیل اشیاء کلاس خود را با استفاده از "متدهای جادویی" (Magic Methods) کنترل کنید. این کار باعث میشود کلاس شما با توابع داخلی پایتون سازگار شود.
__int__(self): برایint()__str__(self): برایstr()وprint()__bool__(self): برای بررسی شرطها
۴. تبدیل ایمن رشته به ساختار داده
استفاده از eval() برای تبدیل رشتهای که حاوی ساختار داده (مثل لیست) است خطرناک است. روش حرفهای استفاده از ماژول ast است.