# Scrivere il corpo della funzione "svolgi"
# che prende in ingresso una stringa che
# rappresenta una operazione matematica tra due operandi.
# Le operazioni ammesse sono somma, sottrazione,
# divisione e prodotto.
# La funzione restituisce il risultato dell'operazione.
# Esempio:
# se la funzione prende "3+3" deve restituire 6

# Gestire il caso in cui la stringa non è interpretabile
# come operazione: la funzione restituisce None in tutti
# i casi in cui non si può eseguire l'operazione (vedere
# i test 5 6 7 e 8)


def svolgi(operazione):
    # Cerchiamo se nella stringa c'è un operatore
    operatoriValidi = ["+", "-", "/", "*"]
    operatore = ""
    for x in operazione:
        if x in operatoriValidi:
            operatore = x
    if operatore == "":
        return None
    operandi = operazione.split(operatore)
    if len(operandi) != 2:
        return None
    try:
        operando1 = float(operandi[0])
        operando2 = float(operandi[1])
    except:
        return None

    if operatore == "+":
        return operando1 + operando2
    if operatore == "-":
        return operando1 - operando2
    if operatore == "*":
        return operando1 * operando2
    if operatore == "/":
        return operando1 / operando2


#test
if svolgi("3+3") == 6:
    print("Test 1: ok")
else:
    print("Test 1: non superato")

if svolgi("3 / 3") == 1:
    print("Test 2: ok")
else:
    print("Test 2: non superato")

if svolgi("3.5 -3.5") == 0:
    print("Test 3: ok")
else:
    print("Test 3: non superato")

if svolgi("3*3.5") == 10.5:
    print("Test 4: ok")
else:
    print("Test 4: non superato")

if svolgi("d3 +3"):#se diverso da None
    print("Test 5: non superato")
else:
    print("Test 5: ok")

if svolgi("3 +-3"):#se diverso da None
    print("Test 6: non superato")
else:
    print("Test 6: ok")

if svolgi("3 + 3 6"): #se diverso da None
    print("Test 7: non superato")
else:
    print("Test 7: ok")

if svolgi("6.12 "): #se diverso da None
    print("Test 8: non superato")
else:
    print("Test 8: ok")
