Nëse dëshironi të konvertoni një varg numrash në vlera numerike në Python, përdorni int() për të kthyer në numra të plotë dhe float() për të kthyer në numra me pikë lundruese.
Më poshtë shpjegohet këtu, së bashku me kodin e mostrës.
- Përdorimi bazë
- Konvertoni vargjet numerike në numra të plotë:
int()
- Konvertoni një varg numrash në numra me pikë lundruese:
float()
- Konvertoni vargjet numerike në numra të plotë:
- Përdorimi i Veçantë
- Konverton vargjet në shënime binar, oktal dhe heksadecimal në numra
- Konverton vargjet në shënime eksponenciale në vlera numerike
- Shndërroni vargjet e numrave arabë me gjerësi të plotë në numra
- Konvertoni një varg karakteresh kineze në numra
Për të kthyer një vlerë numerike në një varg, përdorni str().
Nëse dëshironi të konvertoni numra ose vargje në formate të ndryshme, përdorni funksionin format() ose metodën string str.format(). Pastaj mund të konvertohet në 0-mbushje, binar, oktal, heksadecimal, shënim eksponencial, etj. Shih artikullin vijues për detaje.
- LIDHUR:Konvertimi i formatit në Python, formati (mbushja 0, shënimi eksponencial, heksadecimal, etj.)
Mund të konvertojë gjithashtu një listë vargjesh në një listë numrash. Shihni artikullin e mëposhtëm për detaje.
- LIDHUR:Konvertimi i listave të vargjeve (vargjeve) dhe listave të numrave me njëri-tjetrin në Python
- Konvertoni vargjet numerike në numra të plotë:int()
- Konvertoni një varg numrash në numra me pikë lundruese:float()
- Konverton vargjet në shënime binar, oktal dhe heksadecimal në numra
- Konverton vargjet në shënime eksponenciale në vlera numerike
- Shndërroni vargjet e numrave arabë me gjerësi të plotë në numra
- Konvertoni një varg karakteresh kineze në numra
Konvertoni vargjet numerike në numra të plotë:int()
Ju mund të përdorni int() për të kthyer një varg numrash në numra të tipit të plotë.
print(int('100'))
print(type(int('100')))
# 100
# <class 'int'>
Shifrat dhjetore, duke përfshirë pikat dhjetore, dhe vargjet e ndara me presje do të rezultojnë në një 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'
Vargjet e kufizuara me presje mund të konvertohen duke hequr presjen (duke e zëvendësuar atë me një varg bosh) duke përdorur metodën e zëvendësimit().
print(int('10,000'.replace(',', '')))
# 10000
Konvertoni një varg numrash në numra me pikë lundruese:float()
Një float() mund të përdoret për të kthyer një varg numrash në një lloj numri me pikë lundruese.
print(float('1.23'))
print(type(float('1.23')))
# 1.23
# <class 'float'>
Vargjet me pjesën e plotë të anashkaluar konvertohen duke plotësuar pjesën e plotë me 0.
print(float('.23'))
# 0.23
Vargjet e numrave të plotë gjithashtu konvertohen në numra me pikë lundruese.
print(float('100'))
print(type(float('100')))
# 100.0
# <class 'float'>
Konverton vargjet në shënime binar, oktal dhe heksadecimal në numra
Nëse një radix specifikohet si argumenti i dytë në int(), vargu mund të konvertohet në një int numër të plotë duke e konsideruar atë si një binar, oktal, heksadecimal, etj.
print(int('100', 2))
print(int('100', 8))
print(int('100', 16))
# 4
# 64
# 256
Si në shembujt e mëparshëm, nëse hiqet, numri konsiderohet të jetë një numër dhjetor.
print(int('100', 10))
print(int('100'))
# 100
# 100
Nëse radiksi është vendosur në 0, konvertimi bazohet në prefiksin e vargut. Shihni më poshtë për prefikset e vargut.
0b
0B
0o
0O
0x
0X
print(int('0b100', 0))
print(int('0o100', 0))
print(int('0x100', 0))
# 4
# 64
# 256
Parashtesat dhe alfabetet heks mund të jenë ose të mëdha ose të vogla.
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
Shih artikullin vijues për informacion mbi ndërkonvertimin e numrave dhe vargjeve binar, oktal dhe heksadecimal.
Konverton vargjet në shënime eksponenciale në vlera numerike
Vargjet në shënimin eksponencial mund të konvertohen drejtpërdrejt në llojin float me 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'>
Shkronja e vogël e mund të shkruhen gjithashtu me shkronjë E.
print(float('1.23E-4'))
# 0.000123
Shndërroni vargjet e numrave arabë me gjerësi të plotë në numra
Numrat arabë me gjerësi të plotë mund të konvertohen drejtpërdrejt në numra me int() ose float().
print(int('100'))
print(type(int('100')))
# 100
# <class 'int'>
print(float('100'))
print(type(float('100')))
# 100.0
# <class 'float'>
Megjithatë, nëse simbolet si pikat minus dhe dhjetore janë karaktere me gjerësi të plotë, do të gjenerohet një ValueError.
# print(float('ー1.23'))
# ValueError: could not convert string to float: '1.23'
Numrat mund të konvertohen pa probleme nëse janë karaktere me gjerësi të plotë, por minuset dhe pikat dhjetore janë karaktere gjysmë gjerësi. konvertimi është i mundur duke zëvendësuar simbolet me gjerësi të plotë me simbolet me gjysmë gjerësi duke përdorur metodën zëvendësim().
print(float('-1.23'))
# -1.23
print(float('ー1.23'.replace('ー', '-').replace('.', '.')))
# -1.23
Konvertoni një varg karakteresh kineze në numra
Funksioni unicodedata.numeric() në modulin unicodedata mund të përdoret për të kthyer një karakter kinez të vetëm Unicode në një numër të tipit të numrit me pikë lundruese.
Nëse nuk është një shkronjë e vetme, do të ndodhë një gabim. Gjithashtu, karakteret jo numerike do të shkaktojnë një gabim.
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