برنامه نویسی 4962 بازدید

«زبان برنامه‌نویسی پایتون» (Python Programming Language) دارای «انواع داده» (Data Types) گوناگونی است. گاهی برنامه‌نویس نیاز دارد که یک نوع داده را به نوع دیگری تبدیل کند. در این مطلب، روش تبدیل نوع در پایتون و کاربردهای آن بیان شده است. در واقع، چگونگی تبدیل یک نوع داده به نوع دیگر (مثلا عدد به رشته) شرح داده شده است.

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

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

  • تبدیل نوع ضمنی (Implicit Type Conversion)
  • تبدیل نوع صریح (Explicit Type Conversion)

تبدیل نوع ضمنی

در تبدیل نوع ضمنی، پایتون به طور خودکار یک نوع داده را به نوع دیگری تبدیل می‌کند. این فرایند نیازی به درگیر کردن کاربر ندارد. در ادامه، مثال‌هایی ارائه شده که در آن‌ها، تبدیل نوع از نوع داده «صحیح» (integer) به «ممیز شناور» (float) انجام شده است.

مثال ۱: تبدیل صحیح به ممیز  شناور

num_int = 123
num_flo = 1.23

num_new = num_int + num_flo

print("datatype of num_int:",type(num_int))
print("datatype of num_flo:",type(num_flo))

print("Value of num_new:",num_new)
print("datatype of num_new:",type(num_new))

هنگامی که برنامه بالا اجرا می‌شود، خروجی به صورت زیر خواهد بود.

datatype of num_int: <class 'int'>
datatype of num_flo: <class 'float'>

Value of num_new: 124.23
datatype of num_new: <class 'float'>

آنچه در برنامه بالا به وقوع می‌پیوندد، در ادامه بیان شده است.

  • متغیرهای num_int و num_flo با یکدیگر جمع می‌شوند، و مقدار حاصل شده در num_new ذخیره می‌شود.
  • کاربر به نوع داده‌های هر سه شی به ترتیب نگاه می‌کند.
  • در خروجی، می‌توان مشاهده کرد که num_int از نوع صحیح (integer) و نوع داده num_flo ممیز شناور (float) است.
  • می‌توان مشاهده کرد که num_new دارای نوع داده ممیز شناور است، زیرا پایتون نوع داده‌های کوچک‌تر را برای جلوگیری از هدر رفت داده، به انواع داده بزرگ‌تر تبدیل می‌کند.

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

num_int = 123
num_str = "456"

print("Data type of num_int:",type(num_int))
print("Data type of num_str:",type(num_str))

print(num_int+num_str)

هنگامی که برنامه بالا اجرا شد، خروجی به صورت زیر خواهد بود:

Data type of num_int: <class 'int'> 
Data type of num_str: <class 'str'> 

Traceback (most recent call last): 
  File "python", line 7, in  
TypeError: unsupported operand type(s) for +: 'int' and 'str'

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

  • دو متغیر num_int و num_str به یکدیگر اضافه می‌شوند.
  • همانطور که از خروجی مشهود است، پیغام خطای typeerror صادر می‌شود. پایتون قادر به استفاده از تبدیل ضمنی در این شرایط نیست.

پایتون دارای راهکار مناسبی برای چنین شرایطی است. این راهکار، تبدیل نوع صریح (Explicit Conversion) نام دارد.

تبدیل نوع داده صریح

در تبدیل نوع داده صریح، کاربر نوع داده یک شی را به یک نوع داده مورد نیاز تبدیل می‌کند. برای انجام تبدیل نوع صریح، از توابع از پیش تعریف شده‌ای مانند ()str() ،float و ()int استفاده می‌شود. این تبدیل نوع، typecasting نیز نامیده می‌شود، زیرا کاربر نوع داده شی را تغییر می‌دهد.

نحو:

(required_datatype)(expression)

Typecasting به وسیله تخصیص تابع نوع داده مورد نیاز، به عبارت، قابل انجام است.

مثال ۳: افزودن نوع داده صحیح و رشته به یکدیگر با استفاده از تبدیل نوع

num_int = 123
num_str = "456"

print("Data type of num_int:",type(num_int))
print("Data type of num_str before Type Casting:",type(num_str))

num_str = int(num_str)
print("Data type of num_str after Type Casting:",type(num_str))

num_sum = num_int + num_str

print("Sum of num_int and num_str:",num_sum)
print("Data type of the sum:",type(num_sum))

هنگامی که برنامه بالا اجرا شود، خروجی به صورت زیر خواهد بود:

Data type of num_int: <class 'int'>
Data type of num_str before Type Casting: <class 'str'>

Data type of num_str after Type Casting: <class 'int'>

Sum of num_int and num_str: 579
Data type of the sum: <class 'int'>

آنچه در برنامه بالا اتفاق افتاده، در ادامه بیان شده است.

  • متغیرهای num_str و num_int افزوده شدند.
  • num_str، با استفاده از تابع num_str، از رشته (بالاتر) به صحیح (پایین‌تر) تبدیل شده است.
  • پس از تبدیل num_str به مقدار صحیح، پایتون قادر است این دو متغیر را اضافه کند.
  • مقدار num_sum دریافت می‌شود و نوع داده صحیح است.

نکات کلیدی پیرامون تبدیل نوع در پایتون

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

اگر نوشته بالا برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

^^

اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.

«الهام حصارکی»، فارغ‌التحصیل مقطع کارشناسی ارشد مهندسی فناوری اطلاعات، گرایش سیستم‌های اطلاعات مدیریت است. او در زمینه هوش مصنوعی و داده‌کاوی، به ویژه تحلیل شبکه‌های اجتماعی، فعالیت می‌کند.

بر اساس رای 8 نفر

آیا این مطلب برای شما مفید بود؟

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *