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

امیرحسین بیگدلو 5 ماه قبل

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

 

این آموزش به شما در تبدیل اعداد، رشته ها، تاپل ها و لیست ها راهنمایی می کند و همچنین با ارائه مثالهایی به شما کمک می کند تا با موارد مختلف استفاده آشنا شوید.

دوره پیشنهادی: دوره آموزش پایتون (python)


 

# تبدیل انواع اعداد

 

در پایتون ، دو نوع داده عددی وجود دارد: اعداد صحیح(integer) و اعداد شناور یا float. گاهی اوقات شما در حال کار روی کد شخص دیگری هستید و باید یک عدد صحیح را به float تبدیل کنید یا برعکس. پایتون متدهای داخلی دارد که به شما امکان می دهد به راحتی اعداد صحیح را به شناور و شناور را به اعداد صحیح تبدیل کنید.

 

ویدیو پشنهادی: متغیر و انواع داده ها در پایتون

+ تبدیل integer به Floats

متد float() اعداد صحیح را به float تبدیل می کند. برای استفاده از این تابع ، داخل پرانتز یک عدد صحیح اضافه کنید:

float(57)

 

در این حالت 57 به 57.0 تبدیل می شود.

 

همچنین می توانید از این مورد با یک متغیر استفاده کنید. بیایید f را برابر با 57 اعلام کنیم و سپس شناور جدید را چاپ کنیم:

f = 57
print(float(f))


# OUTPUT
57.0

 

با استفاده از تابع float () می توانیم اعداد صحیح را به float تبدیل کنیم.

 

 

+ تبدیل Floats به Integer

پایتون همچنین یک تابع داخلی برای تبدیل float به اعداد صحیح دارد: int ().

 

تابع int () مشابه عملکرد float () است: می توانید یک عدد float را درون پرانتز اضافه کنید تا آن را به یک عدد صحیح تبدیل کنید:

int(390.8)

 

در این حالت ، 390.8 به 390 تبدیل می شود.

 

همچنین می توانید از این مورد با متغیرها استفاده کنید. بیایید b را برابر با 125.0 و c را برابر با 390.8 اعلام کنیم ، سپس شناورهای جدید را چاپ کنیم:

b = 125.0
c = 390.8

print(int(b))
print(int(c))


# OUTPUT
125
390

 

هنگام تبدیل floatها به اعداد صحیح با تابع int () ، پایتون اعداد اعشاری و باقی مانده float را حذف می کند تا یک عدد صحیح ایجاد کند. حتی ممکن است بخواهیم 390.8 تا 391 را گرد کنیم ، پایتون این کار را از طریق تابع int () انجام نمی دهد.

 

 

+ اعدادی که از طریق تقسیم تبدیل می شوند

در پایتون 3 ، ضرایب مربوطه هنگام انجام تقسیم ، از عدد صحیح به float تبدیل می شوند اگرچه در پایتون 2 نیستند. یعنی وقتی 5 را بر 2 تقسیم می کنید ، در پایتون 3 برای جواب یک float بدست می آورید (2.5):

a = 5 / 2
print(a)


# OUTPUT
2.5

 

 


 

# تبدیل انواع داده رشته(string)

 

رشته دنباله ای از یک یا چند کاراکتر است (حروف ، اعداد ، نمادها). رشته ها شکل متداولی از داده ها در برنامه های رایانه ای است ، و ممکن است لازم باشد که رشته ها را به تعداد یا اعداد به رشته ها نسبتاً زیاد تبدیل کنیم ، خصوصاً هنگامی که داده های تولید شده توسط کاربر را می گیریم.

ویدیو پیشنهادی: آموزش stringها در پایتون

تبدیل اعداد به رشته

با استفاده از روش str () می توانیم اعداد را به رشته تبدیل کنیم. ما یک عدد یا یک متغیر را درون پرانتزهای متد قرار می دهیم و سپس آن مقدار عددی به یک رشته تبدیل می شود.

 

بیایید ابتدا به تبدیل اعداد صحیح بپردازیم. برای تبدیل عدد صحیح 12 به مقدار رشته ، می توانید 12 را به روش str () منتقل کنید:

str(12)

 

هنگام اجرای str (12) در پوسته تعاملی پایتون با دستور python در یک پنجره ترمینال ، خروجی زیر را دریافت خواهید کرد:

'12'

 

نقل قول های مربوط به عدد 12 نشان می دهد که این عدد دیگر یک عدد صحیح نیست اما اکنون یک مقدار رشته است.

 

با استفاده از متغیرها می توانیم ببینیم که تبدیل عدد صحیح به رشته تا چه اندازه عملی است. بیایید بگوییم که ما می خواهیم پیشرفت برنامه نویسی روزانه کاربر را پیگیری کنیم و در حال وارد کردن چند خط کد به طور هم زمان هستیم. ما می خواهیم این بازخورد را به کاربر نشان دهیم و مقادیر رشته و عدد صحیح را همزمان چاپ خواهیم کرد:

user = "Sammy"
lines = 50

print("Congratulations, " + user + "! You just wrote " + lines + " lines of code.")

 

هنگام اجرای این کد ، خطای زیر را دریافت می کنیم:

TypeError: Can't convert 'int' object to str implicitly

 

ما قادر به اتصال رشته ها و اعداد صحیح در پایتون نیستیم ، بنابراین باید خطوط متغیر را به عنوان یک رشته تبدیل کنیم:

user = "Sammy"
lines = 50

print("Congratulations, " + user + "! You just wrote " + str(lines) + " lines of code.")

 

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

Congratulations, Sammy! You just wrote 50 lines of code.

 

اگر به دنبال تبدیل یک float به یک رشته به جای یک عدد صحیح به یک رشته هستیم ، همان مراحل و قالب را دنبال می کنیم. وقتی یک float را به متد str () منتقل می کنیم ، مقدار رشته float بازگردانده می شود. می توانیم از خود مقدار float یا از یک متغیر استفاده کنیم:

print(str(421.034))

f = 5524.53
print(str(f))


# OUTPUT
421.034
5524.53

 

ما می توانیم با اتصال با یک رشته مطمئن شویم که درست است:

f = 5524.53
print("Sammy has " + str(f) + " points.")


# OUTPUT
Sammy has 5524.53 points.

 

می توانیم اطمینان حاصل کنیم که float ما به درستی به یک رشته تبدیل شده است زیرا اتصال بدون خطا انجام شده است.

 

 

+ تبدیل رشته ها به اعداد

رشته ها را می توان با استفاده از متد int () و float () به عدد تبدیل کرد.

 

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

 

بیایید از مثال کاربر Sammy برای پیگیری خطوط کد نوشته شده هر روز استفاده کنیم. ممکن است بخواهیم این مقادیر را با استفاده از ریاضی دستکاری کنیم تا بازخورد جالب تری برای کاربر ارائه دهیم ، اما این مقادیر در حال حاضر در رشته ها ذخیره می شوند:

 

lines_yesterday = "50"
lines_today = "108"

lines_more = lines_today - lines_yesterday

print(lines_more)


# OUTPUT
TypeError: unsupported operand type(s) for -: 'str' and 'str'

 

از آنجا که این دو مقدار عددی در رشته ها ذخیره شده اند ، خطایی دریافت کردیم. عملوند - برای تفریق یک عملوند معتبر برای دو مقدار رشته نیست.

 

بیایید کد را اصلاح کنیم تا شامل متد int () شود که رشته ها را به اعداد صحیح تبدیل می کند و به ما امکان می دهد ریاضی را با مقادیری که در ابتدا رشته بودند ، انجام دهیم.

lines_yesterday = "50"
lines_today = "108"

lines_more = int(lines_today) - int(lines_yesterday)

print(lines_more)


# OUTPUT
58

 

متغیر lines_more بصورت خودکار یک عدد صحیح است و در این مثال با مقدار عددی 58 برابر است.

 

همچنین می توان اعداد موجود در مثال بالا را با استفاده از روش float () به جای روش int () به مقادیر شناور تبدیل کرد. ما به جای دریافت خروجی 58 ، شناور خروجی 58.0 را دریافت خواهیم کرد.

 

کاربر Sammy در مقادیر اعشاری امتیاز کسب می کند

total_points = "5524.53"
new_points = "45.30"

new_total_points = total_points + new_points

print(new_total_points)


# OUTPUT
5524.5345.30

 

در این حالت ، استفاده از عملوند + با دو رشته عملی معتبر است ، اما به جای اینکه دو مقدار عددی را با هم جمع کند ، دو رشته را بهم پیوند می دهد. بنابراین ، خروجی ما غیر معمول به نظر می رسد زیرا فقط دو مقدار را کنار هم قرار می دهد.

 

ما می خواهیم این رشته ها را قبل از انجام هر نوع ریاضی با روش float () به float تبدیل کنیم:

 

total_points = "5524.53"
new_points = "45.30"

new_total_points = float(total_points) + float(new_points)

print(new_total_points)


# OUTPUT
5569.83

 

اکنون که دو رشته را به شناور تبدیل کرده ایم ، نتیجه پیش بینی شده را دریافت می کنیم که 45.30 به 5524.53 می افزاید.

 

اگر بخواهیم مقدار رشته ای را با رقم اعشار به یک عدد صحیح تبدیل کنیم ، خطایی دریافت خواهیم کرد:

f = "54.23"
print(int(f))



# OUTPUT
ValueError: invalid literal for int() with base 10: '54.23'

 

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

 

تبدیل رشته ها به اعداد ما را قادر می سازد تا به سرعت نوع داده ای را که با آن کار می کنیم اصلاح کنیم تا بتوانیم عملیاتی را بر روی مقادیر عددی انجام دهیم که در ابتدا به عنوان رشته ریخته شده اند.

 


 

# تبدیل به Tuples و List ها

میتوانید با استفاده از متدهای tuple() و list() مقادیری که به آنها ارسال میکنید را به تاپل یا لیست ارسال کنید. در پایتون:

  • list یک ترتیب مرتب شده قابل تغییر از عناصر است که درون براکت [] قرار دارد.
  • tuple توالی مرتب شده تغییرناپذیری از عناصر موجود در داخل پرانتز () است.

 

ویدیو پیشنهادی: توضیح tuple در پایتون

+ تبدیل به Tuple

بیایید با تبدیل یک لیست به یک تاپل شروع کنیم. تبدیل یک لیست به tuple ، از آنجایی که نوع داده تغییرناپذیری است ، می تواند بهینه سازی قابل توجهی را برای برنامه هایی که ایجاد می کنیم ، امکان پذیر کند. وقتی از متد tuple () استفاده می کنیم ، نسخه tuple مقداری که به آن ارسال شده است را برمی گرداند.

 

print(tuple(['pull request', 'open source', 'repository', 'branch']))


# OUTPUT
('pull request', 'open source', 'repository', 'branch')

 

می بینیم که یک تاپل در خروجی چاپ می شود ، زیرا این موارد در داخل پرانتز قرار دارند تا در براکت.

 

بیایید از tuple () با متغیری که نشان دهنده لیستی است استفاده کنیم:

sea_creatures = ['shark', 'cuttlefish', 'squid', 'mantis shrimp']
print(tuple(sea_creatures))


# OUTPUT
('shark', 'cuttlefish', 'squid', 'mantis shrimp')

 

باز هم می بینیم که مقدار لیست به مقدار tuple تغییر می یابد که توسط پرانتز نشان داده می شود. ما می توانیم هر نوع قابل تکرار را به یک تاپل تبدیل کنیم ، از جمله رشته ها:

print(tuple('Sammy'))


# OUTPUT
('S', 'a', 'm', 'm', 'y')

 

از آنجا که می توانیم از طریق رشته ها تکرار کنیم ، می توانیم آنها را با استفاده از روش tuple () به tuples تبدیل کنیم. با وجود انواع داده ای که قابل تکرار نیستند ، اما مانند اعداد صحیح و شناورها ، یک خطای نوع دریافت خواهیم کرد:

print(tuple(5000))


# OUTPUT
TypeError: 'int' object is not iterable

 

اگرچه می توان عدد صحیح را به یک رشته تبدیل کرد و سپس آن را به tuple تبدیل کرد ، همانند tuple (str (5000)) ، بهتر است کد قابل خواندن را از تبدیل های پیچیده انتخاب کنید.

 

ویدیو پیشنهادی: آموزش لیست ها در پایتون

+ تبدیل به لیست‌ها

تبدیل مقادیر ، به ویژه تاپل ها به لیست ها ، درصورت نیاز به داشتن نسخه قابل تغییر از آن مقدار ، می تواند مفید باشد.

 

ما از متد list() برای تبدیل tuple زیر به لیست استفاده خواهیم کرد. از آنجا که سینتکس ایجاد لیست از پرانتز استفاده می کند، حتماً پرانتزهای متد list () و در این مورد روش print () را نیز وارد کنید:

print(list(('blue coral', 'staghorn coral', 'pillar coral')))


# OUTPUT
['blue coral', 'staghorn coral', 'pillar coral']

 

براکت‌ها نشان می دهند که لیستی از مقدار اصلی tuple برگردانده شده است که از طریق روش list () منتقل شده است.

 

برای خواندن کد بهتر ، می توانیم یکی از زوج های پرانتز را با استفاده از یک متغیر حذف کنیم:

coral = ('blue coral', 'staghorn coral', 'pillar coral')
list(coral)

 

اگر list(coral) را چاپ کنیم ، همان خروجی فوق را دریافت خواهیم کرد.

 

درست مانند تاپل ها ، رشته ها را می توان به لیست تبدیل کرد:

print(list('shark'))


# OUTPUT
['s', 'h', 'a', 'r', 'k']

 

در اینجا رشته "shark" به یک لیست تبدیل می شود ، نسخه قابل تغییر از مقدار اصلی را ارائه می دهد.

 

 

# نتیجه گیری

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

 

اگر مقاله بالا را دوست داشتید، پیشنهاد میکنیم به مطالب زیر هم سر بزنید:

با پایتون چه کارهایی میتوان کرد؟

دوره های آموزش پروژه محور و پیشرفته پایتون

آموزش نوشتن کامنت در پایتون

10 روش برای ریفکتور کردن کدهای پایتونی

مطالب مشابه



مونگارد