Selles teemas saame teada, kuidas string teisendada täisarvuks sisseehitatud andmetüübiga ja seda kasutamata. Me teame, et string on tähemärkide kogu, mis on järjestatud jutumärkidesse ja täisarv on arv ilma kümnendkohtadeta ja pole lisatud ühtegi jutumärki.
Kuid kui tekib küsimus, kuidas teisendada üks andmetüüp teiseks, pakub Python lihtsat viisi teisendamiseks. Sel juhul näeme, kuidas saab stringi teisendada täisarvuks järgmises järjekorras:
Sisseehitatud andmetüüpide kasutamine
Oletame, et kui ma mingil põhjusel kasutajalt sisendi võtan, võtab Python selle ja tagastab selle ise stringina. Teisisõnu, isegi kui keegi sisestab numbri sisendina, tagastab Python selle stringina.
nimi = sisestus ('Mis on teie nimi:') print (nimi) print (tüüp (nimi)) vanus = input ('mis on teie vanus:') print (vanus) print (tüüp (vanus))
Väljund:
Mis su nimi on: Tyra
Tyra
c ++ sorteerimismassiivid
Mis on teie vanus: 20
kakskümmend
Nii et näete, sisendiks võetud nime tüüp ja vanus on „String”.
Oletame, et kui me tahame vanusele lisada 5, siis teeme järgmist:
nimi = sisestus ('Mis on teie nimi:') print (nimi) print (tüüp (nimi)) vanus = input ('mis on teie vanus:') print (vanus) print (tüüp (vanus)) print (vanus + 5)
Väljund:
Mis su nimi on: Tyra
Tyra
Mis on teie vanus: 20
kakskümmend
Jälgimine (viimane kõne oli viimane):
.trim () java
Faili C: /Users/prac.py 9. rida sisse
trükk (vanus + 5)
TypeError: peab olema str, mitte int
Me ei saa vanusele 5 lisada, kuna vanus on String tüüpi ja me ei saa stringidega otsemat matemaatikat teha. Seega peame vanuse muutma täisarvuks, sest sisendiks oleme võtnud vanuse ja Python tagastab selle stringina.
Seega.
nimi = sisestus ('Mis on teie nimi:') print (nimi) print (tüüp (nimi)) vanus = sisestus ('Mis on teie vanus:') print (vanus) print (tüüp (vanus)) vanus = int ( vanus) print (vanus + 5)
Väljund:
Mis su nimi on: Tyra
Tyra
Mis on teie vanus: 20
kakskümmend
25
Tavapärane viis
Oletame, et me ei soovi stringi teisendamiseks täisarvuks kasutada sisseehitatud funktsiooni int ().Nii et peame kasutama tavapärasel viisil teisendada.
Siin on lihtne viis teisendamiseks ilma int () kasutamata.
'' '' 123 '-> 123' -12332 '-> -12332' '' def str_to_int (input_str): output_int = 0, kui input_str [0] == '-': start_idx = 1 is_negative = Tõsi muu: start_idx = 0 on_negatiivne = vale väärtusele i vahemikus (algus_idx, len (sisend_str)): koht = 10 ** (len (sisend_str) - (i + 1)) number = ord (sisend_str [i]) - ord ('0') output_int + = koht * number, kui see on_negatiivne: 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))
Väljund:
123
-123
Kõigepealt kontrollime, kas kasutaja esitatud number sisaldab miinusmärki või mitte, st kas see on negatiivne number või mitte.Kui see sisaldab miinusmärgi esimeses positsioonis, alustame teisendamist teisest, mis sisaldab numbreid.
Mis tahes numbri, näiteks 123, saab kirjutada kujul -10 ** 2 * 1 + 10 ** 1 * 2 + 10 ** 0 * 3
Samamoodi jagame iga sisendi numbri abil sõna (argument) .
ord (’0’) tagastab 48, ord (’1’) tagastab 49 jne.
Siin kasutame loogikat, et ord ('1') - ord ('0) = 1, ord (' 2 ') - ord (' 0 ') = 2 jne., Mis annab meile antud arvust olulise arvu. sisendnumber.
Lõpuks on funktsioonist saadud väljund legitiimarv, mille teisendasime antud sisendstringist.
on aspirant ja valdab sama
Nii et nagu näete, võime mis tahes stringi teisendada täisarvuks kas funktsiooni int () abil või tavapärasel viisil.
Loodan, et õppisite mõisted hästi ära ja proovisite selle täpsemaks proovida ning sellega jõuame selle artikli lõpuni, mis käsitleb stringi teisendamist Pythoni abil int-ks.
Kas teil on meile küsimus? Palun mainige seda selle stringi ja täisarvu õpetuse kommentaaride jaotises ja võtame teiega esimesel võimalusel ühendust.
Põhjalike teadmiste saamiseks Pythoni ja selle erinevate rakenduste kohta saate registreeruda otseülekandeks 24/7 toe ja ligipääsuga kogu eluks.