Hoe Python-strings omzetten naar floats
Door een Python-string om te zetten naar een float kunt u fouten voorkomen die ontstaan door het gebruik van niet-numerieke strings in rekenkundige bewerkingen.
Welke Python-strings kunnen worden geconverteerd naar floats?
Als u een Python-string wilt converteren naar een float, moet de string een geldige numerieke weergave hebben als een drijvende-kommagetal. Dit betekent dat deze getallen in decimale notatie kan bevatten, inclusief decimale punten en wetenschappelijke notatie (zoals "3.14" of "2.7e-3"). De string mag echter geen extra tekens, spaties of tekens bevatten die geen numerieke waarden vertegenwoordigen. Als dat wel het geval is, zal de conversie niet werken.
String-float-conversie is een basisfunctie en is opgenomen in elke versie van Python. Er kunnen echter subtiele verschillen zijn in de manier waarop sommige methoden en functies in verschillende versies werken. Let goed op fouten die tijdens conversies kunnen optreden. Als u bijvoorbeeld een string invoert die geen geldig getal vertegenwoordigt, zal dit een foutmelding opleveren. Speciale waarden zoals NaN (Not a Number) en Infinity kunnen niet worden geconverteerd naar floats. Dat betekent dat ontwikkelaars die met conversies werken, fouten op de juiste manier moeten kunnen afhandelen. 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 converteren met float()
De functie float() is een ingebouwde Python-methode die strings omzet naar floats. Deze wordt vaak gebruikt om gebruikersinvoer van strings naar numerieke formaten om te zetten, zodat de invoer kan worden gebruikt in berekeningen of numerieke bewerkingen. In programma’s die met verschillende soorten gegevens werken, wordt float() gebruikt om ervoor te zorgen dat gegevens consistent blijven door waarden om te zetten naar een numeriek formaat.
Om Python-strings naar floats te converteren, gebruik je float() en voer je een geldige string in als argument:
str1 = "3.1416"
float_value = float(str1)
print(float_value) # Output: 3.1416pythonJe kunt ook andere numerieke typen zoals int en complex omzetten in een drijvende-kommagetal door ze door float() te halen.
Try/except-blokken kunnen worden gebruikt om ongeldige gebruikersinvoer op te vangen bij het converteren 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 inputpythonDe bovenstaande code is een lus die gebruikers vraagt om een getal in te voeren. Vervolgens wordt geprobeerd om die waarde om te zetten in een drijvende-kommagetal. In het try-blok is float(user_input) bedoeld om de door de gebruiker ingevoerde tekenreeks om te zetten in een drijvende-kommagetal. Als de conversie is gelukt, wordt het getal opgeslagen onder float_value en geretourneerd. De instructie break beëindigt vervolgens de lus en gaat verder met het programma.
Als er een ValueError optreedt bij het converteren van de string naar een float, wordt de code in het except-blok uitgevoerd. Dit kan gebeuren als de gebruiker een waarde invoert die niet naar een float kan worden geconverteerd, zoals een letter. In dat geval verschijnt 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 converteren, kun je de functie numpy.float64() gebruiken. Deze geeft je een 64-bits drijvende-kommagetal.
import numpy as np
string_value = "3.1416"
float_value = np.float64(string_value)
print(float_value) # Output: 3.1416pythonEerst moet u NumPy in uw script importeren als dit nog niet is geïnstalleerd. Vervolgens kunt u NumPy gebruiken om de functie numpy.float64() toe te passen op de tekenreeks string_value om deze om te zetten in een 64-bits drijvende-kommagetal.
Hoe str() te gebruiken
Als u daarentegen 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"pythonIn het bovenstaande voorbeeld wordt de float-waarde 3.1416 omgezet in de string "3.1416" met behulp van str().
str() is ook handig voor het samenvoegen van meerdere float-waarden met f-strings (een Python-stringformaat).
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.6180pythonHoud er rekening mee dat wanneer u floats met str() omzet naar strings, de resulterende string wordt weergegeven als tekst en niet langer beschikbaar is voor numerieke berekeningen of wiskundige bewerkingen. Om deze in berekeningen te gebruiken, moet u deze weer omzetten naar een numerieke vorm (zoals een float).
Lees meer over andere soorten conversies in onze digitale gids. We leggen uit hoe je Python-strings naar lijsten en Python-strings naar datetime-objecten kunt converteren.