Yen sampeyan pengin Ngonversi senar saka angka kanggo angka numerik ing Python, nggunakake int () Ngonversi menyang ongko lan float () Ngonversi menyang nomer floating point.
Ing ngisor iki diterangake ing kene, bebarengan karo kode sampel.
- Panggunaan dhasar
- Ngonversi string numerik menyang integer:
int()
- Ngonversi senar nomer menyang nomer floating point:
float()
- Ngonversi string numerik menyang integer:
- Panggunaan khusus
- Ngonversi string ing notasi biner, octal, lan heksadesimal dadi angka
- Ngonversi string ing notasi eksponensial menyang angka
- Ngonversi string angka Arab kanthi jembar lengkap dadi angka
- Ngonversi senar saka karakter Cina kanggo nomer
Kanggo ngowahi nilai numerik menyang senar, gunakake str ().
Yen sampeyan pengin ngowahi nomer utawa strings kanggo macem-macem format, nggunakake format () fungsi utawa cara senar str.format (). Banjur sampeyan bisa ngowahi dadi 0-isi, binar, oktal, heksadesimal, notasi eksponensial, lsp. Deleng artikel ing ngisor iki kanggo rincian.
Uga bisa ngowahi dhaptar strings menyang dhaptar nomer. Deleng artikel ing ngisor iki kanggo rincian.
- Ngonversi string numerik menyang integer:int()
- Ngonversi senar nomer menyang nomer floating point:float()
- Ngonversi string ing notasi biner, octal, lan heksadesimal dadi angka
- Ngonversi string ing notasi eksponensial menyang angka
- Ngonversi string angka Arab kanthi jembar lengkap dadi angka
- Ngonversi senar saka karakter Cina kanggo nomer
Ngonversi string numerik menyang integer:int()
Sampeyan bisa nggunakake int () Ngonversi senar saka nomer kanggo nomer jinis integer.
print(int('100'))
print(type(int('100')))
# 100
# <class 'int'>
Desimal, kalebu titik desimal, lan string sing dipisahake karo koma bakal nyebabake 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'
Senar sing diwatesi koma bisa diowahi kanthi ngilangi koma (ngganti karo senar kosong) nggunakake cara ngganti ().
print(int('10,000'.replace(',', '')))
# 10000
Ngonversi senar nomer menyang nomer floating point:float()
A float () bisa digunakake kanggo ngowahi senar saka nomer kanggo jinis floating-titik.
print(float('1.23'))
print(type(float('1.23')))
# 1.23
# <class 'float'>
String kanthi bagean integer sing diilangi diowahi kanthi nglengkapi bagean integer kanthi 0.
print(float('.23'))
# 0.23
String integer uga diowahi dadi angka floating-point.
print(float('100'))
print(type(float('100')))
# 100.0
# <class 'float'>
Ngonversi string ing notasi biner, octal, lan heksadesimal dadi angka
Yen radix ditemtokake minangka argumen kaloro kanggo int (), string bisa diowahi menyang integer int dening considering minangka binar, octal, heksadesimal, etc.
print(int('100', 2))
print(int('100', 8))
print(int('100', 16))
# 4
# 64
# 256
Kaya ing conto sadurunge, yen diilangi, angka kasebut dianggep minangka angka desimal.
print(int('100', 10))
print(int('100'))
# 100
# 100
Yen radix disetel kanggo 0, konversi adhedhasar ater-ater senar. Deleng ing ngisor iki kanggo prefiks senar.
0b
0B
0o
0O
0x
0X
print(int('0b100', 0))
print(int('0o100', 0))
print(int('0x100', 0))
# 4
# 64
# 256
Ater-ater lan abjad hex bisa dadi huruf gedhe utawa cilik.
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
Deleng artikel ing ngisor iki kanggo informasi babagan interkonversi angka lan string biner, octal, lan heksadesimal.
Ngonversi string ing notasi eksponensial menyang angka
Strings ing notasi eksponensial bisa diowahi langsung menyang jinis float karo 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'>
Huruf cilik e uga bisa dikapitalisasi E.
print(float('1.23E-4'))
# 0.000123
Ngonversi string angka Arab kanthi jembar lengkap dadi angka
Angka Arab kanthi jembar bisa langsung diowahi dadi angka kanthi int () utawa ngambang ().
print(int('100'))
print(type(int('100')))
# 100
# <class 'int'>
print(float('100'))
print(type(float('100')))
# 100.0
# <class 'float'>
Nanging, yen simbol kayata titik minus lan desimal minangka karakter jembar lengkap, ValueError bakal digawe.
# print(float('ー1.23'))
# ValueError: could not convert string to float: '1.23'
Nomer bisa diowahi tanpa masalah yen karakter jembaré lengkap, nanging titik minus lan desimal minangka karakter setengah jembar. konversi bisa kanthi ngganti simbol jembaré lengkap karo simbol setengah jembaré nggunakake ngganti () cara.
print(float('-1.23'))
# -1.23
print(float('ー1.23'.replace('ー', '-').replace('.', '.')))
# -1.23
Ngonversi senar saka karakter Cina kanggo nomer
Fungsi unicodedata.numeric () ing modul unicodedata bisa digunakake kanggo ngowahi karakter Cina Unicode siji menyang nomer jinis nomer floating-point.
Yen ora siji huruf, bakal ana kesalahan. Uga, karakter non-numerik bakal nyebabake kesalahan.
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