Ако желите да конвертујете низ бројева у нумеричке вредности у Питхон-у, користите инт() да конвертујете у целе бројеве и флоат() да претворите у бројеве са покретним зарезом.
Овде је објашњено следеће, заједно са примером кода.
- Основна употреба
- Претворите нумеричке низове у целе бројеве:
int()
- Претворите низ бројева у бројеве са покретним зарезом:
float()
- Претворите нумеричке низове у целе бројеве:
- Посебна употреба
- Конвертује низове у бинарном, окталном и хексадецималном запису у бројеве
- Конвертује стрингове у експоненцијалној нотацији у нумеричке вредности
- Претворите низове арапских бројева пуне ширине у бројеве
- Претворите низ кинеских знакова у бројеве
Да бисте претворили нумеричку вредност у стринг, користите стр().
Ако желите да конвертујете бројеве или низове у различите формате, користите функцију формат() или метод стринга стр.формат(). Затим можете конвертовати у 0-филл, бинарни, октални, хексадецимални, експоненцијални запис, итд. Погледајте следећи чланак за детаље.
- ПОВЕЗАН:Конверзија формата у Питхон-у, формат (попуњавање 0, експоненцијална нотација, хексадецимална итд.)
Такође може да конвертује листу стрингова у листу бројева. За детаље погледајте следећи чланак.
- Претворите нумеричке низове у целе бројеве:int()
- Претворите низ бројева у бројеве са покретним зарезом:float()
- Конвертује низове у бинарном, окталном и хексадецималном запису у бројеве
- Конвертује стрингове у експоненцијалној нотацији у нумеричке вредности
- Претворите низове арапских бројева пуне ширине у бројеве
- Претворите низ кинеских знакова у бројеве
Претворите нумеричке низове у целе бројеве:int()
Можете користити инт() да конвертујете низ бројева у бројеве целобројног типа.
print(int('100'))
print(type(int('100')))
# 100
# <class 'int'>
Децимале, укључујући децималне тачке, и низови одвојени зарезима ће резултирати грешком вредности.
# 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'
Стрингови раздвојени зарезима се могу конвертовати уклањањем зареза (замена празним стрингом) коришћењем методе реплаце().
print(int('10,000'.replace(',', '')))
# 10000
Претворите низ бројева у бројеве са покретним зарезом: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'>
Конвертује низове у бинарном, окталном и хексадецималном запису у бројеве
Ако је основа наведен као други аргумент за инт(), стринг се може конвертовати у цео број инт посматрањем као бинарни, октални, хексадецимални итд.
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
Погледајте следећи чланак за информације о међусобној конверзији бинарних, окталних и хексадецималних бројева и низова.
Конвертује стрингове у експоненцијалној нотацији у нумеричке вредности
Низови у експоненцијалној нотацији могу се директно конвертовати у тип флоат помоћу флоат().
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'>
Мала слова е такође могу бити написана великим словима Е.
print(float('1.23E-4'))
# 0.000123
Претворите низове арапских бројева пуне ширине у бројеве
Арапски бројеви пуне ширине могу се директно конвертовати у бројеве помоћу инт() или флоат().
print(int('100'))
print(type(int('100')))
# 100
# <class 'int'>
print(float('100'))
print(type(float('100')))
# 100.0
# <class 'float'>
Међутим, ако су симболи као што су минус и децималне тачке знакови пуне ширине, биће генерисана ВалуеЕррор.
# print(float('ー1.23'))
# ValueError: could not convert string to float: '1.23'
Бројеви се могу конвертовати без проблема ако су знакови пуне ширине, али минус и децималне тачке су знакови половине ширине. конверзија је могућа заменом симбола пуне ширине симболима половине ширине помоћу методе реплаце().
print(float('-1.23'))
# -1.23
print(float('ー1.23'.replace('ー', '-').replace('.', '.')))
# -1.23
Претворите низ кинеских знакова у бројеве
Функција уницодедата.нумериц() у модулу уницодедата може се користити за претварање једног кинеског знака Уницоде у број типа броја са покретним зарезом.
Ако није једно слово, појавиће се грешка. Такође, ненумерички знакови ће узроковати грешку.
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