Kaip paversti eilutę į sveikąjį skaičių naudojant „Python“



Šis straipsnis suteiks jums išsamių ir išsamių žinių, kaip įvairiais būdais paversti eilutę į sveiką skaičių su pavyzdžiais.

Šioje temoje mes sužinosime, kaip konvertuoti eilutę į sveiką skaičių naudojant nenaudojant integruoto duomenų tipo. Mes žinome, kad eilutė yra simbolių rinkinys, išdėstytas nuosekliai, uždarytas kabutėse, o sveikasis skaičius yra skaičius be dešimtainių taškų ir nėra pridėtas prie bet kokio tipo kabučių.

Stygos iki sveiko skaičiaus pitono





Bet kai kyla klausimas, kaip konvertuoti vieną duomenų tipą į kitą, „Python“ suteikia paprastą būdą konvertuoti vienas į kitą. Tokiu atveju matome, kaip galime eilutę paversti sveikuoju tokia tvarka:

Integruotų duomenų tipų naudojimas



Tarkime, kai dėl kokių nors priežasčių imu iš vartotojo įvestį, „Python“ ją paima ir grąžina kaip eilutę. Kitaip tariant, net jei kas nors įveda skaičių kaip įvestį, „Python“ grąžina jį kaip eilutę.

vardas = įvestis ('Koks jūsų vardas:') spausdinti (vardas) spausdinti (tipas (vardas)) amžius = įvestis ('koks jūsų amžius:') spausdinti (amžius) spausdinti (tipas (amžius))

Išvestis:

lėlė vs virėjas vs jenkins

Koks tavo vardas: Tyra



Tyra

Koks jūsų amžius: 20

dvidešimt

Taigi matote, kad įvestas vardas ir amžius yra „Stygos“.

Tarkime, jei norime pridėti 5 amžių, atliksime šiuos veiksmus:

vardas = įvestis ('Koks jūsų vardas:') spausdinti (vardas) spausdinti (tipas (vardas)) amžius = įvestis ('koks jūsų amžius:') spausdinti (amžius) spausdinti (tipas (amžius)) spausdinti (amžius + 5)

Išvestis:

Koks tavo vardas: Tyra

Tyra

Koks jūsų amžius: 20

dvidešimt

„Traceback“ (paskutinis paskutinis skambutis):

Failo „C: /Users/prac.py“ 9 eilutė

spausdinti (amžius + 5)

TypeError: turi būti str, o ne int

Negalime pridėti 5 prie amžiaus, nes amžius yra „String“ tipo ir negalime atlikti tiesioginės matematikos su eilutėmis. Taigi mes turime pakeisti amžių į sveiką skaičių, nes mes įvedėme amžių kaip įvestį, o „Python“ grąžina jį kaip eilutę.

Vadinasi.

vardas = įvestis ('Koks jūsų vardas:') spausdinti (vardas) spausdinti (tipas (vardas)) amžius = įvestis ('koks jūsų amžius:') spausdinti (amžius) spausdinti (tipas (amžius)) amžius = int ( amžius) spausdinti (amžius + 5)

Išvestis:

Koks tavo vardas: Tyra

Tyra

Koks jūsų amžius: 20

dvidešimt

25

Įprastas būdas

Tarkime, kad nenorime naudoti integruotos funkcijos int () eilutei konvertuoti į sveiką skaičių.Taigi mes turime naudoti įprastu būdu Konvertuoti.

Čia yra paprastas būdas pereiti prie konvertavimo nenaudojant int ().

'' '' 123 '-> 123' -12332 '-> -12332' '' def str_to_int (input_str): output_int = 0 if input_str [0] == '-': start_idx = 1 is_negative = True else: start_idx = 0 is_negative = Neteisingas i diapazone (start_idx, len (input_str)): vieta = 10 ** (len (input_str) - (i + 1)) skaitmuo = ord (input_str [i]) - ord ('0') output_int + = vieta * skaitmuo, jei is_negative: grįžti -1 * output_int else: grąžinti output_int s = '554' x = str_to_int (s) print (type (x)) s = '123' print (str_to_int (s)) s = „-123“ spausdinimas (str_to_int (s))

Išvestis:

123

-123

  • Pirmiausia patikrinsime, ar vartotojo pateiktame numeryje yra minuso ženklas, ar ne, t. Y. Neigiamas skaičius ar ne.Jei pirmoje pozicijoje yra minuso ženklas, mes pradedame konversiją nuo antrosios pozicijos, kurioje yra skaičiai.

  • Bet kurį skaičių, tarkime, 123, galima parašyti tokia forma -10 ** 2 * 1 + 10 ** 1 * 2 + 10 ** 0 * 3

  • Panašiai mes padalijame kiekvieną įvesties numerį naudodami žodžiai (argumentas) .

  • ord (‘0’) grąžins 48, ord (‘1’) grąžins 49 ir ​​kt.

  • Čia mes naudojame logiką, kad ord ('1') - ord ('0) = 1, ord (' 2 ') - ord (' 0 ') = 2 ir kt., Kuri suteikia mums reikšmingą skaičių, kurį reikia gauti iš pateikto įvesties numeris.

  • Pagaliau išvestis, kurią gauname iš funkcijos, yra teisėtas sveikasis skaičius, kurį pavertėme iš nurodytos įvesties eilutės.

Taigi, kaip matote, bet kurią eilutę galime konvertuoti į sveiką skaičių naudodami funkciją int () arba įprastu būdu.

Tikiuosi, kad jūs gerai išmokote šias sąvokas ir todėl bandote tai padaryti tiksliau, ir tuo mes baigėme šį straipsnį apie Stygų konvertavimą į int naudojant „Python“.

Turite mums klausimą? Prašau paminėti tai šios pamokos „String to Integer“ komentarų skyriuje, ir mes kuo greičiau susisieksime su jumis.

Norėdami gauti išsamių žinių apie „Python“ kartu su įvairiomis jo programomis, galite užsiregistruoti tiesiogiai su parą visą parą ir visą gyvenimą.