Android

Sådan konverteres strenge til heltal i python

Python Web Apps with Flask by Ezra Zigmond

Python Web Apps with Flask by Ezra Zigmond

Indholdsfortegnelse:

Anonim

Alle datatyper i Python, inklusive heltal og strenge, er objekter. Når du skriver Python-kode, skal du ofte konvertere en datatype til en anden. For at udføre en matematikoperation på et tal, der er repræsenteret som en streng, skal den for eksempel konverteres til et heltal.

I denne tutorial viser vi dig, hvordan du konverterer en Python-streng til et heltal.

Python int() -funktion

Den indbyggede int() -funktion returnerer et decimalt heltalobjekt fra et givet antal eller streng. Det har følgende form:

int(x, base=10)

Funktionen "accepterer to argumenter:

  • x - Streng eller nummer, der skal konverteres til et heltal. base - Det repræsenterer talesystemet for det første argument. Dets værdi kan være 0 og 2–36. Hvis der ikke gives nogen base, er standardindstillingen 10 (decimal decimal).

Normalt udtrykkes heltal i hexadecimal (base 16), decimal (base 10), oktal (base 8) eller binær (base 2) notation.

Hvis det givne argument ikke kan repræsenteres som et heltal, kaster funktionen en ValueError undtagelse.

Konvertering af en Python-streng til heltal

I Python er en 'streng' en liste over tegn, der er deklareret ved hjælp af enkelt ( ' ), dobbelt ( " ) eller tredobbelt citater ( """ ).

Hvis en variabel, der kun indeholder tal, deklareres ved hjælp af citater, indstilles dens datatype til streng. Overvej følgende eksempel:

days = "23" type(days)

Funktionen type() viser os, at days er et strengobjekt.

Lad os prøve at udføre en matematisk operation på variablen:

print(days+5)

Python kaster en TypeError undtagelsesfejl, fordi vi ikke kan udføre en tilføjelsesberegning med streng og 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

Hvis du vil konvertere en strengrepræsentation af et decimaltal til int , skal du vende strengen til funktionen int() , der returnerer et decimaltal:

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

print(days_int+5)

28

Hvis nummeret inkluderer kommaer, markering af tusinder, millioner osv., Skal du fjerne kommaerne, før nummeret overføres til funktionen int() :

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

1000000

Når du konverterer strenge, der repræsenterer heltal i forskellige nummersystemer, skal du sørge for at bruge den rigtige base .

For eksempel er tallet 54732 i det hexadecimale system repræsenteret som D5CF . For at konvertere det til et decimaltal skal du bruge base 16:

int("D5CF", 16)

54735

Hvis du videregiver D5CF strengen til funktionen int() uden at indstille en base, kaster den en ValueError undtagelse:

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'

Konklusion

I Python kan du konvertere en streng til et heltal ved hjælp af funktionen int() .

python