Profilo di fritz

Nome fritz
Indirizzo email n/a
Messaggi1
  • Problemi con implementazione algoritmo classi
    Forum >> Programmazione Python >> Files e Directory
    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 ---