Problema con l'istruzione if

Stato
Discussione chiusa ad ulteriori risposte.

xevier

Utente Silver
16 Febbraio 2009
42
8
0
63
Ciao a tutti, sto creando una specie di gioco dell'impiccato in python, senza interfaccia grafica però T_T, soltanto che una volta eseguite le istruzioni if/else, il programma si ferma poichè nn ci sono più istruzioni. Vorrei sapere come far ripartire il programma dal raw_input che sta all'inizio,mantenendo le modifiche apportate ; ho provato con while ma è addirittura peggio T_T.

Ho allegato il codice.

Stavo pensando anche ad un modo per terminare il programma quando tutti gli elementi di u sono uguali a quelli di y, facendo comparire il messaggio "Hai indovinato!", o quando vengono visualizzati più di cinque "sbagliato!", facendo comparire un messaggio del tipo "Sorry, hai perso!".

Un ultima domanda, come posso fare per eliminare tutti questi if ed else? T_T.
 
RE: Ripetere ciclo if

if-else non è un ciclo ma una condizione,icicli sono for,while e do-while,dove il for viene utilizzando quando sai quante volte precisamente devi ciclare,il while fin quando la condizione è vera,do-while come il while ma effettuando almeno una volta quello che è contenuto del ciclo.cercatele per il python e te le studi :D
 
RE: Ripetere ciclo if

Oddio D:

Prima di tutto, la prossima volta usa http://pastebin.com con il syntax highlighting che almeno si capisce meglio.

Secondo punto, usa if elif elif elif al posto di fare else: if, fa la stessa cosa ma almeno si capisce meglio.

Terzo punto dovresti usare un for i in range(0, tentativi) per fare quel che vuoi.

Quarto punto: dovresti studiare un po' di teoria perche' proprio fondamentalmente non hai idea di come impostare l'algoritmo.

Teoricamente dovrebbe essere cosi' il risultato reale: http://pastebin.com/f530aa003

Edit PS: Di solito non do' la pappa pronta ma mi annoiavo ed avevo voglia di scrivere un po' di python (anche se e' davvero brutto come linguaggio, oggetti e funzioni sono troppo dispersivi, verrebbe piu' naturale un "stringa".split('') piu' che un list("stringa"), e verrebbe piu' naturale un lista.join(separatore) che un 'separatore'.join(lista) ma va beh :S)
 
RE: Ripetere ciclo if

meh. ha detto:
Oddio D:

Prima di tutto, la prossima volta usa http://pastebin.com con il syntax highlighting che almeno si capisce meglio.

Secondo punto, usa if elif elif elif al posto di fare else: if, fa la stessa cosa ma almeno si capisce meglio.

Terzo punto dovresti usare un for i in range(0, tentativi) per fare quel che vuoi.

Quarto punto: dovresti studiare un po' di teoria perche' proprio fondamentalmente non hai idea di come impostare l'algoritmo.

Teoricamente dovrebbe essere cosi' il risultato reale: http://pastebin.com/f530aa003

Edit PS: Di solito non do' la pappa pronta ma mi annoiavo ed avevo voglia di scrivere un po' di python (anche se e' davvero brutto come linguaggio, oggetti e funzioni sono troppo dispersivi, verrebbe piu' naturale un "stringa".split('') piu' che un list("stringa"), e verrebbe piu' naturale un lista.join(separatore) che un 'separatore'.join(lista) ma va beh :S)

Grazie mille , ci sono alcune cose che non ho ancora fatto, pensavo di potermi arrangiare XD.Cmq adesso faccio un salto nella libreria python , tanto per dare una sbirciatina ^^.
 
RE: Ripetere ciclo if

Secondo me dovresti prima seguire una buona guida, arrivando perlomeno fino ad un'introduzione alle classi, in programmazione è poco indicato arrangiarsi xDD, comunque, se ti dovesse servire, sempre in questo forum ho postato il mio impiccato^^, sia con che senza GUI, se dovesse servirti usalo pure^^
 
RE: Ripetere ciclo if

Eijin ha detto:
Secondo me dovresti prima seguire una buona guida, arrivando perlomeno fino ad un'introduzione alle classi, in programmazione è poco indicato arrangiarsi xDD, comunque, se ti dovesse servire, sempre in questo forum ho postato il mio impiccato^^, sia con che senza GUI, se dovesse servirti usalo pure^^

Si, avevo visto la tua discussione ^^, è stato proprio vedendo il titolo che mi è venuta la voglia di provare a farne uno,pur conoscendo ancora poco di python , cmq almeno ci ho provato :). Con tutti quegli if ed else il mio codice sembrava un serpente XD.Ho anche scritto che le istruzioni if ed else sono dei cicli lol, sry R4z0r_Cr4$H ^^
 
meh. ha detto:
Oddio D:

Prima di tutto, la prossima volta usa http://pastebin.com con il syntax highlighting che almeno si capisce meglio.

Secondo punto, usa if elif elif elif al posto di fare else: if, fa la stessa cosa ma almeno si capisce meglio.

Terzo punto dovresti usare un for i in range(0, tentativi) per fare quel che vuoi.

Quarto punto: dovresti studiare un po' di teoria perche' proprio fondamentalmente non hai idea di come impostare l'algoritmo.

Teoricamente dovrebbe essere cosi' il risultato reale: http://pastebin.com/f530aa003

Edit PS: Di solito non do' la pappa pronta ma mi annoiavo ed avevo voglia di scrivere un po' di python (anche se e' davvero brutto come linguaggio, oggetti e funzioni sono troppo dispersivi, verrebbe piu' naturale un "stringa".split('') piu' che un list("stringa"), e verrebbe piu' naturale un lista.join(separatore) che un 'separatore'.join(lista) ma va beh :S)

ehm, a dire il vero
1)"stringa".split() funziona, solo che nn accetta un separatore vuoto, visto che per quello si può usare un generatore 50 volte più rapido
Codice:
 lista=[a for a in "stringa"]
2)il join è un metodo del tipo string, è ovvio che chiede il separatore in notazione punto
3)@ razor: python nn ha il dowhile, ed il for in python è diverso che in C, assomiglia al foreach, il for classico altro nn è che quello col metodo range(), che però genera comunque una lista (consiglio a tutti: xrange ha lo stesso utilizzo ma produce un generatore quindi + velocità)
4) per eliminare tutti i gli elif etc si potrebbe introdurre una struttura a dizionario, cosa che tuttavia nn credo sarebbe chiaramente comprensibile ad una persona alle prime armi.
 
Malex ha detto:
1)"stringa".split() funziona, solo che nn accetta un separatore vuoto, visto che per quello si può usare un generatore 50 volte più rapido
Codice:
 lista=[a for a in "stringa"]
2)il join è un metodo del tipo string, è ovvio che chiede il separatore in notazione punto

1) Vuoi mettere un cavolo di split('') con un generatore a livello di chiarezza?
2) Appunto, ma che senso ha che il join sia un metodo di string? Ha senso se fosse un metodo degli array o delle liste; segui la logica list.join(stringa) joino list con stringa, non stringa.join(list) joino stringa con list?

E' troppo dispersivo.
 
L'ho leggermente perfezionato , solo che funziona solo per la parola "aspetto", cmq il prossimo capitolo del libro che sto leggendo sono i dizionari ^^

ekkolo : http://pastebin.com/m3106e791

Man mano che vado avanti con gli argomenti lo modifico ^^
 
Stato
Discussione chiusa ad ulteriori risposte.