Forum >> Principianti >> Problema con while

Pagina: 1

Sono nuova e ho bisogno di un aiutino, se non è il sito giusto ditemi dove potermi rivolgere
Potete dirmi dov'è l'errore nel programmino ?
Non riesco a far stampare il risultato




c=0

n=eval(input("N: "))




while n>0:

if (n%2==0):

c=c+1

n=n/2




print("Numero di volte che è divisibile per 2: ",c)



Mille grazie







Allegati
Ciao e benvenuta, l'errore principale è che, all'interno del ciclo, usi l'operatore di divisione normale / che restituisce un numero in virgola mobile. Così facendo, anche se n tende a zero, non diventa mai esattamente 0 e il ciclo while non termina mai.

Per sistemare il problema, dovresti usare la divisione intera // così che n diventi un intero ad ogni iterazione e il ciclo si fermerà quando n diventerà 0.

Prova e fammi sapere se così riesci.

Cya
Era la condizione di uscita sbagliata
Ho risolto

Ti ringrazio comunque
Era la condizione di uscita sbagliata
Ho risolto

Ti ringrazio comunque

Ah perfetto, risolvere da soli è sempre appagante.

Buono studio.
Daniele
Daniele aka Palmux said @ 2025-02-12 23:59:39:
Ciao e benvenuta, l'errore principale è che, all'interno del ciclo, usi l'operatore di divisione normale / che restituisce un numero in virgola mobile. Così facendo, anche se n tende a zero, non diventa mai esattamente 0 e il ciclo while non termina mai.

Per sistemare il problema, dovresti usare la divisione intera // così che n diventi un intero ad ogni iterazione e il ciclo si fermerà quando n diventerà 0.

Prova e fammi sapere se così riesci.

Cya
Giusto! Utilizzando la divisione intera // si garantirà che il ciclo si interrompa in tempo, evitando errori di ciclo infinito dovuti ai numeri in virgola mobile.
In Python, l'indentazione è cruciale. Nel tuo codice, il blocco del while sembra non includere correttamente l'aggiornamento di n o altre istruzioni, il che potrebbe causare un loop infinito o un comportamento errato. Inoltre, il print finale dovrebbe essere allineato fuori dal ciclo per mostrare il risultato una sola volta alla fine.


--- Ultima modifica di katyperry in data 2025-06-07 05:03:36 ---


Pagina: 1



Esegui il login per scrivere una risposta.