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

Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2023-24 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2023-24 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

Problema nei test con 'r' mode di open() in HW4 rec

AlessandroPy (690 points)
4 12 16
in Avvisi by (690 points)
le funzioni che calcolano le medie sono giuste e passano i test, ma il test mi dice comunque "opening file with mode 'r' is not allowed", ora esiste un altro modo per aprire i file da leggere oppure sto sbagliando qualcos'altro io?
662 views
closed

2 Answers

Best answer
andrea.sterbini (207920 points)
750 1267 2373
by (208k points)
selected by
I test permettono di aprire solo i file dei dati indicati dal problema o dai parametri e non altro.
Probabilmente ne apri uno che non dovresti aprire,

BTW, se consegni il codice posso dargli un'occhiata
AlessandroPy (690 points)
4 12 16
by (690 points)
Si ha ragione, "mea culpa" avevo capito male la proprietà della ricorsione.

Ho consegnato il programma (HW4rec) che passa i test delle funzioni scritte se la variabile DEBUG è settata a TRUE nel file test_01.py, se messa a FALSE sbaglia i test con il dbsize=medium e large...
andrea.sterbini (207920 points)
750 1267 2373
by (208k points)
Nei test non esistono tabelle con nome italiano. Nello zip probabilmente ci sono dei vecchi file, ma le tabelle e i corrispondenti file json sono solo in inglese.
noemicalandro (8950 points)
0 0 2
by (9.0k points)
ciao, in teoria se devi solo leggerli non serve per forza la mode, basta "with open (file) as f:"
AlessandroPy (690 points)
4 12 16
by (690 points)
Allora apposto, grazie anche a te, non avevo capito si potessero implementare funzioni esterne alle funzioni dell'HW..., Anche tu hai problemi con la funzione "with open()" per caricare i file ?
G
Gavino_Santu (210 points)
0 0 1
by (210 points)
No penso di avere pèroblemi solo con i timeout, ma alla fine ho capito che non dipende dalla media, bensì da due for annidati che ho implementato all'interno di una funzione che non so proprio come evitarli.

Però in passato ho avuto problemi simili sempre con with open() ma con la modalità 'w+'. Ho risolto utilizzando 'w' soltanto. Nel tuo caso non saprei...
AlessandroPy (690 points)
4 12 16
by (690 points)
credo di aver capito di quali for annidate parli, prova a vedere se i for loop in questa maniera ti risolvono il problema del timeout:

invece di fare la for così -->  for el in lista:

                                                   x = el[...]

fai così --> x = [el[...] for el in lista], se ti serve mettere una condizione per il riempimento della lista, puoi metterla alla fine --> x = [el[...] for el in lista if el[...] > 10]

spero di essere stato utile :)
andrea.sterbini (207920 points)
750 1267 2373
by (208k points)
La ricorsione c'è quando una funzione richiama se stessa (direttamente o indierettamente).

Gli esempi sopra non lo sono
G
Gavino_Santu (210 points)
0 0 1
by (210 points)
Si parli delle list comprhension, e ho già provato ad implementarle. Purtroppo oltre a non risolvere il problema  viene una riga lunghissima e illeggibile. Grazie lo stesso.