2015-06-24 20:41 GMT+01:00 Carpediem <i.carped...@tiscali.it>: > Ciao Alessandro, innanzitutto grazie infinite. La tua risposta non solo mi > ha risolto il problema ma mi ha aperto molti altri orizzonti: > quello sopra, è uno di questi ma, come avrai capito, sono alle prime armi > con python e lavorando per 9 ore al giorno per 6 giornia settimana, > i miei progressi sono molto lenti. Ho molte idee per la testa e provo a > metterle in pratica con quel poco che ho finora acquisito. Quanto sopra, mi > piace molto.
Ciao, sì, avevo intuito e per questo ti ho dato qualche consiglio di altro tipo :) Bene se ti è utile. > Qui non ti seguo: in realtà il mio codice prevede una ulteriore lista di > altre 65 variabili (che mi sono risparmiato dal > riportare) e sinceramente, ritengo l'insieme troppo lungo per scriverlo riga > per riga) Ok, è questione di gusti :) Comunque, dato che hai diverse stringhe composte tipo "carre 1a3", "carre 2a6", oppure "prima sestina", "seconda sestina", "prima colonna", "seconda colonna", potresti anche valutare, per risparmiare righe, di costruire quelle frasi in modo algoritmico (dove puoi). Quindi, per esempio, per le prime 3 colonne e 3 sestine puoi fare: def genera_combinazioni(parole_prima, parole_seconda): return tuple(' '.join(x) for x in product(parole_prima.split(), parole_seconda.split())) genera_combinazioni('prima seconda terza', 'prima seconda') per ottenere ('prima sestina', 'prima colonna', 'seconda sestina', 'seconda colonna', 'terza sestina', 'terza colonna') Ora, questo metodo ti può salvare qualche riga e qualche errore di battitura (o moltiplicarli :D), ma non credo sia davvero conveniente nel tuo caso. Per evitare la "bruttezza" nel codice, e anche per facilitare la traduzione in altre lingue, di solito si usa mettere tutte le stringhe in un file (uno per ogni lingua da tradurre) e, nel tuo codice, leggere quel file. Nel tuo caso, mettere le stringhe in un file semplifica molto la lettura del codice, però hai lo svantaggio di dover aver sempre dietro il file in questione. Per leggere il file ed ottenere una tupla, dove ogni riga è una stringa, basta fare: with open('file_stringhe.txt') as fp: puntate_possibili = tuple(line.strip() for line in fp) attento che usare .strip() rimuove tutti gli spazi (incluse le new line) a destra e a sinistra della stringa, ti dico questa cosa, ma probabilmente ti va benissimo così :) > E qui casca l'asino!!!! L'errore era proprio questo e a questo punto non si > trattava quindi di un errore > di semantica. Non riesco ancora bene a spiegarmi il perchè al primo > passaggio in effetti il valore della > variabile aumenti di una unità (così come da me voluto) e poi tale valore > resti invariato al passsaggio successivo Il punto è che la variabile viene messa *sempre* a 1 da quel codice, quindi se devi passare da 0 a 1 il codice funziona, ma se devi passare da 1 a 2 o da N a N+1, non funzionerà :) > nè capisco perchè python preveda, a questo punto, l'utilizzo di una forma di > scrittura così come involontariamente > io l'abbia scritta. Ad ogni modo, per non sbagliare, +1 = forever Aspetta, forse ho capito male, ma "+1 =" è sbagliato in python: attento a non confondere il "+" di "+1" col "segno positivo" (contrapposto al "segno negativo" dei numeri -1, -2, -3...), al fatto che l'operatore "+=" è composto da due caratteri. Scrivere (metto gli spazi per farti capire quali sono le entità in gioco) A += B è come scrivere A = A + B Se scrivi A + = B hai errore: "+=" è un operatore vero e proprio e deve essere scritto attaccato. Invece, il "+" che precede un numero per indicare il segno positivo, può essere separato. Scrivere A += + B ha perfettamente senso, e il secondo "+" davanti a B è solo ridondante... Fondamentalmente, python permette di scrivere A =+1 perché "+1" è un numero, e lo spazio tra l'uguale e il numero "+1" non ha importanza :) "A=1", "A = 1", "A=+ 1", "A = + 1" son tutte cose uguali. Insomma, tu devi scrivere qualcosa come [variabile] [operatore] [valore] variabile è uscita_manque operatore è += (senza spazi) valore è 1 (o +1, è indifferente) se scrivi "uscita_manque +1 =" ottieni [variabile] [valore] [operatore] che in Python non funziona. Comunque, ti ho scritto 'sta spataffiata perché hai scritto "+1 =", ma magari avevi già capito. Se vuoi toglierti ogni dubbio usa "variabile = variabile + valore" e vivi felice :D Ciauz ~Ale _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python