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])