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.

