از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
رشته ها را به اعداد و اعداد را به رشته ها در پایتون تبدیل کنید
سرفصلهای مطلب
معرفی
پایتون به شما امکان می دهد رشته ها، اعداد صحیح و شناورها را به روش های مختلف به صورت مترادف تبدیل کنید. ساده ترین راه برای انجام این کار استفاده از پایه است str()
، int()
، و float()
کارکرد. علاوه بر این، چند راه دیگر نیز وجود دارد.
قبل از اینکه به تبدیل رشتهها به اعداد و تبدیل اعداد به رشتهها بپردازیم، اجازه دهید ابتدا کمی در مورد روش نمایش رشتهها و اعداد در پایتون ببینیم.
توجه داشته باشید: برای سادگی اجرا و نمایش این مثال ها از مفسر پایتون استفاده می کنیم.
رشته های
رشتهها در پایتون با احاطه کردن یک کاراکتر با علامتهای دو (“) یا تک نقل قول (‘) اعلام میشوند. رشتهها در پایتون در واقع فقط آرایههایی هستند که برای هر کاراکتر یک عنصر در آرایه یک یونیکد دارند و به شما امکان میدهند از شاخصها برای دسترسی استفاده کنید. یک کاراکتر از رشته
به عنوان مثال، ما می توانیم با تعیین یک شاخص به کاراکترهای جداگانه این رشته ها دسترسی داشته باشیم:
>>> stringFirst = "Hello World!"
>>> stringSecond = 'Again!'
>>> stringFirst(3)
'l'
>>> stringSecond(3)
'i'
اعداد
یک عدد در پایتون می تواند یک عدد باشد integer
، آ float
، یا الف complex
.
اعداد صحیح می توانند یک عدد صحیح مثبت یا منفی باشند. از پایتون 3، اعداد صحیح نامحدود هستند و عملاً می توانند هر عددی را در خود جای دهند. قبل از پایتون 3، مرز بالایی 2 بود31-1 برای زمان های اجرا 32 بیتی و 263-1 برای زمان های اجرا 64 بیتی.
شناورها نیز دارای طول نامحدود هستند، اما یک عدد ممیز شناور دارند باید شامل یک نقطه اعشار
اعداد مختلط باید یک قسمت خیالی داشته باشند که با استفاده از آن مشخص می شود j
:
>>> integerFirst = 23
>>> floatFirst = 23.23
>>> complextFirst = 1 + 23j
تبدیل رشته به عدد
با استفاده از int() تابع
اگر می خواهید یک رشته را به یک عدد صحیح تبدیل کنید، ساده ترین راه استفاده از آن است int()
تابع. فقط رشته را به عنوان آرگومان ارسال کنید:
>>> x = "23"
>>> y = "20"
>>> z = int(x) - int(y)
>>> z
3
هنگامی که شما در حال ارسال یک نمایش رشته ای از یک عدد صحیح هستید، این کار همانطور که انتظار می رود کار می کند int()
، اما اگر رشته ای که ارسال می کنید حاوی مقدار صحیح نباشد، با مشکل مواجه خواهید شد. اگر کاراکترهای غیر عددی در رشته شما وجود دارد، پس int()
استثناء ایجاد خواهد کرد:
>>> x = "23a"
>>> z = int(x)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '23a'
حتی اگر یک رشته شناور معتبر ارسال شود، همین استثنا مطرح خواهد شد:
>>> x = "23.4"
>>> z = int(x)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '23.4'
این int()
تابع میکند ویژگی مفید دیگری غیر از تبدیل رشته ها به اعداد صحیح دارد، همچنین به شما امکان می دهد اعداد را از هر پایه به عدد صحیح پایه 10 تبدیل کنید. برای مثال، میتوانیم رشته باینری زیر را با استفاده از عبارت به یک عدد صحیح پایه 10 تبدیل کنیم base
پارامتر:
>>> int('1101100', base=2)
108
همین کار را می توان برای هر پایه دیگری مانند هگزادسیمال (پایه 16) انجام داد:
>>> int('6C', base=16)
108
با استفاده از شناور() تابع
تبدیل لفظ رشته ای به شناور از طریق float()
تابع:
>>> x = "23.23"
>>> y = "23.00"
>>> z = float(x) - float(y)
>>> z
0.23000000000000043
توجه داشته باشید که مقدار به دست آمده کاملاً دقیق نیست، همانطور که باید باشد 0.23
. این مربوط به ریاضی ممیز شناور مسائل به جای تبدیل رشته به عدد
این float()
عملکرد کمی انعطاف پذیرتر از int()
تابع چون می تواند هر دو شناور را تجزیه و تبدیل کند و اعداد صحیح:
>>> x = "23"
>>> y = "20"
>>> z = float(x) - float(y)
>>> z
3.0
بر خلاف int()
، float()
وقتی یک مقدار عددی غیر شناور دریافت می کند استثنایی ایجاد نمی کند.
با این حال، آن را اراده اگر یک مقدار غیر عددی به آن داده شود، یک استثنا ایجاد کنید:
>>> x = "23a"
>>> z = float(x)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: could not convert string to float: '23a'
در حالی که float()
میکند نه دارای قابلیت تبدیل اعداد غیر مبنا 10 مانند int()
انجام می دهد، آن را میکند توانایی تبدیل اعداد نشان داده شده در نماد علمی (با نام مستعار e-notation):
>>> float('23e-5')
0.00023
>>> float('23e2')
2300.0
با استفاده از پیچیده () تابع
تبدیل حرف های رشته ای به اعداد مختلط از طریق complex()
تابع. برای انجام این کار، رشته باید از قالب بندی خاصی پیروی کند. به ویژه، باید بدون فضاهای سفید در اطراف قالب بندی شود +
یا -
اپراتورها:
>>> x = "5+3j"
>>> y = "3+1j"
>>> z = complex(x) + complex(y)
>>> z
(8+4j)
داشتن هر گونه فضای اضافی بین +
یا -
اپراتورها منجر به یک استثنا افزایش یافته می شوند:
>>> z = complex("5+ 3j")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: complex() arg is a malformed string
مانند float()
تابع، complex()
همچنین در انواع اعدادی که اجازه می دهد آرام تر است. به عنوان مثال، قسمت خیالی عدد را می توان به طور کامل حذف کرد و هر دو اعداد صحیح و شناور را نیز می توان تجزیه کرد:
>>> complex("1")
(1+0j)
>>> complex("1.2")
(1.2+0j)
همانطور که می بینید، با این حال، این نباید به عنوان جایگزینی انعطاف پذیرتر استفاده شود int
/float
زیرا به طور خودکار قسمت خیالی عدد را به نسخه رشته ای اضافه می کند.
تبدیل اعداد به رشته ها
با استفاده از str() تابع
این str()
تابع را می توان برای تغییر هر نوع عددی به رشته استفاده کرد.
کارکرد str()
از Python 3.0+ در دسترس است زیرا رشته های موجود در Python 3.0+ به طور پیش فرض یونیکد هستند. با این حال، این برای نسخههای پایتون زیر 3.0 صادق نیست – که در آن برای رسیدن به همان هدف، unicode()
تابع استفاده می شود:
>>> str(23)
'23'
>>> str(23.3)
'23.3'
>>> str(5+4j)
'(5+4j)'
چیز خوب در مورد str()
این است که می تواند هر نوع عددی را به رشته تبدیل کند، بنابراین نیازی نیست نگران انتخاب روش صحیح بر اساس آن باشید. روی چه نوع عددی را تبدیل می کنید
با استفاده از قالب () تابع
یکی دیگر از راه های تبدیل اعداد به رشته ها استفاده از format()
تابع، که به شما امکان می دهد متغیرهایی را در یک رشته تنظیم کنید و سپس نوع داده دیگری را به یک رشته تبدیل کنید و متغیرهایی را پر کنید.
برای استفاده از تابع، کافی است یک رشته و به دنبال آن بنویسید .format()
و آرگومان ها را برای متغیرها ارسال کنید.
در اینجا یک مثال است:
>>> "My age is {}".format(21)
'My age is 21'
استدلال ها در .format()
تابع همچنین می تواند به صورت جداگانه با استفاده از موقعیت ها یا نام متغیرهای آنها ارجاع داده شود:
>>> "You get {product} when you multiply {1} with {0}".format(5.5, 3, product=16.5)
'You get 16.5 when you multiply 3 with 5.5'
توجه داشته باشید که در زیر کاپوت، .format()
تابع به سادگی استفاده می کند str()
برای تبدیل آرگومان ها به رشته ها بنابراین اساساً این روشی مشابه برای تبدیل اعداد به رشتهها مانند بخش قبل است، اما .format()
به عنوان یک تابع راحت برای قالب بندی یک رشته عمل می کند.
نتیجه
پایتون به شما امکان می دهد رشته ها، اعداد صحیح و شناورها را به روش های مختلف به صورت مترادف تبدیل کنید. ساده ترین راه برای انجام این کار استفاده از پایه است str()
، int()
، و float()
کارکرد. علاوه بر این، چند راه دیگر نیز وجود دارد، مانند format()
تابع. فقط به خاطر داشته باشید که int()
، float()
، و complex()
توابع محدودیت های خود را دارند و اگر رشته ورودی دقیقاً آنطور که آنها انتظار دارند قالب بندی نشده باشد، ممکن است استثناهایی ایجاد کنند.
(برچسبها به ترجمه)# python
منتشر شده در 1403-01-18 16:36:06