Programmazione in Python: Come validare un codice PIN (o password) inserito dall’utente con un ciclo WHILE

In questo post, esploreremo un problema comune che può sorgere durante la scrittura di programmi Python: chiedere all’utente di inserire un codice (ad esempio, un PIN o una password) che soddisfi certe caratteristiche, continuando a richiedere l’input finché non viene inserito un codice corretto. Questo tipo di problema può essere risolto efficacemente utilizzando un ciclo `while`. Vediamo come fare.

Problema

Supponiamo di voler richiedere all’utente di inserire un codice che soddisfi i seguenti criteri:

  1. Deve essere lungo esattamente 4 caratteri.
  2. Deve contenere solo cifre.
  3. Se l’utente inserisce un codice non valido, il programma deve continuare a richiedere l’input finché non viene inserito un codice corretto.

Soluzione

Per risolvere questo problema, possiamo utilizzare un ciclo `while` che continua a chiedere l’input all’utente finché il codice non soddisfa i criteri richiesti.

Ecco un esempio di come implementare questa soluzione in Python:

def is_valid_code(code): 

""" Verifica se il codice è valido: - Esattamente 4 caratteri di lunghezza. - Contiene solo cifre. """ 

return len(code) == 4 and code.isdigit()

def get_code_from_user(): 
""" Chiede all'utente di inserire un codice finché non viene inserito un codice valido. """ 
    while True: 
        code = input("Inserisci un codice di 4 cifre: ") 
        if is_valid_code(code): 
            print("Codice valido inserito.") 
            return code 
        else: 
            print("Codice non valido. Riprova.")

# Esegui la funzione per ottenere il codice dall'utente
user_code = get_code_from_user()

Spiegazione del Codice

Funzione `is_valid_code(code)`:

  • Questa funzione verifica se il codice inserito è lungo esattamente 4 caratteri e se contiene solo cifre utilizzando i metodi `len()` e `isdigit()`.
  • Restituisce `True` se entrambe le condizioni sono soddisfatte, altrimenti `False`.2.

Funzione `get_code_from_user()`:

  • Utilizza un ciclo `while True` per continuare a richiedere l’input all’utente finché non viene inserito un codice valido. – All’interno del ciclo, utilizza la funzione `input()` per ottenere l’input dell’utente.
  • Chiama la funzione `is_valid_code()` per verificare se il codice è valido.
  • Se il codice è valido, stampa un messaggio di conferma e termina il ciclo restituendo il codice.
  • Se il codice non è valido, stampa un messaggio di errore e ripete il ciclo.3.

Esecuzione del codice:

  • La funzione `get_code_from_user()` viene chiamata per iniziare il processo di richiesta del codice all’utente.
  • Una volta ottenuto un codice valido, questo viene assegnato alla variabile `user_code`.

Conclusioni

Questo approccio è semplice e diretto, e utilizza le funzioni e i cicli di base di Python per risolvere il problema. Può essere facilmente adattato per verificare altri tipi di criteri o per richiedere input differenti.

Spero che questo esempio ti sia stato utile per comprendere come utilizzare un ciclo `while` per richiedere un input corretto all’utente. Se hai domande o suggerimenti, sentiti libero di lasciare un commento qui sotto!# Validare un Codice in Python con un Ciclo While