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 [richiesta di troubleshooting]

Luca Bertagnin (1040 points)
2 12 15
in Eserciziario d'esame by (1.0k points)
closed by
Sto facendo esercizi presenti nell'eserciziario, in questo caso all'es 7 ho definito la funzione recursivamente, ma annidata in if e cicli for; Anaconda prompt, al comando di test, restituisce: [parte iniziale del percorso censurata]

Fondamenti di Programmazione Python\Esercizi\Esercizi esame\Lvl 3\7\test.py", line 68, in test_2
    return self.do_test(lista2, {1,2,3,5,9}, 2, 3)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 Fondamenti di Programmazione Python\Esercizi\Esercizi esame\Lvl 3\7\test.py", line 21, in do_test
    raise Exception("Recursion not present")
Exception: Recursion not present

======================================================================
ERROR: test_3 (__main__.Test.test_3)
Terzo test della funzione es1 con insieme= {12,21,29,30,81,94}, k= 1 e albero:
----------------------------------------------------------------------
Traceback (most recent call last):
Fondamenti di Programmazione Python\Esercizi\Esercizi esame\Lvl 3\7\test.py", line 98, in test_3
    return self.do_test(lista3, {12,21,29,30,81,94}, 1, 4)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Fondamenti di Programmazione Python\Esercizi\Esercizi esame\Lvl 3\7\test.py", line 21, in do_test
    raise Exception("Recursion not present")
Exception: Recursion not present

----------------------------------------------------------------------
Ran 3 tests in 0.002s

FAILED (errors=3)
3 test passed, 0 tests failed

Perchè dice che ho passato i test, ma riporta fallito ? Perchè non rileva la ricorsione e come potrei fixarla ?

Edit: ciò accade anche per altri esercizi
172 views
closed

2 Answers

Best answer
g
greensimo (1630 points)
0 0 7
by (1.6k points)
selected by
Mi era capitato un errore simile in passato: avevo fatto un piccolo errore nel path delle directories su cui applicare la ricorsione per cui di fatto la ricorsione veniva saltata per quanto presente nel codice.
Prova a verificare se effettivamente si verifica la condizione per richiamare la funzione in modo ricorsivo, altrimenti il test fallisce. Puoi anche semplicemnte provare a mettere un print ad inizio funzione, se la ricorsione non viene triggerata ti comparira' il tuo print solo una volta.
andrea.sterbini (208020 points)
756 1270 2377
by (208k points)

La ricorsione non viene rilevata se:

  • È chiusa in un try/except 
  • Oppure È definita in una funzione "interna" a una altra funzione 
Luca Bertagnin (1040 points)
2 12 15
by (1.0k points)
Non vorrei peccare di superbia, ma purtroppo temo di aver programmato la funzione in un modo recursivo non previsto, dato che non ho usato i costrutti da lei menzionati. Posso condividere il codice dell'esercizio, dato che non siamo in homework ?
andrea.sterbini (208020 points)
756 1270 2377
by (208k points)
mandamelo per email
Luca Bertagnin (1040 points)
2 12 15
by (1.0k points)
fatto professore, grazie