Stampare a video la stringa inglese che descrive l'espressione matematica passata in input

Esercizio

Stampare a video la stringa inglese che descrive l’espressione matematica passata in input.

Esempi

expression_out('1 + 3') -> 'One Plus Three'

Soluzione

per prima cosa spezziamo la stringa in token poi vediamo, un token alla volta, se il simbolo appartiene a una delle chiavi del dictionary degli operatori OPERATORS oppure dei numeri NUMBERS. Se esiste si accoda, utilizzando il metodo append() della lista, la sua trasformazione in inglese alla lista di output e alla fine si uniscon i trasformati dei token utilizzando il metodo join().

OPERATORS  = { '+':   'Plus',
  '-':   'Minus',
  '*':   'Times',
  '/':   'Divided By',  
  '**':  'To The Power Of',
  '=':   'Equals',
  '!=':  'Does Not Equal' }

NUMBERS = {
    '0':"Zero",
    '1': "One",
    '2': "Two",
    '3': "Three",
    '4': "Four",
    '5': "Five",
    '6': "Six",
    '7': "Seven",
    '8': "Eight",
    '9': "Nine",
    '10': "Ten"
}

def expression_out(exp):
    ret = []
    #Your amazing code below!
    for symb in exp.split(" "):
        if symb in OPERATORS.keys():
            ret.append(OPERATORS[symb])
        elif symb in NUMBERS.keys():
            ret.append(NUMBERS[symb])
        else:
            return "INVALID"
        
    return ' '.join([x for x in ret])
Previous