Kon­ver­te­ring af en Python-streng til et float kan hjælpe dig med at undgå fejl, der skyldes in­klu­de­ring af ikke-numeriske strenge i arit­me­ti­ske ope­ra­tio­ner.

Hvilke Python-strenge kan kon­ver­te­res til float-værdier?

Hvis du vil kon­ver­te­re en Python-streng til et float, skal strengen have en gyldig numerisk re­præ­sen­ta­tion som en flydende værdi. Det betyder, at den kan indeholde tal i de­ci­mal­for­mat, hvilket in­klu­de­rer decimaler og vi­den­ska­be­lig notation (f.eks. "3.14" eller "2.7e-3"). Den må dog ikke indeholde yder­li­ge­re tegn, mellemrum eller tegn, der ikke re­præ­sen­te­rer numeriske værdier. Hvis den gør det, vil kon­ver­te­rin­gen ikke fungere.

Kon­ver­te­ring af streng til float er en grund­læg­gen­de funktion, der er in­klu­de­ret i alle versioner af Python. Der kan dog være små forskelle i, hvordan nogle metoder og funk­tio­ner fungerer i for­skel­li­ge versioner. Vær opmærksom på fejl, der kan opstå under kon­ver­te­rin­ger. Hvis du f.eks. indtaster en streng, der ikke re­præ­sen­te­rer et gyldigt tal, vil det medføre en fejl. Og specielle værdier som NaN (Not a Number) og Infinity kon­ver­te­res til floats. Det betyder, at udviklere, der arbejder med kon­ver­te­rin­ger, skal være i stand til at håndtere fejl på passende vis. En måde at gøre dette på er at bruge try/except-blokke til at opfange og reagere på fejl.

Sådan kon­ver­te­res Python-strenge med float()

Funk­tio­nen float() er en indbygget Python-metode, der kon­ver­te­rer strenge til flydende tal. Den bruges ofte til at ændre bru­ger­in­put fra strenge til numeriske formater, så inputtet kan bruges i be­reg­nin­ger eller numeriske ope­ra­tio­ner. I pro­gram­mer, der arbejder med for­skel­li­ge typer data, bruges float() til at sikre, at data forbliver kon­si­sten­te ved at kon­ver­te­re værdier til et numerisk format.

For at kon­ver­te­re Python-strenge til flydende tal skal du bruge float() og indtaste en gyldig streng som argument:

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

Du kan også kon­ver­te­re andre numeriske typer som int og complex til et flydende tal ved at køre dem gennem float().

Try/except-blokke kan bruges til at fange ugyldige bru­ger­ind­gan­ge, når strenge kon­ver­te­res til flydende tal:

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

Oven­stå­en­de kode er en løkke, der beder brugeren om at indtaste et tal. Derefter forsøger den at kon­ver­te­re denne værdi til et flydende tal. I try-blokken skal float(user_input) kon­ver­te­re den streng, som brugeren har indtastet, til et flydende tal. Hvis kon­ver­te­rin­gen lykkes, gemmes tallet under float_value og re­tur­ne­res. break afslutter derefter løkken og fort­sæt­ter med pro­gram­met.

Hvis der opstår en Va­lu­e­Er­ror ved kon­ver­te­ring af strengen til et float, udføres koden i except-blokken. Dette kan ske, hvis brugeren indtaster en værdi, der ikke kan kon­ver­te­res til et float, f.eks. et bogstav. I dette tilfælde vises en med­del­el­se om, at ind­tast­nin­gen er ugyldig, og sløjfen anmoder om en gyldig ind­tast­ning igen.

Sådan kon­ver­te­res Python-strenge til flydende tal med NumPy

Hvis du vil kon­ver­te­re en Python-streng til et float med NumPy, kan du bruge funk­tio­nen numpy.float64(). Den giver dig et 64-bit flydende tal.

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

Først skal du importere NumPy i dit script, hvis det ikke allerede er in­stal­le­ret. Derefter kan du bruge NumPy til at anvende funk­tio­nen numpy.float64() på strengen string_value for at kon­ver­te­re den til et 64-bit flydende tal.

Sådan bruges str()

Hvis du derimod vil kon­ver­te­re en float til en streng, kan du bruge funk­tio­nen str(). Denne funktion kon­ver­te­rer andre værdier til strenge.

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

I oven­stå­en­de eksempel kon­ver­te­res float-værdien 3.1416 til strengen "3.1416" ved hjælp af str().

str() er også nyttigt til sam­men­kæd­ning af flere float-værdier med f-strenge (et Python-streng­for­mat).

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

Bemærk, at når du kon­ver­te­rer flydende tal til strenge med str(), vil den re­sul­te­ren­de streng blive re­præ­sen­te­ret som tekst og ikke længere være til­gæn­ge­lig for numeriske be­reg­nin­ger eller ma­te­ma­ti­ske ope­ra­tio­ner. For at bruge den i be­reg­nin­ger skal du kon­ver­te­re den tilbage til en numerisk form (som et flydende tal).

Tip

Læs om andre typer kon­ver­te­rin­ger i vores digitale guide. Vi forklarer, hvordan man kon­ver­te­rer Python-strenge til lister og Python-strenge til datetime-objekter.

Gå til ho­ved­me­nu­en