Android

Jak převést řetězce na celá čísla v pythonu

Creative Coding with Python by Ivana Vezjak

Creative Coding with Python by Ivana Vezjak

Obsah:

Anonim

Všechny typy dat v Pythonu, včetně celých čísel a řetězců, jsou objekty. Při psaní kódu Python je často nutné převést jeden typ dat na jiný. Například pro provedení matematické operace na čísle reprezentovaném jako řetězec je třeba ji převést na celé číslo.

V tomto tutoriálu vám ukážeme, jak převést řetězec Python na celé číslo.

Funkce Python int()

Vestavěná funkce int() vrací desetinné celé číslo z daného čísla nebo řetězce. Má následující podobu:

int(x, base=10)

Funkce `přijímá dva argumenty:

  • x - Řetězec nebo číslo, které má být převedeno na celé číslo. base - Představuje číselný systém prvního argumentu. Jeho hodnota může být 0 a 2–36. Pokud není zadána žádná báze, je výchozí hodnota 10 (desítkové celé číslo).

Celá čísla jsou obvykle vyjádřena v hexadecimálním (základ 16), desítkovém (základ 10), osmičkovém (základ 8) nebo binárním (základ 2) zápisu.

Pokud daný argument nelze reprezentovat jako celé číslo, funkce vyvolá výjimku ValueError .

Převod řetězce Python na celé číslo

V Pythonu je 'řetězec' seznam znaků, které jsou deklarovány pomocí jednoduchých ( ' ), dvojitých ( " ) nebo trojitých uvozovek ( """ ).

Pokud je proměnná obsahující pouze čísla deklarována pomocí uvozovek, je její datový typ nastaven na String. Zvažte následující příklad:

days = "23" type(days)

Funkce type() nám ukazuje, že days jsou objektem String.

Zkusme provést matematickou operaci s proměnnou:

print(days+5)

Python TypeError chybu výjimky TypeError protože nemůžeme provést sčítání s řetězcem a celým číslem:

Traceback (most recent call last): File " ", line 1, in TypeError: cannot concatenate 'str' and 'int' objects Traceback (most recent call last): File " ", line 1, in TypeError: cannot concatenate 'str' and 'int' objects Traceback (most recent call last): File " ", line 1, in TypeError: cannot concatenate 'str' and 'int' objects

Chcete-li převést řetězcovou reprezentaci desetinného čísla na int , předejte řetězec funkci int() , která vrací desetinné číslo:

days = "23" days_int = int(days) type(days_int)

print(days_int+5)

28

Pokud číslo obsahuje čárky, označující tisíce, miliony atd., Musíte před předáním čísla funkci int() odstranit čárky:

total = "1, 000, 000" int(total.replace(", ", ""))

1000000

Při převodu řetězců, které představují celá čísla v různých systémech čísel, se ujistěte, že používáte správnou base .

Například v hexadecimálním systému je číslo 54732 reprezentováno jako D5CF . Chcete-li jej převést na desetinné číslo, musíte použít základ 16:

int("D5CF", 16)

54735

Pokud předáte řetězec D5CF funkci int() bez nastavení základny, vyvolá výjimku ValueError :

int("D5CF")

Traceback (most recent call last): File " ", line 1, in ValueError: invalid literal for int() with base 10: 'D5CF' Traceback (most recent call last): File " ", line 1, in ValueError: invalid literal for int() with base 10: 'D5CF' Traceback (most recent call last): File " ", line 1, in ValueError: invalid literal for int() with base 10: 'D5CF'

Závěr

V Pythonu můžete pomocí funkce int() převést řetězec na celé číslo.

krajta