Якщо ви хочете перетворити рядок чисел у числові значення в Python, використовуйте int() для перетворення в цілі числа і float() для перетворення в числа з плаваючою комою.
Нижче пояснюється тут разом із прикладом коду.
- Основне використання
- Перетворіть числові рядки в цілі числа:
int()
- Перетворіть рядок чисел у числа з плаваючою комою:
float()
- Перетворіть числові рядки в цілі числа:
- Спеціальне використання
- Перетворює рядки у двійковій, вісімковій та шістнадцятковій системі запису в числа
- Перетворює рядки в експоненційному позначенні на числові значення
- Перетворіть рядки арабських цифр повної ширини в числа
- Перетворіть рядок китайських ієрогліфів у числа
Щоб перетворити числове значення в рядок, використовуйте str().
Якщо ви хочете перетворити числа або рядки в різні формати, скористайтеся функцією format() або методом str.format(). Потім ви можете перетворити на заповнення 0, двійкове, вісімкове, шістнадцяткове, експоненційне позначення тощо. Докладніше дивіться в наступній статті.
Він також може перетворити список рядків у список чисел. Подробиці дивіться в наступній статті.
- Перетворіть числові рядки в цілі числа:int()
- Перетворіть рядок чисел у числа з плаваючою комою:float()
- Перетворює рядки у двійковій, вісімковій та шістнадцятковій системі запису в числа
- Перетворює рядки в експоненційному позначенні на числові значення
- Перетворіть рядки арабських цифр повної ширини в числа
- Перетворіть рядок китайських ієрогліфів у числа
Перетворіть числові рядки в цілі числа: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() вказано основи, рядок можна перетворити на ціле число 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
Інформацію про взаємоперетворення двійкових, вісімкових і шістнадцяткових чисел і рядків див. у наступній статті.
- ПОВ’ЯЗАНІ:Перетворення двійкових, вісімкових і шістнадцяткових чисел і рядків один в одного в Python
Перетворює рядки в експоненційному позначенні на числові значення
Рядки в експоненційному позначенні можуть бути перетворені безпосередньо в тип 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 можна використовувати для перетворення окремого китайського символу Unicode в число з плаваючою комою.
Якщо це не одна буква, виникне помилка. Крім того, нечислові символи спричинять помилку.
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