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: "))