Domanda Risolto python. Cos'è che sbaglio?

Stato
Discussione chiusa ad ulteriori risposte.

N3v5

Utente Silver
24 Ottobre 2020
169
19
40
80
Ultima modifica:
Python:
    eta = input("Quanti anni hai? ")
    condizione = eta.isdigit() and int(eta) in range(1,99)
    if condizione:
        if int(eta) > 18:
            print("Bene, quindi hai {} anni e ti chiami {}.\n".format(eta, nome.capitalize()))
        else:
            print("Mi dispiace ma non hai ancora 18 anni. Torna tra {} anni.\n".format(18-int(eta)))
    else:
        while not condizione:
            print("Devi inserire un numero tra 1 e 99.")
            eta = input("Quanti anni hai? ")
 
Il problema è questo: se io dò subito un numero valido ok, se prima faccio qualche tentativo sbagliato e poi inserisco un numero valido me lo prende comunque come sbagliato. Il while mi dà sempre true in pratica
Credo (non ne sono sicuro) che devi inserire condizione tra parentesi Edit: Prova a inserire i break e i continue dove servono
Python:
while not (condizione)
 
Credo (non ne sono sicuro) che devi inserire condizione tra parentesi Edit: Prova a inserire i break e i continue dove servono
Python:
while not (condizione)
niente da fare. Le parentesi non cambiano nulla. Dove andrebbero messi i break/continue? In fondo al while non aiutano. Comunque ho leggermente modificato il codice ma non funziona ancora.

Python:
    eta = input("Quanti anni hai? ")
    condizione = eta.isdigit() and int(eta) in range(1,99)
    while not condizione:
        print("Devi inserire un numero tra 1 e 99.")
        eta = input("Quanti anni hai? ")
    else:
        if int(eta) > 18:
            print("Bene, quindi hai {} anni e ti chiami {}.\n".format(eta, nome.capitalize()))
        else:
            print("Mi dispiace ma non hai ancora 18 anni. Torna tra {} anni.\n".format(18-int(eta)))
 
niente da fare. Le parentesi non cambiano nulla. Dove andrebbero messi i break/continue? In fondo al while non aiutano. Comunque ho leggermente modificato il codice ma non funziona ancora.

Python:
    eta = input("Quanti anni hai? ")
    condizione = eta.isdigit() and int(eta) in range(1,99)
    while not condizione:
        print("Devi inserire un numero tra 1 e 99.")
        eta = input("Quanti anni hai? ")
    else:
        if int(eta) > 18:
            print("Bene, quindi hai {} anni e ti chiami {}.\n".format(eta, nome.capitalize()))
        else:
            print("Mi dispiace ma non hai ancora 18 anni. Torna tra {} anni.\n".format(18-int(eta)))
Purtroppo ora non ho il pc a portata di mano e mi risulta difficile scriverlo da telefono (sempre se è quello l'errore)
 
Non viene ritestata la condizione nel while...
Python:
eta = input("Quanti anni hai? ")
condizione = eta.isdigit() and int(eta) in range(1,99)
while not condizione:
    print("Devi inserire un numero tra 1 e 99.")
    eta = input("Quanti anni hai? ")
    condizione = eta.isdigit() and int(eta) in range(1,99)

if int(eta) > 18:
    print("Bene, quindi hai {} anni e ti chiami {}.\n".format(eta, nome.capitalize()))
else:
    print("Mi dispiace ma non hai ancora 18 anni. Torna tra {} anni.\n".format(18-int(eta)))
 
  • Mi piace
Reazioni: Aiden- e N3v5
Non viene ritestata la condizione nel while...
Python:
eta = input("Quanti anni hai? ")
condizione = eta.isdigit() and int(eta) in range(1,99)
while not condizione:
    print("Devi inserire un numero tra 1 e 99.")
    eta = input("Quanti anni hai? ")
    condizione = eta.isdigit() and int(eta) in range(1,99)

if int(eta) > 18:
    print("Bene, quindi hai {} anni e ti chiami {}.\n".format(eta, nome.capitalize()))
else:
    print("Mi dispiace ma non hai ancora 18 anni. Torna tra {} anni.\n".format(18-int(eta)))[/COD
[/QUOTE]
Messaggio unito automaticamente:

perfetto, ora funziona, grazie mille
 
Stato
Discussione chiusa ad ulteriori risposte.