Forum
>>
Programmazione Python
>>
Files e Directory
>>
Problemi con implementazione algoritmo classi
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da fritz |
2018-04-11 18:11:48 - Problemi con implementazione algoritmo classi
|
Salve a tutti,
Sono in difficoltà con questo script relativamente semplice. Il problema è che non, avendoci fornito abbastanza materiale sulle classi (pur avendole studiate), non riesco a capire come gestirle correttamente. Per esempio, qui di seguito vi mostro la prima classe implementata(male) class Leggi(): def __init__(self): #non modificate i parametri del costruttore #se volete aggiungere codice fatelo qua sotto, se non dovete #aggiungere codice, lasciate il pass qua sotto pass def transform(self, filename): f=codecs.open(filename,'r',encoding='latin1') lista=[] linee=f.readlines() f.close() for line in linee: token=line.rstrip('\n') lista.append(token) return lista Per favore aiutatemi, sono disperato. Qui di seguito la consegna dell'implementazione. DESCRIZIONE DEL/DEI FILE CON I DATI Nota bene: la codifica dei file e' utf8 se non diversamente indicato - numeri.txt Ogni riga del file contiene un simbolo di operazione (i valori possibili sono tre: +, - e *) seguito da due valori numerici. Simboli e valori numerici sono separati da spazi. I numeri sono espressi in lettere es., cinque, otto, sette. I numeri presenti nel file sono solo quelli compresi tra zero e nove, non troverete numeri superiori al nove nel file. Ogni riga del file termina con il carattere di a capo '\n' - Ricordatevi di aprire/ispezionare il file con un editor diverso dal Notepad di windows, perché quest'ultimo non gestisce correttamente i caratteri di a capo. DESCRIZIONE DELL'ESERCIZIO DA SVOLGERE Implementate le classi seguenti: Classe Leggi. La classe ha un metodo transform() che accetta come parametro in ingresso il nome di un file (la struttura del file e' analoga a quella di numeri.txt) e restituisce una lista di stringhe, dove ogni stringa corrisponde ad una delle righe del file. Ricordatevi di rimuovere i '\n' dalle stringhe. Il file deve essere aperto dentro il metodo transform() e chiuso prima di restituire i risultati. Classe Converti. La classe ha un metodo transform() che accetta in ingresso l'output del metodo transform() della classe precedente (una lista di stringhe) e restituisce in uscita una lista di liste, come nell'esempio seguente: [ ['+', 3, 1], ['-', 5, 2], ['*', 4, 8], ... ]. Ognuna delle liste più interne contiene le informazioni presenti in una riga del file. Il primo elemento di ogni lista più interna deve essere una stringa, i due elementi successivi devono essere valori interi. I numeri espressi come stringhe nel file (es. 'nove', 'tre') devono essere convertiti nei corrispondenti numeri interi. Di fatto, ogni lista più interna contiene il simbolo di un'operazione seguito dagli operandi a cui deve essere applicata l'operazione. Classe Calcola. La classe ha un metodo transform() che accetta in ingresso l'output del metodo transform() della classe precedente e restituisce in uscita una lista di valori interi. Ogni valore intero è calcolato prendendo ognuna delle liste [operazione, numero1, numero2] e l'operazione ai due numeri. Per esempio, se al metodo transform() viene passata in ingresso la lista [ ['+', 3, 1], ['-', 5, 2], ['*', 4, 8], ... ] il metodo dovrà restituire come risultato [4, 3, 32] --- Ultima modifica di fritz in data 2018-04-11 18:13:46 --- |
Pagina: 1
Esegui il login per scrivere una risposta.