U ovoj ćemo temi naučiti kako pretvoriti niz u cijeli broj sa i bez upotrebe ugrađenog tipa podataka. Znamo da je niz zbirka znakova poredanih sekvencijalno zatvorenih unutar navodnika, a cijeli broj je broj bez ikakvih decimalnih zareza i koji nije zatvoren ni uz jednu vrstu navodnika.
Ali kada se postavi pitanje kako pretvoriti jednu vrstu podataka u drugu, Python pruža jednostavan način međusobne konverzije. U ovom slučaju vidimo kako možemo pretvoriti niz u cijeli broj sljedećim redoslijedom:
Korištenje ugrađenih vrsta podataka
Pretpostavimo da kad iz nekog razloga od korisnika uzmem unos, Python ga uzme i vrati kao sam niz. Drugim riječima, čak i ako netko upiše broj kao ulaz, Python ga vraća kao niz.
kako implementirati hrpu
name = input ('Kako se zoveš:') print (name) print (type (name)) age = input ('What is your age:') print (age) print (type (age))
Izlaz:
Kako se zoveš: Tyra
Tyra
Kolike su vaše godine: 20
dvadeset
Pa vidite, vrsta imena i dobi uzeta kao ulaz su 'String'.
Sada, pretpostavimo ako želimo dodati 5 dobi, učinit ćemo sljedeće:
name = input ('Kako se zoveš:') print (name) print (type (name)) age = input ('What is your age:') print (age) print (type (age)) print (age + 5)
Izlaz:
Kako se zoveš: Tyra
Tyra
Kolike su vaše godine: 20
dvadeset
Traceback (najnoviji zadnji poziv):
Datoteka 'C: /Users/prac.py', red 9, u
ispis (dob + 5)
TypeError: mora biti str, a ne int
Dob ne možemo dodati 5, jer je dob tipa String i ne možemo izravno računati žicama. Dakle, dob moramo promijeniti u cijeli broj, jer smo dob uzeli kao ulaz, a Python ga vraća kao String.
Stoga.
name = input ('Kako se zoveš:') print (name) print (type (name)) age = input ('What is your age:') print (age) print (type (age)) age = int ( dob) ispis (dob + 5)
Izlaz:
Kako se zoveš: Tyra
Tyra
Kolike su vaše godine: 20
dvadeset
25
Konvencionalan način
Pretpostavimo da ne želimo koristiti ugrađenu funkciju int () za pretvaranje niza u cijeli broj.Zato moramo koristiti konvencionalni način pretvoriti.
Evo jednostavnog načina za konverziju bez upotrebe int ().
'' '' 123 '-> 123' -12332 '-> -12332' '' def str_to_int (input_str): output_int = 0 ako je input_str [0] == '-': start_idx = 1 is_negative = True else: start_idx = 0 is_negative = False za i u rasponu (start_idx, len (input_str)): mjesto = 10 ** (len (input_str) - (i + 1)) znamenka = ord (input_str [i]) - ord ('0') output_int + = mjesto * znamenka ako 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 = Ispis '-123' (str_to_int (s))
Izlaz:
123
-123
Prvo ćemo provjeriti sadrži li broj koji je pružio korisnik neki znak minus ili ne, tj. Je li negativan broj ili ne.Ako sadrži prvo mjesto u predznaku minus, započinjemo s pretvaranjem s drugog mjesta koje sadrži brojeve.
Bilo koji broj, recimo 123, može se zapisati u obliku -10 ** 2 * 1 + 10 ** 1 * 2 + 10 ** 0 * 3
mvc uzorak dizajna u javi
Slično tome, svaki ulazni broj dijelimo pomoću riječ (argument) .
ord (‘0’) vraća 48, ord (‘1’) vraća 49 itd.
Ovdje koristimo logiku da je ord ('1') - ord ('0) = 1, ord (' 2 ') - ord (' 0 ') = 2 itd. Što nam daje značajan broj koji treba dohvatiti iz datog ulazni broj.
Napokon, izlaz koji dobivamo iz funkcije legitiman je cijeli broj koji smo pretvorili iz zadanog ulaznog niza.
Dakle, kao što vidite, možemo pretvoriti bilo koji niz u cijeli broj pomoću funkcije int () ili na uobičajeni način.
Nadam se da ste dobro naučili koncepte i stoga ga isprobajte kako bi bio precizniji i time smo došli do kraja ovog članka o Pretvaranju niza u int pomoću Pythona.
Imate pitanje za nas? Molimo vas da ga spominjete u odjeljku za komentare ovog vodiča za String to Integer i javit ćemo vam se što je prije moguće.
Da biste stekli detaljno znanje o Pythonu, zajedno s raznim aplikacijama, možete se prijaviti uživo s 24/7 podrškom i doživotnim pristupom.