Forum
>>
Principianti
>>
Problema con while.
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da romeo |
2019-09-19 16:19:30 - Problema con while.
|
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 |
|
Scritto da Orsogrizzly |
2019-09-19 16:56:02 - Re: Problema con while.
|
Mi verrebbe da dirti di azzerare la variabile appena passato l’if.
|
|
Scritto da romeo |
2019-09-24 17:35:39 - Re: Problema con while.
|
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. |
|
Scritto da mrBoomBastic |
2019-09-27 00:11:42 - Re: Problema con while.
|
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 ---
|
|
Scritto da romeo |
2019-09-28 14:02:52 - Re: Problema con while.
|
grazie... finalmente ho risolto
|
|
Scritto da Ombromondo |
2019-09-28 14:31:27 - Re: Problema con while.
|
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. |
|
Scritto da mrBoomBastic |
2019-09-28 15:08:36 - Re: Problema con while.
|
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.