Sådan konverteres Python-strenge til flydende tal
Konvertering af en Python-streng til et float kan hjælpe dig med at undgå fejl, der skyldes inkludering af ikke-numeriske strenge i aritmetiske operationer.
Hvilke Python-strenge kan konverteres til float-værdier?
Hvis du vil konvertere en Python-streng til et float, skal strengen have en gyldig numerisk repræsentation som en flydende værdi. Det betyder, at den kan indeholde tal i decimalformat, hvilket inkluderer decimaler og videnskabelig notation (f.eks. "3.14" eller "2.7e-3"). Den må dog ikke indeholde yderligere tegn, mellemrum eller tegn, der ikke repræsenterer numeriske værdier. Hvis den gør det, vil konverteringen ikke fungere.
Konvertering af streng til float er en grundlæggende funktion, der er inkluderet i alle versioner af Python. Der kan dog være små forskelle i, hvordan nogle metoder og funktioner fungerer i forskellige versioner. Vær opmærksom på fejl, der kan opstå under konverteringer. Hvis du f.eks. indtaster en streng, der ikke repræsenterer et gyldigt tal, vil det medføre en fejl. Og specielle værdier som NaN (Not a Number) og Infinity konverteres til floats. Det betyder, at udviklere, der arbejder med konverteringer, 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 konverteres Python-strenge med float()
Funktionen float() er en indbygget Python-metode, der konverterer strenge til flydende tal. Den bruges ofte til at ændre brugerinput fra strenge til numeriske formater, så inputtet kan bruges i beregninger eller numeriske operationer. I programmer, der arbejder med forskellige typer data, bruges float() til at sikre, at data forbliver konsistente ved at konvertere værdier til et numerisk format.
For at konvertere 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.1416pythonDu kan også konvertere 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 brugerindgange, når strenge konverteres 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 inputpythonOvenstående kode er en løkke, der beder brugeren om at indtaste et tal. Derefter forsøger den at konvertere denne værdi til et flydende tal. I try-blokken skal float(user_input) konvertere den streng, som brugeren har indtastet, til et flydende tal. Hvis konverteringen lykkes, gemmes tallet under float_value og returneres. break afslutter derefter løkken og fortsætter med programmet.
Hvis der opstår en ValueError ved konvertering af strengen til et float, udføres koden i except-blokken. Dette kan ske, hvis brugeren indtaster en værdi, der ikke kan konverteres til et float, f.eks. et bogstav. I dette tilfælde vises en meddelelse om, at indtastningen er ugyldig, og sløjfen anmoder om en gyldig indtastning igen.
Sådan konverteres Python-strenge til flydende tal med NumPy
Hvis du vil konvertere en Python-streng til et float med NumPy, kan du bruge funktionen 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.1416pythonFørst skal du importere NumPy i dit script, hvis det ikke allerede er installeret. Derefter kan du bruge NumPy til at anvende funktionen numpy.float64() på strengen string_value for at konvertere den til et 64-bit flydende tal.
Sådan bruges str()
Hvis du derimod vil konvertere en float til en streng, kan du bruge funktionen str(). Denne funktion konverterer andre værdier til strenge.
float_number = 3.1416
string_number = str(float_number)
print(string_number) # Output: "3.1416"pythonI ovenstående eksempel konverteres float-værdien 3.1416 til strengen "3.1416" ved hjælp af str().
str() er også nyttigt til sammenkædning af flere float-værdier med f-strenge (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.6180pythonBemærk, at når du konverterer flydende tal til strenge med str(), vil den resulterende streng blive repræsenteret som tekst og ikke længere være tilgængelig for numeriske beregninger eller matematiske operationer. For at bruge den i beregninger skal du konvertere den tilbage til en numerisk form (som et flydende tal).
Læs om andre typer konverteringer i vores digitale guide. Vi forklarer, hvordan man konverterer Python-strenge til lister og Python-strenge til datetime-objekter.