Å konvertere en Python-streng til et flytende tall kan hjelpe deg med å unngå feil som oppstår når ikke-numeriske strenger inkluderes i aritmetiske operasjoner.

Hvilke typer Python-strenger kan konverteres til flytende tall?

Hvis du vil konvertere en Python-streng til et flytende tall, må strengen ha en gyldig numerisk representasjon som et flytende tall. Dette betyr at den kan inneholde tall i desimalformat, som inkluderer desimaler og vitenskapelig notasjon (for eksempel "3.14" eller "2.7e-3"). Den kan imidlertid ikke inneholde tilleggstegn, mellomrom eller tegn som ikke representerer numeriske verdier. Hvis den gjør det, vil konverteringen ikke fungere.

Streng-flytende konvertering er en grunnleggende funksjon og er inkludert i alle versjoner av Python. Det kan imidlertid være små forskjeller i hvordan noen metoder og funksjoner fungerer i forskjellige versjoner. Vær oppmerksom på feil som kan oppstå under konvertering. Hvis du for eksempel skriver inn en streng som ikke representerer et gyldig tall, vil det oppstå en feil. Spesielle verdier som NaN (Not a Number) og Infinity ikke konverteres til flytende tall. Det betyr at utviklere som arbeider med konvertering, må kunne håndtere feil på en hensiktsmessig måte. En måte å gjøre dette på er å bruke try/except-blokker for å fange opp og reagere på feil.

Hvordan konvertere Python-strenger med float()

Funksjonen float() er en innebygd Python-metode som konverterer strenger til flytende tall. Den brukes ofte til å endre brukerinndata fra strenger til numeriske formater, slik at inndataene kan brukes i beregninger eller numeriske operasjoner. I programmer som arbeider med ulike typer data, brukes float() til å sikre at dataene forblir konsistente ved å konvertere verdiene til et numerisk format.

For å konvertere Python-strenger til flytende tall, bruk float() og skriv inn en gyldig streng som argument:

str1 = "3.1416"
float_value = float(str1)
print(float_value) # Output: 3.1416
python

Du kan også konvertere andre numeriske typer som int og complex til et flytende tall ved å kjøre dem gjennom float().

Try/except-blokker kan brukes til å fange opp ugyldige brukerinndata når strenger konverteres til flytende tall:

while True:
    user_input = input("Enter a number: ")
    try:
        float_value = float(user_input)
        print("Entered number as float:", float_value)
        break # Exit the loop if the conversion was successful
    except ValueError:
        print("Invalid input! Please enter a numeric value.")
        # The loop continues to prompt for valid input
python

Koden ovenfor er en løkke som ber brukerne om å skrive inn et tall. Deretter forsøker den å konvertere verdien til et flytende tall. I try-blokken skal float(user_input) konvertere strengen som brukeren har skrevet inn til et flytende tall. Hvis konverteringen var vellykket, lagres tallet under float_value og returneres. Setningen break avslutter deretter løkken og fortsetter med programmet.

Hvis det oppstår en ValueError når strengen konverteres til et flytende tall, utføres koden i except-blokken. Dette kan skje hvis brukeren skriver inn en verdi som ikke kan konverteres til et flytende tall, for eksempel en bokstav. I dette tilfellet vises en melding om at inndataene er ugyldige, og sløyfen ber om gyldige inndata på nytt.

Hvordan konvertere Python-strenger til flytende tall med NumPy

Hvis du vil konvertere en Python-streng til et flytende tall med NumPy, kan du bruke funksjonen numpy.float64(). Den gir deg et 64-biters flytende tall.

import numpy as np
string_value = "3.1416"
float_value = np.float64(string_value)
print(float_value) # Output: 3.1416
python

Først må du importere NumPy i skriptet ditt hvis det ikke allerede er installert. Deretter kan du bruke NumPy til å bruke funksjonen numpy.float64() på strengen string_value for å konvertere den til et 64-biters flytende tall.

Hvordan bruke str()

Hvis du derimot ønsker å konvertere et flytende tall til en streng, kan du bruke funksjonen str(). Denne funksjonen konverterer andre verdier til strenger.

float_number = 3.1416
string_number = str(float_number)
print(string_number) # Output: "3.1416"
python

I eksemplet ovenfor konverteres flytende verdien 3.1416 til strengen "3.1416" ved hjelp av str().

str() er også nyttig for å sammenføye flere float-verdier med f-strenger (et Python-strengformat).

float_value1 = 3.1416
float_value2 = 2.7182
float_value3 = 1.6180
string_concatenation = f"Concatenation of: {str(float_value1)}, {str(float_value2)}, and {str(float_value3)}"
print(string_concatenation) # Concatenation of: 3.1416, 2.7182, and 1.6180
python

Merk at når du konverterer flytende tall til strenger med str(), vil den resulterende strengen bli representert som tekst og ikke lenger være tilgjengelig for numeriske beregninger eller matematiske operasjoner. For å bruke den i beregninger, må du konvertere den tilbake til numerisk form (som et flytende tall).

Tip

Les om andre typer konverteringer i vår digitale guide. Vi forklarer hvordan du konverterer Python-strenger til lister og Python-strenger til datetime-objekter.

Go to Main Menu