(Python) Istruzione ciclo condizionale - WHILE


Un loop con una condizione. istruzione while

Studiando il ciclo for, abbiamo detto che se il numero di ripetizioni di qualsiasi azione è noto, allora puoi accorciare il programma usando l'operatore del ciclo for. Ma cosa succede se il numero di ripetizioni è sconosciuto? E questo accade abbastanza spesso.
 
Esempio
Ricordando la traduzione di un numero da un sistema numerico decimale a qualsiasi altro, dobbiamo dividere il numero (e quindi il risultato della divisione) per la base del sistema numerico finché non otteniamo zero nella risposta. Quante volte condivideremo non è noto. E ci sono moltissimi programmi che implementano un tale algoritmo. 

Come possiamo implementare l'algoritmo se non conosciamo il numero esatto di iterazioni?

Per questi casi nella programmazione, esiste un'istruzione loop con una condizione. 
Nel linguaggio di programmazione Python, un'istruzione di ciclo condizionale inizia con la parola while e ha la seguente struttura.
mentre <condizione>:
  corpo ad anello

Come già sappiamo:
- una condizione è un'espressione, il cui risultato può essere vero o falso (come in un'istruzione condizionale);
- il corpo del ciclo è i comandi che devono essere ripetuti, sono indentati.

Come funziona l'operatore?
1. Innanzitutto, il programma valuta la condizione tra parentesi dopo la parola while. Se la condizione è soddisfatta (true), il programma esegue le istruzioni contenute nel corpo del ciclo.
2. Al termine dell'esecuzione del corpo del ciclo, il programma torna a controllare la condizione e la controlla di nuovo.
3. Queste azioni (controllo della condizione - esecuzione del corpo del ciclo) vengono ripetute fino a quando la condizione diventa falsa.
4. Se la condizione non viene soddisfatta immediatamente (false) durante la prima esecuzione di questa istruzione, il programma non eseguirà mai il corpo del ciclo.

Analizzando il lavoro di questo operatore, dovrebbe essere chiaro che il corpo del ciclo deve contenere un operatore che influenza la condizione.
Ad esempio, in un ciclo, il valore di una variabile utilizzata in una condizione può essere incrementato.

Un esempio di un programma che chiameremo "Conteggio silenzioso".
Facciamo contare il programma al posto nostro, ad esempio fino a 10.
Il programma dovrebbe emettere le frasi "Start" e "Finish", e tra queste azioni vengono visualizzati i numeri che vengono calcolati.

Ad esempio, in questo modo:
Avvia
1 2 3 4 5 6 7 8 9 10
Termina

Un programma che utilizza un ciclo while dovrebbe avere questo aspetto: print("Start")   io = 1 mentre io <= 10:     print(i, end=" ")     i += 1   # operatore che influisce sulla modifica di una variabile,   # in piedi nella condizione print() # sposta il cursore su una nuova riga print("Fine")
In questo programma, assegniamo un valore alla variabile i = 1 - il punto di partenza.
Inoltre, fintanto che il valore della variabile i non è maggiore (cioè minore o uguale a) del valore di cui abbiamo bisogno, noi: 
 1. visualizzare il valore della variabile i;
 2. aumentare il valore della variabile i di 1 - questo operatore influisce sul valore della condizione tra parentesi. La variabile i viene incrementata, il che significa che a un certo punto la condizione i <= 10 diventerà falsa. Ciò accadrà quando i diventa uguale a 11. In questo caso, il corpo del ciclo non verrà più eseguito e il programma eseguirà l'istruzione successiva dopo il ciclo, ad es. print() e  print("Fine").

Compito

Devi inserire un numero (lascia che sia inferiore a 3.000.000) e determinare il numero di cifre in esso.
 
Idea di soluzione
Abbiamo solo bisogno di tagliare in sequenza l'ultima cifra dal numero (questo può essere fatto riducendo il numero di 10 volte, usando la divisione intera per 10), e ogni volta dobbiamo aumentare il contatore. 

Di conseguenza, dopo aver tagliato tutte le cifre del numero, otterremo il loro numero nel contatore.

Questo algoritmo può essere formulato come segue:
Finché il numero non è zero, diminuiscilo di 10 e incrementa il contatore di 1 ogni volta.
 
numero (n) contatore
123 0
12 1
1 2
0 3

Il programma sarà simile a questo. n = int(input()) contare = 0 mentre n != 0: contare += 1 n = n // 10 print("Numero -", n, "contiene", conteggio, "cifre")
Devi conoscere questo programma a memoria, perché. sulla sua base vengono risolti molti altri compiti relativi all'elaborazione delle cifre di un numero.

Compito

L'input del programma è il flusso di dati — una sequenza di numeri interi che termina con zero (lo zero non è incluso nella sequenza). Devi trovare la somma degli elementi di questa sequenza.
 
Algoritmo risolutivo
 somma=0
 input x // inserisci il primo numero
 while x != 0 // il segno di fine input è impostato nella condizione,
 nc // ovvero finché non inserisci zero
   sum = sum + x // puoi fare qualcosa con il numero originale.
                  // Puoi aggiungere un controllo numerico per alcune condizioni, ecc.
   inserisci x // inserisci il numero successivo
 kts
 print sum //output dei risultati