Калі вы хочаце пераўтварыць радок лікаў у лікавыя значэнні ў Python, выкарыстоўвайце int() для пераўтварэння ў цэлыя лікі і float() для пераўтварэння ў лікі з плаваючай кропкай.
Тут тлумачыцца наступнае разам з прыкладам кода.
- Асноўнае выкарыстанне
- Пераўтварэнне лікавых радкоў у цэлыя:
int()
- Пераўтварыць радок лікаў у лікі з плаваючай кропкай:
float()
- Пераўтварэнне лікавых радкоў у цэлыя:
- Спецыяльнае выкарыстанне
- Пераўтварае радкі ў двайковым, васьмярковым і шаснаццатковым абазначэнні ў лікі
- Пераўтварае радкі ў экспанентным абазначэнні ў лікавыя значэнні
- Пераўтварэнне радкоў арабскіх лічбаў на поўную шырыню ў лічбы
- Пераўтварэнне радка кітайскіх іерогліфаў у лічбы
Каб пераўтварыць лікавае значэнне ў радок, выкарыстоўвайце str().
Калі вы хочаце пераўтварыць лікі або радкі ў розныя фарматы, выкарыстоўвайце функцыю format() або метад радка str.format(). Затым вы можаце пераўтварыць у 0-запаўненне, двайковае, васьмярковае, шаснаццатковае, экспанентнае абазначэнне і г.д. Больш падрабязную інфармацыю глядзіце ў наступным артыкуле.
- па тэме:Пераўтварэнне фармату ў Python, фармат (запаўненне 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() зададзена радыкс, радок можна пераўтварыць у цэлае цэлае, разглядаючы яго як двайковы, васьмярковы, шаснаццатковы і г.д.
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 таксама можа пісаць з вялікай літары.
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