V tej temi bomo izvedeli, kako pretvoriti niz v celo število z in brez uporabe vgrajenega podatkovnega tipa. Vemo, da je niz zbirka znakov, razporejenih zaporedno v narekovaje, celo število pa je število brez decimalnih vej in ni zaprto z nobeno vrsto narekovajev.
Toda ko se pojavi vprašanje, kako pretvoriti en podatkovni tip v drugega, Python ponuja enostaven način za pretvorbo drug v drugega. V tem primeru vidimo, kako lahko pretvorimo niz v celo število v naslednjem vrstnem redu:
Uporaba vgrajenih podatkovnih tipov
Denimo, da ko uporabnik iz nekega razloga vzamem vnos, ga Python vzame in vrne kot niz sam. Z drugimi besedami, tudi če nekdo vnese številko kot vhod, jo Python vrne kot niz.
name = input ('Kako ti je ime:') print (name) print (type (name)) age = input ('What is your age:') print (age) print (type (age))
Izhod:
Kako ti je ime: Tyra
Tyra
Koliko ste stari: 20
dvajset
učenje informatike korak za korakom
Torej vidite, vrsta imena in starost, vzeta kot vhod, je 'String'.
Zdaj, če želimo starosti dodati 5, bomo storili naslednje:
name = input ('Kako ti je ime:') print (ime) print (vrsta (ime)) age = input ('What is your age:') print (starost) print (vrsta (starost)) print (starost + 5)
Izhod:
Kako ti je ime: Tyra
Tyra
Koliko ste stari: 20
dvajset
Sledenje (zadnji zadnji klic):
Datoteka 'C: /Users/prac.py', vrstica 9, v
tisk (starost + 5)
TypeError: mora biti str, ne int
Starostju ne moremo dodati 5, ker je starost vrste String in ne moremo neposredno izračunati z nizi. Torej moramo spremeniti starost na celo število, ker smo za vhod vzeli starost, Python pa jo vrne kot niz.
Zato.
name = input ('Kako ti je ime:') print (name) print (type (name)) age = input ('What is your age:') print (age) print (type (age)) age = int ( starost) tisk (starost + 5)
Izhod:
Kako ti je ime: Tyra
Tyra
stl razvrsti c ++
Koliko ste stari: 20
dvajset
25.
mysql_fetch_array
Konvencionalen način
Recimo, da ne želimo uporabljati vgrajene funkcije int () za pretvorbo niza v celo število.Zato moramo uporabiti konvencionalen način spreobrniti.
Tu je preprost način za pretvorbo, ne da bi uporabili int ().
'' '' 123 '-> 123' -12332 '-> -12332' '' def str_to_int (input_str): output_int = 0, če input_str [0] == '-': start_idx = 1 is_negative = True else: start_idx = 0 is_negative = False za i v območju (start_idx, len (input_str)): place = 10 ** (len (input_str) - (i + 1)) številka = ord (input_str [i]) - ord ('0') output_int + = mesto * številka, če je negativno: return -1 * output_int else: return output_int s = '554' x = str_to_int (s) print (type (x)) s = '123' print (str_to_int (s)) s = '-123' print (str_to_int (s))
Izhod:
123
-123
Najprej bomo preverili, ali številka, ki jo navede uporabnik, vsebuje znak minus ali ne, tj. Ali je negativna številka ali ne.Če vsebuje na prvem mestu znak minus, začnemo pretvorbo z drugega mesta, ki vsebuje številke.
Vsako številko, recimo 123, lahko zapišemo v obliki -10 ** 2 * 1 + 10 ** 1 * 2 + 10 ** 0 * 3
Podobno delimo vsako vhodno številko z uporabo beseda (argument) .
ord (‘0’) vrne 48, ord (‘1’) vrne 49 itd.
Tu uporabljamo logiko, da je ord ('1') - ord ('0) = 1, ord (' 2 ') - ord (' 0 ') = 2 itd., Kar nam daje pomembno število, ki ga je treba pridobiti iz danega vhodna številka.
Končno je izhod, ki ga dobimo iz funkcije, zakonito celo število, ki smo ga pretvorili iz danega vhodnega niza.
Kot lahko vidite, lahko kateri koli niz pretvorimo v celo število s pomočjo funkcije int () ali na običajen način.
Upam, da ste se konceptov dobro naučili in ga zato preizkusili, da je natančnejši. S tem smo prišli do konca tega članka o pretvorbi niza v int z uporabo Pythona.
Imate vprašanje za nas? Prosimo, omenite ga v oddelku za komentarje te vadnice za niz v celo število in v najkrajšem možnem času se vam bomo oglasili.
Če želite pridobiti poglobljeno znanje o Pythonu skupaj z različnimi aplikacijami, se lahko prijavite v živo s 24-urno podporo in življenjskim dostopom.