Die convertToNumber-Funktion wandelt einen String in eine Nummer um. Zudem überprüft sie den Input, sodass keine Fehler auftreten, wenn keine Nummer eingegeben wird. Sie ist hilfreich, wenn beispielsweise User-Input von der input()-Funktion in eine Nummer konvertiert werden soll.
import sys
# Tries to convert a given string into a number.
# Automatically detects if the string contains a comma or a dot
# and converts to floats instead of integers accordingly.
def convertToNumber(input: str):
if "," in input:
input = input.replace(",", ".")
if "." in input:
try:
formatted = float(input)
return formatted
except:
print(f"Invalid number: {input}")
sys.exit(0)
else:
try:
formatted = int(input)
return formatted
except:
print(f"Invalid number: {input}")
sys.exit(0)Wenn ein input gegeben wird, der nicht in eine Nummer konvertiert werden kann, schließt diese Funktion das Programm. Alternativ können die beiden sys.exit(0)-Aufrufe durch (z.B.) einen Aufruf der main()-Funktion (insofern vorhanden) ersetzt werden.
Nutzung:
number = convertToNumber(input("Input a number: "))