non mi funziona i print per controllare da spyder

Light (5130 points)
24 170 229
asked Dec 1, 2018 in Es1 by Light (5,130 points)
ho messo nella stessa cartella il test_01 e l'ho fatto runnare ma mi dice che in output mi fa passare sempre e solo 0 rettangoli...quindi per vedere dove sbaglio metto print dove penso sia sbagliato ma non li printa...quindi sono arrivato addirittura a mettere subito dopo la funzione es1(ecc..) il print ma se runno non va lo stesso....non capisco il perche e non so cosi come fare a trovare l'errore..
293 views

1 Answer

Best answer
_andrea_ (45670 points)
2 40 297
answered Dec 1, 2018 by _andrea_ (45,670 points)
selected Dec 2, 2018 by Light
Ma i print li hai messi fuori dalle funzioni? Devi metterli in punti "strategici" cioè punti in cui finisci determinati passaggi e printi tipo print("finito passaggio x"). Se non printa vuol dire che l'esecuzione finisce prima o che skippa quella parte
Light (5130 points)
24 170 229
commented Dec 1, 2018 by Light (5,130 points)
sisi lo so ma per dirti lìho messa addirittura subito sotto la parte dell'es1 ma non lo printa...e non capisco il perche
_andrea_ (45670 points)
2 40 297
commented Dec 1, 2018 by _andrea_ (45,670 points)
Ma l'hai messo dentro o fuori la funzione es1?
Light (5130 points)
24 170 229
commented Dec 1, 2018 by Light (5,130 points)
dentro dentro no fuori
_andrea_ (45670 points)
2 40 297
commented Dec 1, 2018 by _andrea_ (45,670 points)
Beh se ti dice che il risultato è 0 per ogni test significa che comunque il valore 0 lo trovi e fai
return qualcosa
E quel qualcosa è 0 in qualche modo. Se il print della funzione es1 l'hai messo dopo il return, non viene eseguito. Gli altri non lo so, potrebbe essere questo il motivo. In ogni caso se il valore è 0 vuol dire che l'esecuzione avviene, ma sbaglia o perché è proprio sbagliata o perché su ferma prima o salta alcune parti (motivo per cui potrebbero non venire usati i print). Controlla bene i punti in cui li hai messi e le condizioni che ti permettono di eseguire quei punti
m
mel8 (1250 points)
0 12 19
commented Dec 2, 2018 by mel8 (1,250 points)

Guarda non sono un grande esperto di python quindi non sono sicurissimo a darti questa risposta, ma nel file del test_01.py trovo una linea di codice dove c'è scritto:

with self.ignored_function('builtins.print'):

penso che questa riga di codice faccia in modo che tutti i print inseriti all'interno di qualsiasi funzione venga ignorato se magari ti dimentichi di toglierli alla consegna, in quanto rallentano tantissimo l'esecuzione di un programma specialmente se messe dentro una routine.

Penso sia questo il problema ma ripeto non ne sono sicurissimo.

_andrea_ (45670 points)
2 40 297
commented Dec 2, 2018 by _andrea_ (45,670 points)
Sisi me ne sono accorto anche io proprio stamattina. Stavo cercando di renderlo più veloce ma non veniva printato niente. Prova a togliere quella riga dal tuo test, se ti servono i print. Tanto i test della VM funzioneranno comunque, o comunque prima di consegnare leva i print
andrea.sterbini (172780 points)
513 935 1789
commented Dec 3, 2018 by andrea.sterbini (172,780 points)
Sì, scusate, non vi ho avvertito che per evitare blocchi alla VM per via di output enormi ho disattivato le print.

Commentate le istruzioni "with self.ignored_function...:"
_andrea_ (45670 points)
2 40 297
commented Dec 3, 2018 by _andrea_ (45,670 points)
ho ancora questo problema nel terzo esercizio, ho commentato quel pezzo di codice ma credo ce ne sia un altro uguale da qualche altra parte, penso in testlib, ma non so come toglierlo