تبدیل نوع در پایتون (Type Conversion) — به زبان ساده

۲۲۶۵ بازدید
آخرین به‌روزرسانی: ۲۷ اردیبهشت ۱۴۰۲
زمان مطالعه: ۳ دقیقه
تبدیل نوع در پایتون (Type Conversion) — به زبان ساده

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

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

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

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

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

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

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

1num_int = 123
2num_flo = 1.23
3
4num_new = num_int + num_flo
5
6print("datatype of num_int:",type(num_int))
7print("datatype of num_flo:",type(num_flo))
8
9print("Value of num_new:",num_new)
10print("datatype of num_new:",type(num_new))

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

1datatype of num_int: <class 'int'>
2datatype of num_flo: <class 'float'>
3
4Value of num_new: 124.23
5datatype of num_new: <class 'float'>

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

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

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

1num_int = 123
2num_str = "456"
3
4print("Data type of num_int:",type(num_int))
5print("Data type of num_str:",type(num_str))
6
7print(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 نیز نامیده می‌شود، زیرا کاربر نوع داده شی را تغییر می‌دهد.

نحو:

1(required_datatype)(expression)

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

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

1num_int = 123
2num_str = "456"
3
4print("Data type of num_int:",type(num_int))
5print("Data type of num_str before Type Casting:",type(num_str))
6
7num_str = int(num_str)
8print("Data type of num_str after Type Casting:",type(num_str))
9
10num_sum = num_int + num_str
11
12print("Sum of num_int and num_str:",num_sum)
13print("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، ممکن است به دلیل آنکه شی اجبارا به یک نوع داده خاص تبدیل می‌شود، هدر رفت داده‌ها اتفاق بیفتد.

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

^^

بر اساس رای ۱۴ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
Programiz
۳ دیدگاه برای «تبدیل نوع در پایتون (Type Conversion) — به زبان ساده»

سلام
من دیتام همه شون object هستن،دوتاشونfloat64
حالا من میخوام اون دوتا هم object باشن،چیکارکنم؟؟؟
ممنون میشم راهنماییم کنید

سلام
ببخشید وقتی رشته رو به عدد تبدیل میکنیم باید رشته فقط عدد باشه و حروف رو ارور میده، میشه رشته رو طوری به float تبدیل کنیم که حروف داخل رشته حذف بشن و فقط ارقام باقی بمونن؟

با سلام و احترام؛

صمیمانه از همراهی شما با مجله فرادرس و ارائه بازخورد سپاس‌گزاریم.

یک راه برای انجام این کار این است که با استفاده از لیست‌های مفهومی در پایتون اعداد را از داخل رشته استخراج کنید. در ادامه مثالی برای این مورد ارائه شده است و خروجی آن هم در خط آخر ملاحظه می‌شود:

1>>> txt = "h3110 23 cat 444.4 rabbit 11 2 dog"
2>>> [int(s) for s in txt.split() if s.isdigit()]
3[23, 11, 2]

برای شما آرزوی سلامتی و موفقیت داریم.

نظر شما چیست؟

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