Forum >> Principianti >> Problema con while.

Pagina: 1

Inanzitutto ciao a tutti, mi sono iscritto da poco su questo forum perche ho iniziato da poco a inparare python. Provengo da js, html, css3 e php e forse è proprio per questo che sto trovando python facile da inparare ma allo stesso tempo difficile ad esempio per la mancata apertura e chiusura di codice, sostituita dall'indentazione. Ma passiamo al mio problema. Dopo aver creato i primi script come Hallo World e poco altro ho provato a creare un programma in cui potrei salvare tutti i miei risultati di atletica. Non avendo un motore grafico, e non sapendolo usare appena apro il programma il computer mi chieda se voglia leggere o scrivere dei dati, tutto attraverso la pressione di 0 o 1. Qui arriva il mio dubbio come faccio a continuare a chiedere "Cosa voglio fare?" se inserisco un numero sbagliato? Ho provato con while e effettivamente se inserisco 2 o 7 o altro ottengo un messaggio che mi dice di inserire un numero corretto. Il problema è che il pc manda continuamente in stampa questo messaggio perche la variabile "inizio" è sempre piena con il numero sbagliato. Come posso fare?
Vi allego qui il codice.




from random import *
from pickle import *


f = open('saves.txt', 'w')  # apriamo il file in scrittura
#ahundredsmeter = input("Tempo ai 100 metri \n")


inizio = input("Cosa vuoi fare? \n Puoi leggere i tuoi vecchi risultati (0) oppure scrivere i tuoi nuovi risultati(1). \n")

while int(inizio) < 0 or int(inizio) > 1:
    #print("Inserisci un risultato corretto! \n")
    
    if int(inizio) == 0:                        #mettere int serve a confrontare: altrimenti confronterebbe inizio (una stringa) con un intero
        print("Messaggio di esempio")
    #continue
    #break



f.close()
Ciao e grazie
Mi verrebbe da dirti di azzerare la variabile appena passato l’if.
ok. ho provato ma non ci sono riuscito... se provassi a fare una specie di "switch()" fatto con if elif e else?
Vi posto il codice...




from random import *
from pickle import *

f = open('saves.txt', 'w')  # apriamo il file per salvare i salvataggi (in scrittura)

#while True:
print("Benvenuto nel programma per salvare tutti in tuoi salvataggi nel tuo sport preferito! \n")
print("Che cosa vuoi fare? \nLeggere i risultati (1)\nScrivere nuovi risultati (2) -->")
start = input ("")

if int(start) == 1:
    print("Ecco qui i tuoi scorsi risultati")
elif int(start) == 2:
    print("Scrivi il tuo risultato")
else:
    print("Inserisci un valore corretto")

f.close()

Il problema è che non so se quando uno inserisce un altro valore oltre al messaggio:"Inserisci un valore corretto" rinizi tutto lo script (da start = input ("")). Come posso fare?

Grazie in anticipo.


inizio = input("Cosa vuoi fare?\nPuoi leggere i tuoi vecchi risultati (0) oppure scrivere i tuoi nuovi risultati (1).\n")
while "0" != inizio != "1" : inizio = input("Inserisci un valore corretto (0 o 1)!\n")    
print("%s i tuoi risultati" % ("leggi" if inizio == "0" else "scrivi"))
--- Ultima modifica di Tessa in data 2019-09-28 15:14:56 ---
grazie... finalmente ho risolto
Scusate, ma il carattere # non è un commento?
Sono nuovo anch'io e sto studiando programmazione da pochissimi giorni quindi sicuramente mi sbaglio, ma nel codice vedo diversi commenti.
Ha inserito il carattere # all'inizio di alcuni enunciati per farli ignorare dall'interprete.
Siccome sta imparando fa delle prove inserendo o facendo ignorare gli enunciati che gli sembrano più o meno opportuni.


Pagina: 1



Esegui il login per scrivere una risposta.