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.

Ricorsione non rilevata nella tabella efficienza

f
f3derico (520 points)
0 4 6
in HW8 by (520 points)
closed by

Andando nella tabella efficienza dopo aver consegnato l'homework compare inizialmente:

test_data_1___boards_01_txt____2__16__0__ (test_01.Test) ... Recursion detected! in recursive_f

Mentre durante i vari cicli che esegue è come se non rilevasse la ricorsione e stampa:

test_data_1___boards_01_txt____2__16__0__ (test_01.Test) ... FAIL
AssertionError= RecursionDetectedError not raised

Stranamente questo accade solo su efficienza (in particolare coinvolge solo il primo test), non su correttezza e non sembrerebbe alterare la valutazione.

368 views
closed

1 Answer

Best answer
andrea.sterbini (208020 points)
756 1270 2377
by (208k points)
selected by
Se consegni gli do una occhiata
f
f3derico (520 points)
0 4 6
by (520 points)
edited by

Professore, in realtà ho consegnato...

nel mentre volevo chiederle se potesse mettere __future__ negli allowed imports

andrea.sterbini (208020 points)
756 1270 2377
by (208k points)
Il problema è che usi un argomento con default mutevole, che viene instanziato solo alla definizione della funzione e che ricorda i risultati anche nelle chiamate seguenti. Per cui non fa ricorsione

Questo uso degli argomenti con valore di default è proibito
f
f3derico (520 points)
0 4 6
by (520 points)
perfetto, in sintesi timeit rispetto a pytest mantiene i valori in memoria, non ci avevo fatto caso...

Grazie Prof.
andrea.sterbini (208020 points)
756 1270 2377
by (208k points)
Ma si può sapere a che ti serve __future__?
f
f3derico (520 points)
0 4 6
by (520 points)
riguarda la feature `annotations`, per i type hints che esistono in py3.10 e sono opzionali in py3.7... (esempio specificare più valori di ritorno di una funzione)

Il modulo di per se è neutro, ha builtins e feature di python che implementeranno in qualche vers. successiva. (al momento giusto questo annotations in realtà)
andrea.sterbini (208020 points)
756 1270 2377
by (208k points)
E a che serve gli homework?