Android

Hvordan konvertere strenger til heltall i python

3: Heltall og flyttall

3: Heltall og flyttall

Innholdsfortegnelse:

Anonim

Alle datatyper i Python, inkludert heltall og strenger, er objekter. Ofte når du skriver Python-kode, må du konvertere en datatype til en annen. For å utføre en matematikkoperasjon på et tall som er representert som en streng, må den for eksempel konverteres til et heltall.

I denne opplæringen viser vi deg hvordan du konverterer en Python-streng til et helt tall.

Python int() -funksjon

Den innebygde int() -funksjonen returnerer et desimalt heltallobjekt fra et gitt nummer eller streng. Den tar følgende form:

int(x, base=10)

Funksjonen godtar to argumenter:

  • x - Streng eller nummer som skal konverteres til et helt tall. base - Det representerer tallsystemet for det første argumentet. Verdien kan være 0 og 2–36. Hvis ingen base er gitt, er standard 10 (desimaltall).

Vanligvis uttrykkes heltall i heksadesimal (base 16), desimal (base 10), oktal (base 8) eller binær (base 2) notasjon.

Hvis det gitte argumentet ikke kan representeres som et helt tall, vil funksjonen kaste et ValueError unntak.

Konvertere en Python-streng til heltall

I Python er en 'streng' en liste over tegn som er deklarert ved å bruke enkle ( ' ), doble ( " ) eller tredobbelt sitater ( """ ).

Hvis en variabel som bare inneholder tall blir erklært ved å bruke anførselstegn, settes datatypen til streng. Tenk på følgende eksempel:

days = "23" type(days)

Funksjonen type() viser oss at days er et strengobjekt.

La oss prøve å gjøre en matteoperasjon på variabelen:

print(days+5)

Python vil kaste en TypeError unntaksfeil fordi vi ikke kan utføre en tilleggsberegning med streng og heltall:

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

For å konvertere en strengrepresentasjon av et desimaltall til int , passerer strengen til int() -funksjonen, som returnerer et desimaltall:

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

print(days_int+5)

28

Hvis nummeret inkluderer komma, merking av tusenvis, millioner osv., Må du fjerne kommaene før du gir nummeret til funksjonen int() :

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

1000000

Når du konverterer strenger som representerer heltall i forskjellige tallsystemer, må du sørge for å bruke riktig base .

I det heksadesimale systemet er for eksempel tallet 54732 representert som D5CF . For å konvertere det til et desimaltall, må du bruke base 16:

int("D5CF", 16)

54735

Hvis du passerer D5CF strengen til int() -funksjonen uten å angi en base, vil den kaste et ValueError unntak:

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'

Konklusjon

I Python kan du konvertere en streng til et helt tall ved å bruke funksjonen int() .

python