Forum
>>
Principianti
>>
Problema con while
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da Amy ![]() |
2025-02-12 20:14:50 - Problema con while
|
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 |
|
Scritto da Daniele aka Palmux ![]() |
2025-02-12 23:59:39 - Re: Problema con while
|
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 |
|
Scritto da Amy ![]() |
2025-02-13 16:59:40 - Re: Problema con while
|
Era la condizione di uscita sbagliata
Ho risolto Ti ringrazio comunque |
|
Scritto da Daniele aka Palmux ![]() |
2025-02-13 17:09:53 - Re: Problema con while
|
Ah perfetto, risolvere da soli è sempre appagante.
Buono studio. Daniele |
|
Scritto da Itzel21 ![]() |
2025-03-04 02:57:15 - Re: Problema con while
|
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.
|
|
Scritto da katyperry ![]() |
2025-06-07 05:03:23 - Re: Problema con while
|
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.