رشته شماره str را به عدد int تبدیل کنید، در پایتون شناور شوید

کسب و کار

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

در اینجا موارد زیر به همراه کد نمونه توضیح داده شده است.

  • استفاده اساسی
    • رشته های عددی را به اعداد صحیح تبدیل کنید:int()
    • یک رشته اعداد را به اعداد ممیز شناور تبدیل کنید:float()
  • استفاده ویژه
    • رشته ها را در نمادهای باینری، اکتال و هگزادسیمال به اعداد تبدیل می کند
    • رشته ها را در نمادهای نمایی به مقادیر عددی تبدیل می کند
    • رشته های اعداد عربی با عرض کامل را به اعداد تبدیل کنید
    • یک رشته از حروف چینی را به اعداد تبدیل کنید

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

اگر می‌خواهید اعداد یا رشته‌ها را به فرمت‌های مختلف تبدیل کنید، از تابع format() یا روش رشته (str.format) استفاده کنید. سپس می توانید به 0-fill، باینری، اکتال، هگزادسیمال، نماد نمایی و غیره تبدیل کنید. برای جزئیات به مقاله زیر مراجعه کنید.

همچنین می تواند لیست رشته ها را به لیستی از اعداد تبدیل کند. برای جزئیات بیشتر به مقاله زیر مراجعه کنید.

رشته های عددی را به اعداد صحیح تبدیل کنید:int()

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

print(int('100'))
print(type(int('100')))
# 100
# <class 'int'>

اعشار، از جمله اعشار، و رشته هایی که با کاما از هم جدا شده اند منجر به ValueError می شوند.

# print(int('1.23'))
# ValueError: invalid literal for int() with base 10: '1.23'

# print(int('10,000'))
# ValueError: invalid literal for int() with base 10: '10,000'

رشته های محدود شده با کاما را می توان با حذف کاما (به جای آن با یک رشته خالی) با استفاده از متد ()replace تبدیل کرد.

print(int('10,000'.replace(',', '')))
# 10000

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

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

print(float('1.23'))
print(type(float('1.23')))
# 1.23
# <class 'float'>

رشته هایی که قسمت صحیح آنها حذف شده است با تکمیل قسمت صحیح با 0 تبدیل می شوند.

print(float('.23'))
# 0.23

رشته های عدد صحیح نیز به اعداد ممیز شناور تبدیل می شوند.

print(float('100'))
print(type(float('100')))
# 100.0
# <class 'float'>

رشته ها را در نمادهای باینری، اکتال و هگزادسیمال به اعداد تبدیل می کند

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

print(int('100', 2))
print(int('100', 8))
print(int('100', 16))
# 4
# 64
# 256

همانند مثال های قبلی، در صورت حذف عدد، عدد اعشاری در نظر گرفته می شود.

print(int('100', 10))
print(int('100'))
# 100
# 100

اگر ریشه روی 0 تنظیم شود، تبدیل بر اساس پیشوند رشته است. برای پیشوندهای رشته به زیر مراجعه کنید.

  • 0b
    • 0B
  • 0o
    • 0O
  • 0x
    • 0X
print(int('0b100', 0))
print(int('0o100', 0))
print(int('0x100', 0))
# 4
# 64
# 256

پیشوندها و حروف هگز ممکن است بزرگ یا کوچک باشند.

print(int('FF', 16))
print(int('ff', 16))
# 255
# 255

print(int('0xFF', 0))
print(int('0XFF', 0))
print(int('0xff', 0))
print(int('0Xff', 0))
# 255
# 255
# 255
# 255

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

رشته ها را در نمادهای نمایی به مقادیر عددی تبدیل می کند

رشته ها در نماد نمایی می توانند مستقیماً با float () به نوع float تبدیل شوند.

print(float('1.23e-4'))
print(type(float('1.23e-4')))
# 0.000123
# <class 'float'>

print(float('1.23e4'))
print(type(float('1.23e4')))
# 12300.0
# <class 'float'>

حروف کوچک e نیز ممکن است E بزرگ شوند.

print(float('1.23E-4'))
# 0.000123

رشته های اعداد عربی با عرض کامل را به اعداد تبدیل کنید

اعداد عربی با عرض کامل را می توان مستقیماً توسط int() یا float() به اعداد تبدیل کرد.

print(int('100'))
print(type(int('100')))
# 100
# <class 'int'>

print(float('100'))
print(type(float('100')))
# 100.0
# <class 'float'>

با این حال، اگر نمادهایی مانند نقطه منفی و اعشاری کاراکترهای تمام عرض باشند، یک ValueError ایجاد می شود.

# print(float('ー1.23'))
# ValueError: could not convert string to float: '1.23'

اعداد را می توان بدون مشکل تبدیل کرد اگر کاراکترهای تمام عرض باشند، اما منهای و اعشار کاراکترهای نیمه عرض هستند. تبدیل با جایگزینی نمادهای عرض کامل با نمادهای نیمه عرض با استفاده از متد ()replace امکان پذیر است.

print(float('-1.23'))
# -1.23

print(float('ー1.23'.replace('ー', '-').replace('.', '.')))
# -1.23

یک رشته از حروف چینی را به اعداد تبدیل کنید

تابع unicodedata.numeric() در ماژول unicodedata می تواند برای تبدیل یک نویسه چینی یونیکد به یک عدد نوع عدد ممیز شناور استفاده شود.

اگر تک حرفی نباشد خطا رخ می دهد. همچنین کاراکترهای غیر عددی باعث خطا می شوند.

import unicodedata

print(unicodedata.numeric('五'))
print(type(unicodedata.numeric('五')))
# 5.0
# <class 'float'>

print(unicodedata.numeric('十'))
# 10.0

print(unicodedata.numeric('参'))
# 3.0

print(unicodedata.numeric('億'))
# 100000000.0

# print(unicodedata.numeric('五十'))
# TypeError: numeric() argument 1 must be a unicode character, not str

# print(unicodedata.numeric('漢'))
# ValueError: not a numeric character
Copied title and URL