Forum
>>
Principianti
>>
Numeri in lettere
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da Plutarco |
2017-10-18 23:47:33 - Numeri in lettere
|
Ciao ragazzi
Volevo sapere se in questo codice era possibile eliminare qualche if in modo tale da ridurre l'intricatezza def conv(n): 'Scrivete qui il codice della funzione' if n == 0: return "" elif n <= 19: return ("uno", "due", "tre", "quattro", "cinque", "sei", "sette", "otto", "nove", "dieci", "undici", "dodici", "tredici", "quattordici", "quindici", "sedici", "diciassette", "diciotto", "diciannove")n-1 elif n <= 99: decine = ("venti", "trenta", "quaranta", "cinquanta", "sessanta","settanta", "ottanta", "novanta") letter = decine[int(n/10)-2] t = n%10 if t == 1 or t == 8: letter = letter[:-1] return letter + conv(n%10) elif n <= 199: return "cento" + conv(n%100) elif n <= 999: m = n%100 m = int(m/10) letter = "cent" if m != 8: letter = letter + "o" return conv( int(n/100)) + \ letter + \ conv(n%100) elif n<= 1999 : return "mille" + conv(n%1000) elif n<= 999999: return conv(int(n/1000)) + \ "mila" + \ conv(n%1000) elif n <= 1999999: return "unmilione" + conv(n%1000000) elif n <= 999999999: return conv(int(n/1000000))+ \ "milioni" + \ conv(n%1000000) elif n <= 1999999999: return "unmiliardo" + conv(n%1000000000) else: return conv(int(n/1000000000)) + \ "miliardi" + \ conv(n%1000000000) |
|
Scritto da Daniele aka Palmux |
2017-10-19 02:02:33 - Re: Numeri in lettere
|
Ciao caro, quando metti del codice sul sito usa il pulsante apposito , in modo da formattarlo correttamente. Puoi anche usare fonti esterne come Pastebin se ti è più comodo.
La risposta alla tua domanda è sì, il tuo codice può essere ottimizzato e ridotto. Certo devi fare un po' di prove e se hai difficoltà o dubbi posta le parti incriminate che ci ragioniamo insieme. Cya |
|
Scritto da Plutarco |
2017-10-20 12:05:14 - Re: Numeri in lettere
|
Ok non lo sapevo, la prossima lo farò
allora io quello che pensavo era innanzitutto casomai spezzettarlo in più funzioni, in modo tale da ridurre gli if, come per esempio dai numeri da 1 a 19, per le decine e per le centinaia, ma non so come fare per poi richiamarle nella funzione principale |
|
Scritto da Daniele aka Palmux |
2017-10-20 14:31:54 - Re: Numeri in lettere
|
Perfetto, grazie.
Beh è una soluzione, così come creare una classe che contiene più metodi e/o che derivano da una classe principale. Scusa ma in che senso non sai come richiamare una funzione da quella principale? >>> def principale(): ... return secondaria() ... >>> def secondaria(): ... return "Sono la funzione secondaria" ... >>> print(principale()) Sono la funzione secondariaCya |
|
Scritto da Plutarco |
2017-10-20 16:49:42 - Re: Numeri in lettere
|
Ok ma sia nelle secondarie che nella principale il parametro all'interno deve essere lo stesso?
Tipo principale(n) Secondaria(n) |
|
Scritto da Plutarco |
2017-10-20 16:56:36 - Re: Numeri in lettere
|
Risolto, grazie mille
|
Pagina: 1
Esegui il login per scrivere una risposta.