Android

Hur man konverterar strängar till heltal i python

Python - Grunder - Del 1 - Variabler och listor

Python - Grunder - Del 1 - Variabler och listor

Innehållsförteckning:

Anonim

Alla datatyper i Python, inklusive heltal och strängar, är objekt. Ofta när du skriver Python-kod måste du konvertera en datatyp till en annan. För att utföra en matematikoperation på ett nummer som representeras som en sträng måste den till exempel konverteras till ett heltal.

I den här tutorialen visar vi dig hur du konverterar en Python-sträng till ett heltal.

Python int() -funktion

Den inbyggda int() -funktionen returnerar ett decimalt heltalobjekt från ett givet nummer eller sträng. Den har följande form:

int(x, base=10)

Funktionen "accepterar två argument:

  • x - Sträng eller nummer som ska konverteras till ett heltal. base - Det representerar siffran för det första argumentet. Dess värde kan vara 0 och 2–36. Om ingen bas anges är standarden 10 (decimaltal).

Vanligtvis uttrycks heltal i hexadecimal (bas 16), decimal (bas 10), oktal (bas 8) eller binär (bas 2) notation.

Om det givna argumentet inte kan representeras som ett heltal kommer funktionen att kasta ett ValueError undantag.

Konvertera en Python-sträng till heltal

I Python är en 'sträng' en lista med tecken som deklareras med enstaka ( ' ), dubbla ( " ) eller trefaldiga citat ( """ ).

Om en variabel som endast innehåller siffror deklareras med citat är datatypen inställd på String. Tänk på följande exempel:

days = "23" type(days)

Funktionen type() visar oss att days är ett strängobjekt.

Låt oss försöka göra en matematisk operation på variabeln:

print(days+5)

Python kommer att kasta ett TypeError undantagsfel eftersom vi inte kan utföra en tilläggsberäkning med sträng och heltal:

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

För att konvertera en strängrepresentation av ett decimaltal till int passerar du strängen till funktionen int() , som returnerar ett decimaltal:

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

print(days_int+5)

28

Om numret innehåller kommatecken, markering av tusentals, miljoner osv. Måste du ta bort komman innan du skickar numret till funktionen int() :

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

1000000

När du konverterar strängar som representerar heltal i olika nummersystem, se till att du använder rätt base .

I det hexadecimala systemet representeras till D5CF numret 54732 som D5CF . För att konvertera det till ett decimaltal måste du använda bas 16:

int("D5CF", 16)

54735

Om du D5CF strängen till funktionen int() utan att ställa in en bas, kommer den att kasta ett ValueError undantag:

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'

Slutsats

I Python kan du konvertera en sträng till ett heltal med funktionen int() .

pytonorm