Badilisha kamba ya nambari kuwa int, kuelea kwenye Python

Biashara

Ikiwa unataka kubadilisha safu ya nambari kuwa nambari za nambari kwenye Python, tumia int() kubadilisha kuwa nambari kamili na kuelea () kubadilisha kuwa nambari za sehemu zinazoelea.

Ifuatayo imeelezewa hapa, pamoja na nambari ya mfano.

  • Matumizi ya kimsingi
    • Badilisha mifuatano ya nambari kuwa nambari kamili:int()
    • Badilisha mfuatano wa nambari kuwa nambari za sehemu zinazoelea:float()
  • Matumizi Maalum
    • Hubadilisha mifuatano katika nukuu ya binary, oktali, na heksadesimali kuwa nambari
    • Hubadilisha mifuatano katika nukuu ya kielelezo kuwa thamani za nambari
    • Badilisha mifuatano ya nambari ya Kiarabu yenye upana kamili kuwa nambari
    • Badilisha mfuatano wa herufi za Kichina kuwa nambari

Ili kubadilisha thamani ya nambari kuwa mfuatano, tumia str().

Ikiwa unataka kubadilisha nambari au mifuatano kuwa miundo mbalimbali, tumia kitendakazi cha umbizo() au mbinu ya kamba str.format(). Kisha unaweza kubadilisha hadi 0-fill, binary, octal, hexadecimal, exponential notation, n.k. Tazama makala ifuatayo kwa maelezo zaidi.

Inaweza pia kubadilisha orodha ya mifuatano kuwa orodha ya nambari. Tazama makala ifuatayo kwa maelezo zaidi.

Badilisha mifuatano ya nambari kuwa nambari kamili:int()

Unaweza kutumia int() kubadilisha msururu wa nambari kuwa nambari za aina kamili.

print(int('100'))
print(type(int('100')))
# 100
# <class 'int'>

Desimali, ikijumuisha nukta za desimali, na mifuatano iliyotenganishwa kwa koma itasababisha 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'

Mistari iliyotenganishwa kwa koma inaweza kubadilishwa kwa kuondoa koma (kuibadilisha na mfuatano tupu) kwa kutumia njia ya replace().

print(int('10,000'.replace(',', '')))
# 10000

Badilisha mfuatano wa nambari kuwa nambari za sehemu zinazoelea:float()

Float() inaweza kutumika kubadilisha mfuatano wa nambari kuwa aina ya nambari inayoelea.

print(float('1.23'))
print(type(float('1.23')))
# 1.23
# <class 'float'>

Mifuatano iliyo na sehemu kamili iliyoachwa hubadilishwa kwa kukamilisha sehemu kamili na 0.

print(float('.23'))
# 0.23

Kamba nambari kamili pia hubadilishwa hadi nambari za sehemu zinazoelea.

print(float('100'))
print(type(float('100')))
# 100.0
# <class 'float'>

Hubadilisha mifuatano katika nukuu ya binary, oktali, na heksadesimali kuwa nambari

Ikiwa radix imebainishwa kama hoja ya pili hadi int(), mfuatano unaweza kubadilishwa hadi int kamili kwa kuuzingatia kama jozi, octal, hexadecimal, n.k.

print(int('100', 2))
print(int('100', 8))
print(int('100', 16))
# 4
# 64
# 256

Kama ilivyo katika mifano iliyopita, ikiwa imeachwa, nambari inachukuliwa kuwa nambari ya desimali.

print(int('100', 10))
print(int('100'))
# 100
# 100

Ikiwa radix imewekwa kuwa 0, ubadilishaji unategemea kiambishi awali cha kamba. Tazama hapa chini kwa viambishi awali vya kamba.

  • 0b
    • 0B
  • 0o
    • 0O
  • 0x
    • 0X
print(int('0b100', 0))
print(int('0o100', 0))
print(int('0x100', 0))
# 4
# 64
# 256

Viambishi awali na herufi heksi vinaweza kuwa herufi kubwa au ndogo.

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

Tazama nakala ifuatayo kwa maelezo juu ya ubadilishaji wa nambari na mifuatano ya binary, oktali, na heksadesimali.

Hubadilisha mifuatano katika nukuu ya kielelezo kuwa thamani za nambari

Mifuatano katika nukuu kielelezo inaweza kubadilishwa moja kwa moja hadi aina ya kuelea kwa 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'>

Herufi ndogo e pia inaweza kuwa herufi kubwa E.

print(float('1.23E-4'))
# 0.000123

Badilisha mifuatano ya nambari ya Kiarabu yenye upana kamili kuwa nambari

Nambari za Kiarabu zenye upana kamili zinaweza kubadilishwa moja kwa moja hadi nambari kwa int() au kuelea().

print(int('100'))
print(type(int('100')))
# 100
# <class 'int'>

print(float('100'))
print(type(float('100')))
# 100.0
# <class 'float'>

Hata hivyo, ikiwa alama kama vile minus na vipindi vya desimali ni herufi zenye upana kamili, ValueError itatolewa.

# print(float('ー1.23'))
# ValueError: could not convert string to float: '1.23'

Nambari zinaweza kubadilishwa bila matatizo ikiwa ni vibambo vya upana kamili, lakini nukta ya minus na desimali ni vibambo vya upana wa nusu. ubadilishaji unawezekana kwa kubadilisha alama za upana kamili na alama za upana wa nusu kwa kutumia njia ya replace().

print(float('-1.23'))
# -1.23

print(float('ー1.23'.replace('ー', '-').replace('.', '.')))
# -1.23

Badilisha mfuatano wa herufi za Kichina kuwa nambari

Chaguo za kukokotoa za unicodedata.numeric() katika sehemu ya unicodedata zinaweza kutumika kubadilisha herufi moja ya Unicode ya Kichina kuwa nambari ya aina ya sehemu inayoelea.

Ikiwa sio herufi moja, kosa litatokea. Pia, herufi zisizo na nambari zitasababisha hitilafu.

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
Copied title and URL