Door een Python-string om te zetten naar een float kunt u fouten voorkomen die ontstaan door het gebruik van niet-numerieke strings in re­ken­kun­di­ge be­wer­kin­gen.

Welke Python-strings kunnen worden ge­con­ver­teerd naar floats?

Als u een Python-string wilt con­ver­te­ren naar een float, moet de string een geldige numerieke weergave hebben als een drijvende-kom­ma­ge­tal. Dit betekent dat deze getallen in decimale notatie kan bevatten, inclusief decimale punten en we­ten­schap­pe­lij­ke notatie (zoals "3.14" of "2.7e-3"). De string mag echter geen extra tekens, spaties of tekens bevatten die geen numerieke waarden ver­te­gen­woor­di­gen. Als dat wel het geval is, zal de conversie niet werken.

String-float-conversie is een ba­sis­func­tie en is opgenomen in elke versie van Python. Er kunnen echter subtiele ver­schil­len zijn in de manier waarop sommige methoden en functies in ver­schil­len­de versies werken. Let goed op fouten die tijdens con­ver­sies kunnen optreden. Als u bij­voor­beeld een string invoert die geen geldig getal ver­te­gen­woor­digt, zal dit een fout­mel­ding opleveren. Speciale waarden zoals NaN (Not a Number) en Infinity kunnen niet worden ge­con­ver­teerd naar floats. Dat betekent dat ont­wik­ke­laars die met con­ver­sies werken, fouten op de juiste manier moeten kunnen af­han­de­len. Een manier om dit te doen is door try/except-blokken te gebruiken om fouten op te vangen en erop te reageren.

Hoe Python-strings con­ver­te­ren met float()

De functie float() is een in­ge­bouw­de Python-methode die strings omzet naar floats. Deze wordt vaak gebruikt om ge­brui­kers­in­voer van strings naar numerieke formaten om te zetten, zodat de invoer kan worden gebruikt in be­re­ke­nin­gen of numerieke be­wer­kin­gen. In programma’s die met ver­schil­len­de soorten gegevens werken, wordt float() gebruikt om ervoor te zorgen dat gegevens con­sis­tent blijven door waarden om te zetten naar een numeriek formaat.

Om Python-strings naar floats te con­ver­te­ren, gebruik je float() en voer je een geldige string in als argument:

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

Je kunt ook andere numerieke typen zoals int en complex omzetten in een drijvende-kom­ma­ge­tal door ze door float() te halen.

Try/except-blokken kunnen worden gebruikt om ongeldige ge­brui­kers­in­voer op te vangen bij het con­ver­te­ren van strings naar floats:

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

De bo­ven­staan­de code is een lus die ge­brui­kers vraagt om een getal in te voeren. Ver­vol­gens wordt ge­pro­beerd om die waarde om te zetten in een drijvende-kom­ma­ge­tal. In het try-blok is float(user_input) bedoeld om de door de gebruiker in­ge­voer­de te­ken­reeks om te zetten in een drijvende-kom­ma­ge­tal. Als de conversie is gelukt, wordt het getal op­ge­sla­gen onder float_value en ge­re­tour­neerd. De in­struc­tie break beëindigt ver­vol­gens de lus en gaat verder met het programma.

Als er een Va­lu­eEr­ror optreedt bij het con­ver­te­ren van de string naar een float, wordt de code in het except-blok uit­ge­voerd. Dit kan gebeuren als de gebruiker een waarde invoert die niet naar een float kan worden ge­con­ver­teerd, zoals een letter. In dat geval ver­schijnt er een bericht dat de invoer ongeldig is en vraagt de lus opnieuw om geldige invoer.

Hoe Python-strings om te zetten naar floats met NumPy

Als je een Python-string met NumPy naar een float wilt con­ver­te­ren, kun je de functie numpy.float64() gebruiken. Deze geeft je een 64-bits drijvende-kom­ma­ge­tal.

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

Eerst moet u NumPy in uw script im­por­te­ren als dit nog niet is ge­ïn­stal­leerd. Ver­vol­gens kunt u NumPy gebruiken om de functie numpy.float64() toe te passen op de te­ken­reeks string_value om deze om te zetten in een 64-bits drijvende-kom­ma­ge­tal.

Hoe str() te gebruiken

Als u daar­en­te­gen een float wilt omzetten in een string, kunt u de functie str() gebruiken. Deze functie zet andere waarden om in strings.

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

In het bo­ven­staan­de voorbeeld wordt de float-waarde 3.1416 omgezet in de string "3.1416" met behulp van str().

str() is ook handig voor het sa­men­voe­gen van meerdere float-waarden met f-strings (een Python-string­for­maat).

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

Houd er rekening mee dat wanneer u floats met str() omzet naar strings, de re­sul­te­ren­de string wordt weer­ge­ge­ven als tekst en niet langer be­schik­baar is voor numerieke be­re­ke­nin­gen of wis­kun­di­ge be­wer­kin­gen. Om deze in be­re­ke­nin­gen te gebruiken, moet u deze weer omzetten naar een numerieke vorm (zoals een float).

Tip

Lees meer over andere soorten con­ver­sies in onze digitale gids. We leggen uit hoe je Python-strings naar lijsten en Python-strings naar datetime-objecten kunt con­ver­te­ren.

Ga naar hoofdmenu