تبدیل نوع در پایتون (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، ممکن است به دلیل آنکه شی اجبارا به یک نوع داده خاص تبدیل میشود، هدر رفت دادهها اتفاق بیفتد.
اگر نوشته بالا برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای برنامهنویسی پایتون Python
- آموزش تکمیلی برنامهنویسی پایتون
- مجموعه آموزشهای دادهکاوی و یادگیری ماشین
- زبان برنامهنویسی پایتون (Python) — از صفر تا صد
- یادگیری علم داده (Data Science) با پایتون — از صفر تا صد
- آموزش پایتون (Python) — مجموعه مقالات جامع وبلاگ فرادرس
- Boolean چیست؟ – نوع داده بولی به زبان ساده
^^
سلام
من دیتام همه شون object هستن،دوتاشونfloat64
حالا من میخوام اون دوتا هم object باشن،چیکارکنم؟؟؟
ممنون میشم راهنماییم کنید
سلام
ببخشید وقتی رشته رو به عدد تبدیل میکنیم باید رشته فقط عدد باشه و حروف رو ارور میده، میشه رشته رو طوری به float تبدیل کنیم که حروف داخل رشته حذف بشن و فقط ارقام باقی بمونن؟
با سلام و احترام؛
صمیمانه از همراهی شما با مجله فرادرس و ارائه بازخورد سپاسگزاریم.
یک راه برای انجام این کار این است که با استفاده از لیستهای مفهومی در پایتون اعداد را از داخل رشته استخراج کنید. در ادامه مثالی برای این مورد ارائه شده است و خروجی آن هم در خط آخر ملاحظه میشود:
برای شما آرزوی سلامتی و موفقیت داریم.