V tejto téme by sme sa dozvedeli, ako previesť reťazec na celé číslo s použitím a bez použitia zabudovaného dátového typu. Vieme, že reťazec je súbor znakov usporiadaných postupne uzavretých v úvodzovkách a celé číslo je číslo bez desatinných miest a nie je uzavreté žiadnym typom úvodzoviek.
Ale keď príde otázka, ako previesť jeden dátový typ na druhý, Python poskytuje jednoduchý spôsob, ako prevádzať jeden do druhého. V tomto prípade vidíme, ako môžeme previesť reťazec na celé číslo v nasledujúcom poradí:
Používanie vstavaných dátových typov
Predpokladajme, že keď z nejakého dôvodu vezmem vstup od používateľa, Python ho vezme a vráti ho ako samotný reťazec. Inými slovami, aj keď niekto napíše číslo ako vstup, Python ho vráti ako reťazec.
name = input ('Ako sa voláš:') print (name) print (type (name)) age = input ('Aký je tvoj vek:') print (age) print (type (age))
Výkon:
Ako sa voláš: Tyra
Tyra
Aký je váš vek: 20
dvadsať
Ako vidíte, ako meno a vek sa ako vstup použije reťazec.
Teraz predpokladajme, že ak chceme k veku pridať 5, urobíme nasledovné:
name = input ('Ako sa voláš:') print (name) print (type (name)) age = input ('Aký je tvoj vek:') print (age) print (type (age)) print (age + 5)
Výkon:
Ako sa voláš: Tyra
Tyra
Aký je váš vek: 20
dvadsať
Traceback (posledný posledný hovor):
Súbor „C: /Users/prac.py“, riadok 9, v
tlač (vek + 5)
TypeError: musí byť str, nie int
K veku nemôžeme pridať 5, pretože vek je typu String a nemôžeme robiť priamu matematiku pomocou reťazcov. Takže musíme zmeniť vek na celé číslo, pretože sme zobrali vek ako vstup a Python ho vráti ako String.
Preto.
name = input ('Ako sa voláš:') print (name) print (type (name)) age = input ('Aký je tvoj vek:') print (age) print (type (age)) age = int ( vek) tlač (vek + 5)
Výkon:
Ako sa voláš: Tyra
Tyra
Aký je váš vek: 20
dvadsať
25
Konvenčným spôsobom
Predpokladajme, že nechceme pomocou vstavanej funkcie int () prevádzať reťazec na celé číslo.Musíme teda použiť konvenčným spôsobom previesť.
ako používať java hojdačka
Tu je jednoduchý spôsob, ako prejsť na konverziu bez použitia funkcie 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 = False for i in range (start_idx, len (input_str)): place = 10 ** (len (input_str) - (i + 1)) digit = ord (input_str [i]) - ord ('0') output_int + = place * digit if is_negative: 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“ tlač (str_to_int (s))
Výkon:
123
-123
Najskôr skontrolujeme, či číslo poskytnuté používateľom obsahuje alebo neobsahuje znamienko mínus, t. J. Je to záporné číslo alebo nie.Ak obsahuje na prvej pozícii v znamienku mínus, začneme náš prevod z druhej pozície, ktorá obsahuje čísla.
Akékoľvek číslo, povedzme 123, je možné napísať vo forme -10 ** 2 * 1 + 10 ** 1 * 2 + 10 ** 0 * 3
Podobne rozdelíme každé zo vstupných čísel pomocou slová (argument) .
ord („0“) vráti 48, ord („1“) vráti 49 atď.
Tu použijeme logiku, ktorá ord ('1') - ord ('0) = 1, ord (' 2 ') - ord (' 0 ') = 2 atď., Ktorá nám dáva významné číslo, ktoré sa má načítať z daného vstupné číslo.
Výstup, ktorý z funkcie dostaneme, je nakoniec celé číslo, ktoré sme previedli z daného vstupného reťazca.
Ako teda vidíte, môžeme ľubovoľný reťazec previesť na celé číslo pomocou funkcie int () alebo konvenčným spôsobom.
Dúfam, že ste sa tieto pojmy naučili dobre, a preto ste vyskúšali, že sú presnejšie, a tým sa dostávame ku koncu tohto článku o prevode reťazca na int pomocou jazyka Python.
Máte na nás otázku? Uveďte to, prosím, v sekcii komentárov v tomto návode String to Integer a my sa vám ozveme čo najskôr.
Ak chcete získať podrobné informácie o Pythone a jeho rôznych aplikáciách, môžete sa zaregistrovať naživo s nepretržitou podporou a doživotným prístupom.