Jak převést řetězec na celé číslo pomocí Pythonu



Tento článek vám poskytne podrobné a komplexní znalosti o tom, jak různými způsoby převést řetězec na celé číslo pomocí příkladů.

V tomto tématu bychom se dozvěděli, jak převést řetězec na celé číslo sa bez použití vestavěného datového typu. Víme, že řetězec je kolekce znaků uspořádaných postupně uzavřených v uvozovkách a celé číslo je číslo bez desetinných míst a není uzavřeno žádným typem uvozovek.

Řetězec na celé číslo python





Ale když přijde otázka, jak převést jeden datový typ na jiný, Python poskytuje snadný způsob převodu do druhého. V tomto případě vidíme, jak můžeme převést řetězec na celé číslo v následujícím pořadí:

Používání vestavěných datových typů



Předpokládejme, že když z nějakého důvodu vezmu vstup od uživatele, Python ho vezme a vrátí jej jako samotný řetězec. Jinými slovy, i když někdo zadá číslo jako vstup, Python jej vrátí jako řetězec.

name = input ('What is your name:') print (name) print (type (name)) age = input ('What is your age:') print (age) print (type (age))

Výstup:

Jak se jmenuješ: Tyra



Tyra

Jaký je váš věk: 20

dvacet

Jak vidíte, typ jména a věk, který se jako vstup použije, je „Řetězec“.

Nyní předpokládejme, že pokud chceme k věku přidat 5, uděláme následující:

name = input ('What is your name:') print (name) print (type (name)) age = input ('What is your age:') print (age) print (type (age)) print (age + 5)

Výstup:

Jak se jmenuješ: Tyra

Tyra

Jaký je váš věk: 20

dvacet

Traceback (poslední hovor poslední):

Soubor 'C: /Users/prac.py', řádek 9, v

tisk (věk + 5)

TypeError: musí být str, ne int

K věku nemůžeme přidat 5, protože věk je typu String a nemůžeme dělat přímou matematiku s řetězci. Musíme tedy změnit věk na celé číslo, protože jsme jako vstup vzali věk a Python jej vrací jako řetězec.

Proto.

name = input ('What is your name:') print (name) print (type (name)) age = input ('What is your age:') print (age) print (type (age)) age = int ( věk) tisk (věk + 5)

Výstup:

Jak se jmenuješ: Tyra

Tyra

Jaký je váš věk: 20

dvacet

25

Konvenčním způsobem

Předpokládejme, že nechceme použít integrovanou funkci int () k převodu řetězce na celé číslo.Musíme tedy použít konvenčním způsobem převést.

co tostring znamená v Javě

Zde je jednoduchý způsob, jak přejít na převod bez použití 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' tisk (str_to_int (s))

Výstup:

123

-123

  • Nejprve zkontrolujeme, zda číslo poskytnuté uživatelem obsahuje znaménko minus, či nikoli, tj. Zda je to záporné číslo nebo ne.Pokud obsahuje na první pozici znaménko minus, začneme náš převod z druhé pozice, která obsahuje čísla.

  • Ve formuláři lze napsat libovolné číslo, řekněme 123.10 ** 2 * 1 + 10 ** 1 * 2 + 10 ** 0 * 3

  • Podobně rozdělíme každé ze vstupních čísel pomocí slovo (argument) .

  • ord („0“) vrátí 48, ord („1“) vrátí 49 atd.

  • Zde používáme logiku, která ord ('1') - ord ('0) = 1, ord (' 2 ') - ord (' 0 ') = 2 atd., Což nám dává významné číslo, které má být načteno z daného číslo vstupu.

  • Nakonec výstup, který získáme z funkce, je legitimní celé číslo, které jsme převedli z daného vstupního řetězce.

Jak tedy vidíte, můžeme libovolný řetězec převést na celé číslo pomocí funkce int () nebo konvenčním způsobem.

Doufám, že jste se koncepty dobře naučili, a proto to vyzkoušíte, aby byly přesnější, a tímto se dostáváme ke konci tohoto článku o převodu řetězce na int pomocí Pythonu.

Máte na nás dotaz? Uveďte to prosím v sekci komentářů v tomto výukovém programu String to Integer a my se vám ozveme co nejdříve.

Chcete-li získat podrobné znalosti o Pythonu a jeho různých aplikacích, můžete se zaregistrovat naživo s nepřetržitou podporou a doživotním přístupem.