LinuxLudus: Pytoni e bottiglie
Daniele Zambelli
daniele.zambelli@inwind.it
Ven 13 Giu 2008 09:15:05 CEST
Alle giovedì 12 giugno 2008, Valerio Pachera ha scritto:
> Ho trovato un po' di tempo per studiare le tue modifiche.
> Ne ho fatta qualche altra (vedi file allegato) e ho qualche domanda:
>
>
> if pot_name.lower() == "quit":
> return None, None
>
> perchè due volte None?
La funzione control_input viene usata per instanziare 2 identificatori
(caricare 2 variabili):
p0, p1 = control_input(pots)
restituisce quindi 2 valori anche quando termina indicando che è stato
inserito "quit".
Non è l'unica soluzione ma è quella che preferisco.
> def control_input(pots):
> ho inserito il messaggio "inserisci i contenitori" dopo ogni errore
> per una questione di "grafica".
> Il messaggio l'ho inserito nell'array messages["inserisci"]
>
>
> def instructions():
> Ho allineato il messaggio delle capienza con i successivi:
> print "\t\t\t\tA\tB\tC"
> print "capienza\t\t\tA: 80\tB: 50\tC: 30"
Questo è un buon intervento.
> while True:
> ...
> if p0==None: break
> #questo controllo è inutile poichè la funzione control_input(pots)
> restituisce un messaggio se la stringa passata è vuota ( != 2)
Non proprio. La funzione control_input restituisce (None, None), non quando la
stringa inserita è vuota, in quel caso il ciclo while non termina.
Viene restituito (None, None), quando l'utente scrive "quit". In questo caso
anche il cilco principale deve terminare immediatamente. Senza questa
istruzione, quando l'utente scrive "quit", il programma termina in modo
irregolare (con un errore).
> Domanda:
> # ---8<---
Era solo un segno per indicare dove iniziava e terminava il codice, per
separarlo dal messaggio. Mai visto in nessun codice Python!
> Complimenti, il programma riscritto in questo modo è più breve e più
> elegante. Alcune delle cose da te usate non le ho ancora studiate (ad
> esempio il dizionario di istanze o gli strani %s).
Un dizionario lega ad oggetti immutabili, come stringhe (nel nostro caso) o
numeri o tuple, oggetti qualunque. Quindi, visto che in base alla stringa
immessa doveva essere eseguito il metodo di un oggetto, mi è sembrata la
soluzione più ovvia legare, in un dizionario, la stringa all'oggetto.
Gli strani %s sono dei segnaposti usati nella costruzione-formattazione di
stringhe:
>>> s="Questa %s contiene %s %s" % ("stringa", 3, "'segnaposti'")
>>> s
"Questa stringa contiene 3 'segnaposti'"
Io trovo comodo formattare le stringhe in questo modo. Questo metodo fornisce
diverse possibilità.
Potrebbe essere interessante memorizzare in una lista le mosse effettuate dal
giocatore.
Ciao
--
Daniele www.fugamatematica.blogspot.com
giusto!
_o) (o_ (o_ _o) nel verso
-./\\ //\.- //\ /\\ forse è perché non guardiamo le cose
_\_V V_/_ V_/ \_V Quando non ci capiamo,
Maggiori informazioni sulla lista
linuxludus