Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

HW1Bis - es. 3

A
AFulvio (220 points)
2 2 5
in HW1bis by (220 points)
closed by
Salve a tutti, ho letto le altre domande su questo esercizio ma non ho trovato risposte in merito. Il mio problema è che non riesco a capire come trovare un anagramma composto da tre parole differenti nel testo. Per il resto ho creato una funzione che diminuisce le parole lasciando solo quelle che potrebbero essere usate per l'anagramma ma non capisco come posso collegare tre di queste e sopratutto le ultime tre della lista che formano l'anagramma. Sarei grato se qualcuno mi desse uno spunto per sbloccarmi.
785 views
closed with the note: answered

1 Answer

andrea.sterbini (207920 points)
750 1267 2373
by (208k points)
Dato un testo e una lista di parole prima ti conviene pensare a quali parole POSSONO e quali NON POSSONO trovarsi in quel testo.
La prima parola dell'anagramma sarà una di quelle che POSSONO.
Tolte le lettere di quella parola dal testo, è facile trovare le altre due parole
A
AFulvio (220 points)
2 2 5
by (220 points)

Perfetto ho capito il metodo, grazie professore. Ora il problema è un altro, ho completato tutto l'esercizio e nel testarlo mi va in errore in tutti i test subito dopo la linea dove apro il file. L'errore è tipo: " FileNotFoundError: [Errno 2] No such file or directory: 'Pink Floyd '". Non riesco proprio a capire dov'è che sbaglio.

andrea.sterbini (207920 points)
750 1267 2373
by (208k points)
Strano, il file delle parole lo apro io e te le passo direttamente.
Perchè apri un file?
A
AFulvio (220 points)
2 2 5
by (220 points)
Infatti non apro il file delle parole ma solo il file 'testo'. Le parole le tratto come stringhe, per questo non capisco...
andrea.sterbini (207920 points)
750 1267 2373
by (208k points)
Non capisco, non devi aprire nessun file, ti vengono passati come argomenti direttamente la lista delle parole E la stringa del testo.

Rileggi la consegna dell'esercizio
A
AFulvio (220 points)
2 2 5
by (220 points)
Prof. ho lasciato perdere quell'esercizio e l'ho ripreso solo ora, effettivamente non avevo capito cosa mi venisse passato come argomento della funzione. Ho rivisto tutto il codice ma sono bloccato nello stesso punto. Seleziono le parole che possono far parte dell'anagramma e successivamente aggiungo l'ultima parola di queste al risultato ed elimino le lettere di questa parola dal testo iniziale. Mi servirebbe uno spunto per capire come fare a trovare le due parole che sfruttano tutte le lettere rimanenti del testo e compongono l'anagramma. Nei test o mi torna tutti None perchè metto la condizione che il testo deve essere vuoto, oppure tutte tuple errate.
andrea.sterbini (207920 points)
750 1267 2373
by (208k points)
Hai provato a svolgere un esempio piccolo, con una decina di parole, prima a mano, poi da programma per vedere se il codice fa quello che ci si aspetta?
A
AFulvio (220 points)
2 2 5
by (220 points)
Si con un esempio inventato da me il codice fa il suo lavoro. Testandolo passo solo 4 test su 11, il codice in pratica mi torna quasi sempre None e non riesce a comporre la tupla.
andrea.sterbini (207920 points)
750 1267 2373
by (208k points)
solo se consegni posso guadarlo.
A
AFulvio (220 points)
2 2 5
by (220 points)
Ora dovrebbe essere online
A
AFulvio (220 points)
2 2 5
by (220 points)
Buonasera professore, sono tornato di nuovo sull'esercizio ma niente di nuovo sono ancora bloccato. Riguardando gli esempi nel testo dell'esercizio ho notato che solo con la stringa ''Andrea Sterbini'' mi trova l'ultima parola della lista come quella dell'esempio (ovviamente dopo aver filtrato le parole che possono far parte dell'anagramma). Per esempio con la stringa ''Angelo Monti'' la prima parola corretta dovrebbe essere ''toni'' invece a me inserisce ''tono'' nella tupla e non capisco come ovviare a questa cosa dato che nel filtraggio delle parole ''tono'' mi passa dato che ci sono due ''o'' nella frase considerata.