Accademia:Log 2011 02 09
Vai alla navigazione
Vai alla ricerca
(09:34:39 PM) risca: allora, ritardatari a parte, PARTIAMO? (09:34:45 PM) pinolo: ok (09:34:50 PM) nodo: però in python è meglio fare prima il while (09:34:58 PM) |Wolf|: perché? (09:34:59 PM) nodo: non so se hai presente il for come è fatto XD (09:35:09 PM) risca: giusta osservazione (09:35:15 PM) fiox [~fiox@Azzurra=1E1B72F7.11-87-r.retail.telecomitalia.it] entered the room. (09:35:22 PM) fiox: sera (09:35:25 PM) risca: allora per prima cosa ognuno si apra la sua shell di python3 (09:35:28 PM) nodo: ciao fiox (09:35:30 PM) risca: ciao fiox (09:35:40 PM) amosse [~Mibbit@95.235.Azzurra=2D17092F] entered the room. (09:35:40 PM) Ernestus: ciao fiox (09:35:41 PM) fiox: vorrei seguirvi ma al momento non posso (09:35:46 PM) |Wolf|: cmq if for e while si spiegano molto bene con i diagrammi di flusso (09:36:01 PM) fiox: leggerò i log quando ho tempo però :D (09:36:15 PM) risca: fiox: la chat ed il materiale prodotto sarà messo su http://guide.debianizzati.org/index.php/Accademia:Python_3 (09:36:20 PM) fiox: perfetto (09:36:26 PM) Ernestus: risca il terminale condiviso? (09:36:45 PM) risca: purtroppo non ancora per questa volta siccome ho avuto parecchio da fare con il wiki (09:36:59 PM) risca: inizierei con il riprendere quanto svolto la scorsa volta, ok? (09:37:06 PM) nodo: ok (09:37:07 PM) pinolo: ok (09:37:13 PM) Ernestus: ti sei fatto un mazzo!! potevo aiutarti io così prendevo familiarità col wiki (09:37:13 PM) risca: COSA VI RICORDATE, NON VI TORNA CHIARO? (09:37:40 PM) Ernestus: ho una domanda riguardo a un argomento in preparazione di oggi (09:37:44 PM) pinolo: io avrei una domanda (09:37:54 PM) risca: dimmi (09:38:05 PM) pinolo: vai ernestus, tanto la mia riguarda un altra cosa (09:38:27 PM) Ernestus: che cambia tra Integer Division e Remainder (modulo( (09:38:30 PM) Ernestus: ? (09:39:21 PM) risca: hai qualche esempio sotto mano? (09:39:24 PM) Ernestus: preso da qua http://en.wikibooks.org/wiki/Non-Programmer%27s_Tutorial_for_Python_3/Hello,_World (09:39:27 PM) Ernestus: nella tabella (09:39:28 PM) pinolo: l'integer division è la divisione senza resto (09:39:35 PM) pinolo: divisione per interi (09:39:51 PM) risca: giusto (09:39:55 PM) pinolo: 9 / 2 = 4 (09:39:59 PM) pinolo: giusto? (09:40:04 PM) risca: perfetto (09:40:05 PM) |Wolf|: come si faceva alle elementari, 9/2 = 4 caon il resto di uno (09:40:11 PM) risca: basta provare da shell (09:40:13 PM) |Wolf|: caon? (09:40:18 PM) |Wolf|: con* (09:40:30 PM) risca: >>> 17//4 (09:40:30 PM) risca: 4 (09:40:35 PM) |Wolf|: invece alle medie 9 / 2 = 4.5 (09:40:44 PM) risca: >>> 17//4 (09:40:44 PM) risca: 4 (09:40:48 PM) Ernestus: perchè risca (09:40:51 PM) risca: >>> 18//4 (09:40:51 PM) risca: 4 (09:41:13 PM) Ernestus: sarebbe una radice senza resto? (09:41:18 PM) pinolo: si ma la divisione per interi non può avere cifre decimali (09:41:19 PM) risca: è la divisione senza considerare la parte decimale (09:41:28 PM) pinolo: è appunto una divisione per interi (09:41:39 PM) risca: il reminder invece è l'esatto opposto (09:41:46 PM) risca: indica quanto è il resto (09:41:53 PM) pinolo: ok (09:42:02 PM) risca: ad esempio: (09:42:03 PM) risca: >>> 18%4 (09:42:03 PM) risca: 2 (09:42:13 PM) risca: infatti il resto è proprio 2 (09:42:22 PM) Ernestus: capito, grazie (09:42:37 PM) risca: questo mi ha dato una bellissima idea (09:42:44 PM) |Wolf|: divmod? (09:42:49 PM) pinolo: io avrei un altra domanda ma non riguarda le variabili (09:42:59 PM) nodo: scusate io devo scappare :( mi dispiace, un imprevisto, leggerò sicuramente i log (09:43:00 PM) nodo: bb (09:43:10 PM) pinolo: ciao nodo (09:43:12 PM) risca: ok, alla prossima nodo (09:43:27 PM) Ernestus: ciao nodo (09:43:36 PM) nodo left the room (quit: Quit: http://www.mibbit.com ajax IRC Client). (09:43:43 PM) risca: pinolo e |Wolf|, quali sono le vostre domande, prima di dimenticarcele... (09:44:17 PM) pinolo: lo sha-bang che noi inseriamo ad ogni inizio script, per noi che utilizziamo linux è in un modo, ma per gli utenti windows o mac andrà cambiato? (09:44:44 PM) risca: sì, la sha-bang è del mondo *nix (09:44:48 PM) |Wolf|: viene semplicemente ignorato dagli altri (09:44:53 PM) |Wolf|: è visto come commento (09:45:14 PM) risca: per gli altri OS funziona in modo diverso, penso che W$ guardi all'estensione (09:45:15 PM) |Wolf|: io cmq in genere non lo metto (09:45:28 PM) |Wolf|: eseguo gli script direttamente con python script.py (09:45:37 PM) pinolo: quindi il suo utilizzo principale qual'è? (09:45:41 PM) risca: la sha-bang viene usate ad esempio anche per script di bash (09:45:50 PM) risca: #!/bin/bash (09:46:02 PM) risca: è per avere uno script autoeseguibile (09:46:12 PM) risca: altrimenti deve essere invocato con il programma (09:46:13 PM) pinolo: ok (09:46:17 PM) risca: che lo esegue (09:46:25 PM) risca: _____________________________________________________________________________- (09:46:25 PM) pinolo: perfetto (09:46:27 PM) |Wolf|: cmq ci sono diversi shebang che si possono usare, e gente che litiga da anni per decidere il migliore (09:46:37 PM) |Wolf|: per quello preferisco evitare (09:46:45 PM) risca: vi ricordate di quando eravate alle elementari? (09:46:55 PM) pinolo: sì (09:47:00 PM) Ernestus: si... (09:47:01 PM) pinolo: all'incirca (09:47:23 PM) risca: la maestra diceva: scivi un numero x e y, quante volta y sta in x e con quale resto? (09:47:23 PM) pinolo: sono passati diversi anni (09:47:29 PM) risca: scrivi* (09:47:52 PM) risca: bene, proviamo a fare uno script che ci permetta proprio di rispondere a quella domanda (09:47:54 PM) risca: ok? (09:48:12 PM) pinolo: ok (09:48:49 PM) risca: allora tenetevi aperto sul browser anche il seguente link: http://openetherpad.org/O39OAgcU0I (09:48:56 PM) risca: voi da cosa iniziareste? (09:50:33 PM) risca: io direi che per prima cosa dovremmo definire (giusto amosse) la variabili x e y (09:50:50 PM) pinolo: potremmo farle inserire dall'utente (09:50:56 PM) risca: perfetto! (09:51:02 PM) risca: come? (09:51:10 PM) risca: modifica tu pinolo (09:51:52 PM) |Wolf|: ogni programma si divide in genere in 3 parti: input, elaborazione, output (09:51:58 PM) JumX [~Mibbit@Azzurra=3615CD96.41-79-r.retail.telecomitalia.it] entered the room. (09:52:16 PM) JumX: Buonasera a tutti .. scusate per il ritardo (09:52:17 PM) |Wolf|: nella parte di input dei dati vengono inseriti, dall'utente, leggendoli da un file, dalla rete, da un db o da altrove (09:52:22 PM) risca: ecco, permettetemi una osservazione: siamo alle elementari, quindi si lavora esclusivamente su interi! (09:52:30 PM) |Wolf|: poi vengono elaborati per ottenere un risultato (09:52:42 PM) risca: chi modifica la variabile scritta da pinolo per avere un intero? (09:52:44 PM) Ernestus: float cosa significa? (09:52:51 PM) |Wolf|: che poi nella fase di output viene restituito, quindi printato a schermo, salvato su un file, inviato sulla rete, salvato in un db (09:52:59 PM) |Wolf|: float -> numero con la virgola (09:53:03 PM) risca: floatTANTE, che ha la virgola (09:53:11 PM) groll: JumX: http://openetherpad.org/O39OAgcU0I (09:53:27 PM) JumX: grazie (09:54:06 PM) pinolo: ok? (09:54:12 PM) risca: allora cosa deve essere usato al posto di FLOAT, dato che non vogliamo la virgola? (09:54:20 PM) pinolo: ho modificato (09:54:42 PM) Ernestus: int (09:54:44 PM) Ernestus: ? (09:54:47 PM) risca: scusa ho fatto io il danno (09:54:47 PM) pinolo: no (09:54:49 PM) risca: giusto int (09:55:02 PM) pinolo: ok ok riscrivi tu? =) (09:55:07 PM) risca: ok (09:55:40 PM) pinolo: come si chiama? (09:55:43 PM) pinolo: dividendo? (09:55:55 PM) risca: penso di sì (09:56:21 PM) |Wolf|: mi sa che devo andare (09:56:26 PM) risca: direi che è perfetto (09:56:30 PM) risca: ciao |Wolf| (09:56:37 PM) amosse: ciao (09:56:38 PM) pinolo: ciao (09:56:43 PM) risca: permettetemi pero un abbellimento (09:57:43 PM) groll: uhm direi che potremmo sfruttare questo esempio per introdurre gli if e i float (09:57:46 PM) |Wolf|: il coding non è obbligatorio (09:57:53 PM) |Wolf|: metterlo male non fa (09:58:25 PM) amosse: wolfcoding? (09:58:27 PM) pinolo: è ma te sei un perfezionista! (09:58:37 PM) Ernestus: cosa sono %s e %d (09:58:37 PM) Ernestus: ? (09:58:45 PM) risca: Ottima domanda Ernestus (09:58:46 PM) pinolo: richiami a variabili? (09:58:50 PM) |Wolf|: %s -> stringhe; %d -> interi (09:58:53 PM) pinolo: inseriti dopo (09:58:57 PM) |Wolf|: risca, ma fare format? (09:59:11 PM) risca: Cosa intendi con format? (09:59:11 PM) |Wolf|: il % per lo string formatting è semideprecato (09:59:20 PM) |Wolf|: ''.format() (09:59:23 PM) risca: non lo sapevo (09:59:40 PM) risca: come sarebbe con format? (09:59:52 PM) pinolo: chiamiamolo Maestra.py (10:00:05 PM) risca: ok. salvatevelo e provatelo, ok? (10:01:45 PM) pinolo: ok (10:01:47 PM) |Wolf|: ho messo su etherpad (10:01:50 PM) pinolo: funziona (10:02:14 PM) pinolo: ora prova anche con il format wolf (10:02:17 PM) risca: a me no... (10:02:27 PM) pinolo: anche se non ne ho trovato traccia sulle guide (10:02:50 PM) pinolo: no a me funziona il primo scritto da noi. Quello con il format non l'ho provato (10:03:09 PM) JumX: Chiedo scusa ma come lo provate? (10:03:10 PM) |Wolf|: risca, metti i numeri se hai 3.1 (10:03:18 PM) Ernestus: ma se io uso %s e ci sono due o più stringhe, quale di queste utilizza?? (10:03:21 PM) risca: mi ero perso una parentesi (10:03:39 PM) risca: un attimo ernestus e poi passiamo proprio a questo (10:03:40 PM) pinolo: creando un file py in un editor di testo (10:03:43 PM) groll: Ernestus: vanno in ordine (10:04:03 PM) pinolo: JumX (10:04:03 PM) |Wolf|: Ernestus, per ogni % prende uno degli argomenti (10:04:09 PM) |Wolf|: e devi avere tanti % quanti argomenti (10:04:31 PM) pinolo: JumX: http://guide.debianizzati.org/index.php/Accademia:Quale_editor_di_testo (10:04:34 PM) |Wolf|: Ernestus: 'primo %s, secondo %d, terzo %d' % ('uno', 2, 3) (10:04:50 PM) |Wolf|: il primo arg ('uno') va al primo %, cioè %s (10:05:00 PM) |Wolf|: il secondo arg va al %d (10:05:06 PM) |Wolf|: e il terzo all'ultimo %d+ (10:05:11 PM) |Wolf|: senza + (10:05:23 PM) pinolo: ok (10:05:25 PM) Ernestus: faccio un prova dopo, ma credo di aver capito (10:05:30 PM) risca: vorrei sottolineare a tutti il seguente URL: http://www.ibm.com/developerworks/linux/library/l-python3-1/ <-- qui viene spiegato format (10:06:16 PM) amosse: scusate il riferimento per i numeri float qual'é? (10:06:18 PM) |Wolf|: Ernestus, dipende solo dall'ordine (10:06:41 PM) pinolo: float(input()) (10:06:52 PM) |Wolf|: Ernestus se fai 'primo %s, secondo %d, terzo %d' % ('uno', 'due', 3) dà errore perché il %d si aspetta un int e trova una stringa (10:07:17 PM) |Wolf|: Ernestus, però puoi fare 'primo %s, secondo %d, terzo %d' % (1, 2, 3), perché %s converte tutto a stringa (10:07:31 PM) Ernestus: tutto chiaro |Wolf| (10:07:46 PM) pinolo: il format è utile ma forse io mi trovo meglio con il metodo tradizionale (10:08:01 PM) pinolo: almeno penso sia il metodo tradizionale... (10:08:09 PM) risca: direi di approfittarne per fare qualche esempio tra il format ed il metodo "tradizionale" (10:08:13 PM) risca: ok? (10:08:16 PM) pinolo: ok (10:08:26 PM) amosse: ok (10:08:29 PM) |Wolf|: il format è più polito e potente, ma il % è più comodo in genere (10:08:41 PM) |Wolf|: io al corso che ho fatto non l'ho neanche spiegato il % (10:09:06 PM) pinolo: ah ok (10:09:09 PM) spirit [~spirit@Azzurra-C3C291C.104-82-b.business.telecomitalia.it] entered the room. (10:09:19 PM) groll: il % poi va anche contro lo spirito di python che capirete più in la (10:09:40 PM) risca: >>> print("questo è un %s, un numero %d, ma questi? %r %r" % ('testo',3,'testo1',4)) (10:10:01 PM) risca: provate pure, vi è tutto chiaro? (10:11:27 PM) risca: allora? (10:11:30 PM) JumX: Ma come provare uno script con Geany ? L'ho trascritto ma non so come eseguirlo (10:11:45 PM) risca: no, in questo caso provate su shell (10:12:02 PM) pinolo: vai su Genera>Set Build Command (10:12:17 PM) JumX: si (10:12:24 PM) Stemby: eccomi (10:12:24 PM) JumX: poi ? (10:12:33 PM) JumX: Ciao Stemby (10:12:38 PM) Stemby: 5 minuti che mi aggiorno (10:12:44 PM) pinolo: nel campo execute scrivi (10:12:45 PM) Stemby: voi continuate (10:13:05 PM) risca: ciao Stemby (10:13:13 PM) pinolo: python3.1 "%f" (10:13:16 PM) tux_errante [~alessandr@Azzurra-46650E84.Red-88-3-143.dynamicIP.rima-tde.net] entered the room. (10:13:33 PM) pinolo: ci sei JumX? (10:14:16 PM) JumX: fatto , poi ? (10:14:17 PM) pinolo: poi quando hai salvato lo script con estensione .py premi F5 e dovrebbe andare (10:14:19 PM) |Wolf|: devo andare (10:14:20 PM) |Wolf|: buon corso (10:14:27 PM) groll: ciao (10:14:28 PM) risca: ciao |Wolf| (10:14:30 PM) Ernestus: ciao |Wolf| (10:14:37 PM) pinolo: devo andare anche io ragazzi, mi dispiace (10:14:43 PM) JumX: Ciao wolf (10:14:48 PM) pinolo: mi aggiornerò con gli script (10:14:50 PM) JumX: Ciao Pinolo (10:14:53 PM) groll: ciao (10:14:55 PM) pinolo: Ciao a tutti (10:14:57 PM) risca: ok, buona lettura degli script (10:15:02 PM) pinolo left the room (quit: Quit: Sto andando via). (10:15:49 PM) risca: JumX, tutto a posto? (10:16:10 PM) JumX: Geany mi dice che è Impossibile trovare il terminale "xterm" (verificare il percorso per il terminale nelle preferenze) (10:16:39 PM) risca: JumX, se hai problemi con Geany passa direttamente alla shell (10:16:43 PM) tux_errante: devi prima installarlo (10:16:45 PM) risca: ed usa kate per scrivere (10:16:50 PM) groll: oppure usa gedit o kate (10:16:50 PM) tux_errante: buonasera (10:16:55 PM) groll: che hanno il terminale integrato (10:17:28 PM) JumX: usavo Gedit ma mi hanno consigliato Geany (ho visto in accademia) (10:17:38 PM) groll: tanto per ora non cambia molto (10:17:50 PM) groll: va bene anche nano :| (10:17:58 PM) JumX: Risca consiglia VIM ... e io non so a chi ascoltare ?!??!?!?! (10:18:08 PM) JumX: groll dice nano ?!?!? (10:18:23 PM) risca: se hai letto l'introduzione, ho ben spiegato che è un fattore molto soggettivo (10:18:25 PM) JumX: Confusion :s (10:18:30 PM) tux_errante: JumX: l'ho scritto io, è molto soggettivo com è scritto, però ha alcuni aiuti come il completamento dei nomi delle funzioni e appunto il fatto di eseguire uno script con un click (10:18:31 PM) risca: prova, prima o poi lo capirai da solo (10:18:32 PM) groll: usa gedit (10:18:48 PM) Ernestus: risca, come si usa vim? (10:18:53 PM) groll: poi più avanti avrai abbastanza nozioni per sceglierti l'editor o l'ide (10:18:54 PM) risca: tux_errante: le stesso cose sono presenti con vim (10:19:00 PM) tux_errante: ah ok (10:19:04 PM) tux_errante: perfect (10:19:11 PM) groll: Ernestus: leggendoti un manuale di millemila pagine (10:19:14 PM) risca: io lo uso da console con kayacuk (10:19:19 PM) risca: (o qualcosa di simile) (10:19:30 PM) risca: però c'è anche la versione grafica con gVIM (10:20:14 PM) risca: se ci siamo riprese vorrei spiegare una cosa molto complessa, che sarà l'inizio di tutto (10:20:24 PM) JumX: Ok fermi tutti per ora usero il terminale o gedit poi approfondiro geany o vim (10:20:29 PM) Ernestus: groll, è quello il problema... (10:20:43 PM) risca: posso iniziare? (10:20:49 PM) JumX: si (10:21:01 PM) Ernestus: vai risca, scusa (10:21:07 PM) risca: allora, abbiamo detto che python è un linguaggio ad oggetti (10:21:21 PM) risca: infatti tutto in python è (dovrebbe essere) un oggetto (10:21:46 PM) risca: citando More+ "tutto è un oggetto, anche la mia ragazza.." (10:22:09 PM) risca: allora vediamo una cosa semplice ma che introduce bene il concetto (10:22:12 PM) risca: ________________ (10:22:34 PM) risca: prima qualcuno ha detto che %s %d %r non sono conformi ai principi di python (10:22:45 PM) risca: infatti questo è vero. (10:23:00 PM) risca: Vediamo l'esempio che abbiamo usato prima nello script: (10:23:13 PM) risca: print("questo è un %s, un numero %d, ma questi? %r %r" % ('testo',3,'testo1',4)) (10:23:51 PM) risca: Se vi chiedessi di indicarmi se c'è uno oggetto nel codice che vi ho indicato saresti in grado di trovarlo? (10:23:53 PM) risca: _____________________________- (10:23:58 PM) risca: rispondete pure (10:24:46 PM) JumX: %s %d %r%r"% (10:24:52 PM) risca: no (10:24:56 PM) risca: purtroppo (10:25:03 PM) risca: e questa è la fregatura (10:25:12 PM) risca: non c'è _nessun_ oggetto! (10:25:18 PM) risca: Quella è una funzione (10:25:22 PM) risca: _______________- (10:25:27 PM) risca: qual è la funzione? (10:25:35 PM) amosse: print() (10:25:39 PM) risca: giusto (10:25:45 PM) risca: e l'argomento della funzione? (10:25:47 PM) JumX: print (10:25:57 PM) JumX: quello tra parentesi (10:26:01 PM) risca: perfetto (10:26:11 PM) risca: avete capito benissimo cos'è una funzione (10:26:13 PM) risca: ___________________- (10:26:17 PM) tux_errante: e cosa cambierebbe senza l'utilizzo dei parametri speciali? dal punto di vista degli oggetti (10:26:43 PM) risca: quello è un richiamo, niente di particolare (10:26:53 PM) risca: PERÒ adesso entriamo nella logica ad oggetti (10:26:54 PM) amosse: avrei dovuto mettere gli oggetti stringa (10:27:22 PM) risca: Facciamo diventare l'argomento (la sua parte principale almeno) un oggetto. (10:27:29 PM) risca: Come si fa? (10:27:39 PM) risca: riuscireste a scriverlo come un oggetto? (10:28:03 PM) amosse: stringa = "...." (10:28:13 PM) risca: risposta corretta (10:28:19 PM) risca: la stringa è un oggetto (10:28:24 PM) risca: ________________________ (10:28:26 PM) JumX: quindi un oggetto è anche una variabile (10:28:49 PM) risca: sì, un oggetto è tutto quello che può essere rappresentato in una variabile (10:28:52 PM) risca: ______________________________ (10:29:01 PM) risca: adesso torniamo alla funzione print (10:29:13 PM) risca: abbiamo l'oggetto ("......") (10:29:23 PM) risca: e vogliamo interagire con quest'ultimo (10:29:25 PM) risca: _____________ (10:30:02 PM) risca: In python per interagire con un oggetto si può usare la seguente sintassi: oggetto.fai-qualcosa (10:30:17 PM) risca: Ecco subito l'esempio chiarificatore: (10:30:29 PM) risca: "questo è un {0}, un numero {1}, ma questi? {2} {3}".format('testo',3,'testo1',4) (10:30:33 PM) risca: ___________________________________- (10:30:41 PM) risca: provatelo pure nella vostra shell (10:30:45 PM) Stemby: risca: non son d'accordo che non ci sono oggetti (10:30:48 PM) Stemby: io ne vedo 2 (10:30:52 PM) risca: è chiara la sintassi? (10:31:27 PM) Ernestus: per forza la graffa? (10:31:41 PM) groll: io 6 (10:31:45 PM) risca: sì, con format ci vuole la graffa (10:32:29 PM) Stemby: groll: intendevo nella formattazione delle stringhe (con %) (10:32:43 PM) groll: si appunto (10:32:48 PM) Stemby: lì di oggetti ce ne sono 2: la stringa, e la tupla (10:33:02 PM) Stemby: però le tuple non le abbiamo ancora fatte (10:33:05 PM) risca: sì, ma sono usati come argomento di una funzione (10:33:11 PM) groll: anche la funzione stessa (10:33:17 PM) Ernestus: in che senso groll (10:33:19 PM) Ernestus: ? (10:33:29 PM) groll: in python tutto è un oggetto anche le funzioni (10:33:35 PM) Stemby: hai ragione (10:33:39 PM) risca: con format invece abbiamo proprio la formattazione classica con cui si utilizzano gli oggetti (10:33:46 PM) risca: (il punto) (10:33:49 PM) Stemby: e poi anche le variabili che formano la tupla (10:33:59 PM) Stemby: in effetti di oggetti ce n'erano parecchi (10:34:07 PM) groll: Stemby: già :P (10:34:30 PM) Stemby: risca: questo è vero (10:34:47 PM) Stemby: però la formattazione delle stringhe è più comoda a mio avviso (10:34:54 PM) Stemby: è per quello che convivono entrambe (10:35:10 PM) Stemby: ok (10:35:21 PM) Stemby: mi permettete di commentare quanto c'è sul pad^ (10:35:23 PM) Stemby: ? (10:35:26 PM) risca: giusto, però mi sembrava fosse il momento di introdurre l'annotazione del punto (10:35:29 PM) risca: fai pure (10:35:35 PM) risca: http://openetherpad.org/O39OAgcU0I (10:35:37 PM) Stemby: allora: (10:35:42 PM) Stemby: riga 1) ok (10:35:53 PM) Stemby: come detto precedentemente, ci sono varie possibilità (10:36:01 PM) Stemby: ma quella è a mio avviso la migliore (10:36:14 PM) Stemby: e dovrebbe funzionare anche su Mac (10:36:22 PM) Stemby: (MacOS è Unix) (10:36:32 PM) Stemby: i winari invece si attaccano (10:36:48 PM) Stemby: (quella riga su win viene ignorata) (10:36:57 PM) Stemby: riga 2: io la toglierei (10:37:15 PM) Stemby: aveva poco senso in py2, ne ha ancor meno in py3 (10:37:43 PM) Stemby: ovvero: usiamo nei sorgenti solo ASCII, ed evitiamo così problemi di codifica alla fonte (10:37:58 PM) Stemby: (niente accentate o caratteri strani) (10:38:11 PM) Stemby: ((solo i caratteri che si trovano nella tastiera USA) (10:38:13 PM) Stemby: ) (10:38:32 PM) Stemby: riga 4: elimino uno spazio inutile (10:38:45 PM) Stemby: visto? (10:38:49 PM) Stemby: prima di \n (10:38:53 PM) JumX: si (10:39:05 PM) JumX: la riga 2 toglila (10:39:14 PM) Stemby: così anche nelle righe successive (10:40:30 PM) pinolo [~pinolo@Azzurra=205D5FA9.49-151.net24.it] entered the room. (10:40:38 PM) pinolo: ce l'ho fatta a tornare (10:40:41 PM) Stemby: ultime righe: (10:40:51 PM) Stemby: ho eliminato il carattere "è" (10:40:58 PM) Stemby: per il motivo che ho detto sopra (10:41:05 PM) pinolo: qual'è la pagina dello script? (10:41:12 PM) Stemby: evitiamo caratteri non ASCII (10:41:17 PM) risca: Stemby: secondo me come testo si può tenere l'accento (10:41:18 PM) Stemby: http://openetherpad.org/O39OAgcU0I (10:41:28 PM) Ernestus: ma bisogna inserire .format nel secondo blocco? (10:41:28 PM) Stemby: risca: è nei sorgenti (10:41:31 PM) Stemby: non va bene (10:41:44 PM) Stemby: se fosse nell'input da tastiera, no problem (10:41:47 PM) Ernestus: faccio una copia per evitare danni (10:41:51 PM) Stemby: il problema è nei sorgenti (10:41:54 PM) risca: non ci vedo nulla di male nelle stringhe, specialmente perchè siamo italiani (10:42:18 PM) Stemby: risca: prendila come netiquette (10:42:21 PM) Stemby: ergo: (10:42:29 PM) Stemby: nei sorgenti NON si scrive in italiano (10:42:40 PM) Stemby: (si scrive SEMPRE in iglese) (10:42:51 PM) Stemby: la localizzazione si fa in un secondo tempo (10:43:02 PM) Stemby: se prendiamo questa sana abitudine da subito, è meglio (10:43:17 PM) Stemby: *inglese (10:43:17 PM) Ernestus: risca, non vuole le graffe? (10:43:21 PM) groll: comunque prima di andare a parlare dei metodi e delle classi partirei dalle funzioni (10:43:29 PM) risca: format è comunque una funzione (10:43:38 PM) Stemby: groll: dipende (10:43:41 PM) groll: o ancora meglio dagli if e una panoramica sui tipi dinamici (10:43:41 PM) Ernestus: vero! (10:43:42 PM) risca: le funzioni si scrivono: funzione() (10:43:49 PM) Stemby: alcuni metodi possono essere anticipati (10:43:58 PM) Stemby: tipo quelli delle classi standard (10:43:59 PM) groll: si però almeno poniamo le basi (10:44:07 PM) groll: altrimenti bisogna sempre stare sul vago (10:44:07 PM) Ernestus: l'argomento non va tra parentesi... a meno che non sia una stringa, giusto? (10:44:07 PM) risca: Stemby, iniziamo con if e while? (10:44:09 PM) Stemby: (i metdi delle stringhe, per esempio) (10:44:27 PM) Stemby: per me ok (10:44:33 PM) amosse: ok (10:44:34 PM) Stemby: chiaro per tutti? (10:44:34 PM) groll: si potrebbe modificare lo script per introdurre un if e l'uso dei tipi dinamici (10:44:53 PM) risca: sì, però io inizierei dall'aprire la shell (10:45:12 PM) risca: e vedere cos'è una variabile booleana (10:45:22 PM) risca: ve le ricordate dall'ultimo incontro? (10:45:29 PM) Stemby: domanda: (10:45:39 PM) pinolo: ok (10:45:49 PM) Stemby: chi sa spiegare in termini semplici il concetto di "algoritmo"? (10:46:04 PM) tux_errante: mmm (10:46:16 PM) tux_errante: l'algoritmo è semplicemente il modo di risolvere un problema (10:46:22 PM) Stemby: ottimo! (10:46:22 PM) tux_errante: il modo di fare una cosa (10:46:27 PM) Stemby: esatto (10:46:27 PM) tux_errante: come allacciarsi le scarpe (10:46:30 PM) tux_errante: fare la spesa (10:46:36 PM) tux_errante: o il nodo alla cravatta (10:46:36 PM) Stemby: quasi (10:46:45 PM) Stemby: ah, sì (10:46:49 PM) tux_errante: così lo spiegai ad un amico di mio padre (10:46:51 PM) tux_errante: e capì (10:46:52 PM) tux_errante: hehe (10:46:56 PM) Stemby: diciamo che per noi molte cose sono scontate (10:46:58 PM) JumX: applicare metodo per la risoluzione di problemi (10:47:14 PM) Stemby: al computer non puoi dire: fai il nodo della cravatta (10:47:28 PM) Stemby: ad un umano sì (10:47:39 PM) Stemby: (magari non è capace neppure l'umano) (10:47:50 PM) risca: allora è meglio programmare un umano (10:48:00 PM) Stemby: la cosa può essere svolta (almeno in teoria" da un robot (10:48:00 PM) tux_errante: (io non sono capace) (10:48:12 PM) pinolo: neanche io (10:48:23 PM) Stemby: ma bisogna dirgli dettagliatamente ogni passaggio (10:48:33 PM) Stemby: esempio: (10:48:45 PM) Stemby: fare la spesa siamo capaci tutti, no? (10:48:52 PM) pinolo: sì (10:48:58 PM) amosse: ok (10:48:58 PM) pinolo: quello sì (10:49:12 PM) Stemby: se dico a pinolo: vai a comprare il pane, lo fa (10:49:17 PM) JumX: Esci di casa - chiudi la porta scendi le scale .... . . . .. . . .. (10:49:24 PM) Stemby: se lo dico al mio robot, no (10:49:24 PM) pinolo: se mi dai i soldi sì (10:49:33 PM) Stemby: JumX: quasi (10:50:00 PM) Stemby: senz'altro a basso livello bisogna essere molto più dettagliati (10:50:11 PM) pinolo: ok (10:50:16 PM) Stemby: immaginando che sia su ruote (10:50:25 PM) Stemby: e che sia già orientato verso la porta: (10:50:36 PM) Stemby: il primo comando è "avanti" (10:50:38 PM) pinolo: andare avanti (10:50:38 PM) Stemby: ok? (10:50:43 PM) Stemby: esatto (10:50:49 PM) pinolo: fermarsi alla porta (10:50:51 PM) Stemby: poi arriva alla porta (10:50:58 PM) Stemby: pinolo: dipende (10:51:08 PM) Stemby: se la porta è già aperta, può proseguire (10:51:16 PM) pinolo: ah, hai ragione (10:51:21 PM) Stemby: e qui entra in gioco l'IF (10:51:22 PM) pinolo: e lì entra l'if (10:51:28 PM) pinolo: preciso (10:51:33 PM) Stemby: ottimo, vedo che capiamo (10:51:40 PM) Stemby: quindi, il pseudocodice: (10:51:53 PM) pinolo: lo pseudocodice (10:52:10 PM) Stemby: IF porta=chiusa THEN stop (10:52:17 PM) Stemby: giusto? (10:52:24 PM) pinolo: ok (10:52:27 PM) Stemby: se la porta è aperta, fermati (10:52:36 PM) JumX: ok (10:52:39 PM) pinolo: no (10:52:43 PM) Stemby: no, ho ssbagliato (10:52:46 PM) Stemby: volevo dire (10:52:51 PM) Stemby: se la porta è chiusa, fermati (10:52:52 PM) pinolo: ok (10:53:17 PM) Stemby: ovviamente se la porta invece è aperta, quella riga del programma viene saltata (ignorata) (10:53:24 PM) pinolo: e quindi aprila (10:53:33 PM) JumX: else ? (10:53:41 PM) Stemby: l'else non serve (10:53:42 PM) pinolo: prosegui (10:53:46 PM) Stemby: ci sono solo 2 possibilità (10:53:52 PM) Stemby: aperta/chiusa (10:54:07 PM) pinolo: ok (10:54:12 PM) Stemby: quindi: se la porta è chiusa, parte un pezzo di codice (10:54:16 PM) pinolo: solo la prima riga successiva (10:54:21 PM) Stemby: (stop, apri la porta, ecc.) (10:54:35 PM) Ernestus: quindi else= apri la porta (10:54:35 PM) Stemby: altrimenti tutto quel pezzo di programma viene saltato (10:54:39 PM) Ernestus: si omette? (10:54:46 PM) Stemby: Ernestus: esatto, non serve (10:54:50 PM) Stemby: si omette (10:55:00 PM) pinolo: ok (10:55:11 PM) Stemby: vediamolo in pseudocodice pitonesco (10:55:18 PM) Stemby: risca: apro un nuovo pad? (10:55:35 PM) pinolo: salviamo quello di adesso (10:55:39 PM) pinolo: per il wiki (10:55:40 PM) Stemby: http://openetherpad.org/QA3DNFXy2X (10:56:57 PM) pinolo: ma start l'abbiamo visto? (10:56:59 PM) risca: di cosa scriviamo ora? (10:57:06 PM) risca: (start non serve) (10:58:51 PM) Stemby: pinolo: le funzioni le ho inventate al momento (10:58:56 PM) Stemby: sono nomi di fantasia (10:58:58 PM) pinolo: ah ok ok (10:59:06 PM) pinolo: ora ho capito (10:59:11 PM) Stemby: ci siamo, più o meno= (10:59:15 PM) Stemby: ? (10:59:18 PM) JumX: il concetto è chiaro (10:59:22 PM) Ernestus: i puntini sono inutili? (10:59:29 PM) pinolo: domanda (10:59:30 PM) Stemby: focalizziamoci su alcune cose (10:59:40 PM) Stemby: Ernestus: i puntini non ci vogliono (10:59:46 PM) Stemby: era per dire che il programma continua (10:59:54 PM) risca: i puntini sono punti di sospensione (continua come vuoi tu) (11:00:12 PM) Stemby: dimmi pinolo (11:00:14 PM) Ernestus: capito... non dò tutto per scontato (11:00:19 PM) risca: proporrei di applicare il caso in questione ad un esempio concreto (11:00:26 PM) Stemby: un secondo (11:00:34 PM) pinolo: come fa il programma a capire cosa sta dentro l'if? sono le parti di script a cui hai dato "TAB" (11:00:34 PM) Stemby: solo 2 o 3 cosucce (11:00:44 PM) Stemby: pinolo: ottima domanda (11:00:49 PM) Stemby: stavo per spiegarlo (11:00:53 PM) pinolo: ah (11:00:56 PM) pinolo: ok (11:00:59 PM) Stemby: dipende dal linguaggio (11:01:07 PM) Stemby: in python, si usa l'INDENTAZIONE (11:01:14 PM) Stemby: (in italiano: rientro) (11:01:17 PM) pinolo: ok (11:01:21 PM) Stemby: guardate il codice: (11:01:22 PM) pinolo: capito (11:01:32 PM) Stemby: la riga con l'if, finisce con ":" (11:01:50 PM) Stemby: da lì in poi, parte la sezione che sta dentro l'IF (11:02:07 PM) Stemby: questa sezione DEVE essere indentata (rientrata) (11:02:24 PM) pinolo: tutto cio che è "identato" è legato al true dell'IF (11:02:27 PM) Stemby: il linguaggio accetta vari tipi di indentazioni (11:02:30 PM) Stemby: pinolo: esatto (11:02:43 PM) Stemby: noi però useremo sempre, solo e soltanto questa: (11:02:46 PM) Stemby: 4 spazi (11:02:48 PM) Stemby: ok? (11:02:56 PM) pinolo: ok (11:02:59 PM) Stemby: questo perché è uno standard di fatto (11:03:17 PM) Stemby: se aprite un qualunque programma scritto in py, vedrete che è sempre così (11:03:25 PM) Stemby: (almeno nei progetti seri) (11:03:43 PM) Stemby: quando l'indentazione finisce, il codice prosegue (11:03:49 PM) Stemby: dunque (11:04:01 PM) Stemby: immaginiamo che la porta sia aperta (11:04:10 PM) pinolo: gira a destra (11:04:12 PM) Stemby: cosa succede? (11:04:18 PM) JumX: andrebbe su right (11:04:28 PM) Stemby: partiamo dall'inizio (11:04:34 PM) Stemby: ditemi quali righe vengono lette (11:04:49 PM) pinolo: 3,4,8 (11:04:49 PM) Stemby: e in che ordine (11:05:11 PM) Stemby: io direi: (11:05:14 PM) JumX: 348 (11:05:19 PM) Stemby: dalla 1 alla 4 (11:05:28 PM) pinolo: sì ok (11:05:33 PM) Stemby: verifica che la condizione non è vera (11:05:45 PM) Stemby: quindi SALTA le righe da 5 a 8 (11:05:51 PM) Stemby: prosegue dalla 9 (11:05:52 PM) Stemby: ok? (11:06:03 PM) pinolo: come! (11:06:06 PM) JumX: no dalla 8 ? (11:06:06 PM) pinolo: ? (11:06:17 PM) Stemby: scusate, sì (11:06:19 PM) Stemby: dalla 8 (11:06:25 PM) pinolo: ah (11:06:27 PM) Stemby: ho letto male il numero di riga (11:06:39 PM) Stemby: quindi SALTA le righe da 5 a 7 (11:06:41 PM) Stemby: ok? (11:06:42 PM) JumX: perfect (11:06:45 PM) pinolo: ok (11:06:53 PM) Stemby: ovvero: (11:07:07 PM) Stemby: il robot parte, verifica che la porta è aperta, gira a destra (11:07:11 PM) Stemby: ecc. (11:07:16 PM) Stemby: altro caso: (11:07:20 PM) Stemby: la porta è chiusa (11:07:26 PM) Stemby: cosa fa il robot? (11:07:38 PM) Stemby: (che riche vengono lette?) (11:07:39 PM) pinolo: tutte le righe dalla 1 alla 10 e oltre (11:07:43 PM) JumX: 5 6 7 8 (11:07:46 PM) Stemby: pinolo: esatto (11:07:58 PM) Stemby: il programma viene letto ed eseguito interamente (11:08:05 PM) Stemby: dall'inizio alla fine (11:08:16 PM) Stemby: parte indentata compresa (11:08:21 PM) pinolo: pk (11:08:24 PM) pinolo: ok (11:08:28 PM) Stemby: ottimo (11:08:46 PM) Stemby: ovviamente, ogni funzione racchiude degli algoritmi in maggior dettaglio (11:08:55 PM) Stemby: ma le funzioni le vedremo più avanti (11:09:02 PM) Stemby: risca: sei libero :) (11:09:13 PM) risca: ok (11:09:17 PM) Stemby: avanti con un esempio concreto che gira sul nostro terminale (11:09:23 PM) risca: vi ricordate ad esempio le storie a bivio, tipiche dei giornalini? (11:09:34 PM) Stemby: librogame (11:09:42 PM) pinolo: JumX: ma poi sei riuscito a far partire Geany? (11:09:53 PM) pinolo: sì! (11:09:59 PM) risca: sì, qualle in cui ad ogni pagina devi scegliere coma far andare avanti la storia (11:10:04 PM) pinolo: alle scuole medie ero impazzito (11:10:14 PM) pinolo: con lupo solitario! (11:10:28 PM) risca: bene, ottimo esempio. Proviamole a scriverne una breve, giusto di esempio (11:10:36 PM) JumX: No preferisco leggervi attentamente poi approfondirò (11:10:46 PM) risca: di che avventura volete trattare? (11:11:10 PM) risca: il pinguino Linux che sconfigge M$? (11:11:18 PM) Stemby: Tux (11:11:26 PM) pinolo: A proposito: Germania-Italia 1-1 - Scusate l'OT (11:11:40 PM) risca: ok (11:11:50 PM) risca: allora andiamo al pad: http://openetherpad.org/geeJZPlWMq (11:12:00 PM) JumX: stavo diventando strabico un'occhio al pc uno alla tv (11:12:24 PM) Ernestus: 5 minuti e torno (11:12:28 PM) Ernestus left the room (quit: Quit: Ex-Chat). (11:12:29 PM) risca: ok (11:12:31 PM) JumX: i pad di prima possiamo chiuderli o ci serviranno? (11:12:50 PM) pinolo: risca chi li salva? (11:13:22 PM) pinolo: vuoi che ti dia una mano col wiki? (11:13:29 PM) risca: ovvio che sì (11:13:43 PM) risca: Jumx, se non è un problema lasciali (11:14:29 PM) JumX: Mi raccomando all'accademia è una fonte utilissima per rivedere gli argomenti (11:14:39 PM) JumX: no problem (11:14:59 PM) groll: non è melgio usare {} che è più pythonico? (11:15:18 PM) risca: groll ha perfettamente ragione (11:15:24 PM) risca: correggiamo (11:15:24 PM) pinolo: var è di tipo booleano? (11:15:37 PM) risca: no no, è testo (11:16:29 PM) Ernestus [~ernesto@Azzurra=13134D5F.41-79-r.retail.telecomitalia.it] entered the room. (11:16:34 PM) JumX: perchè tre volte virgolette ? (11:16:47 PM) risca: per avere gli a capo andando a capo (11:16:50 PM) groll: JumX: perchè così si può andare a capo (11:16:53 PM) risca: altrimenti devi inserire \n (11:17:00 PM) groll: e scrivere tutto su una riga (11:17:04 PM) Ernestus: eccomi (11:17:21 PM) pinolo: ma come!? (11:17:35 PM) pinolo: tutta la storia in italiano e dobbiamo rispondere yes!? (11:17:44 PM) risca: ha ragione pinolo (11:17:49 PM) groll: name è inglese ho uniformato :P (11:17:54 PM) Ernestus: cosa mi sono perso?? (11:18:00 PM) risca: stemby: non possiamo per ora imporre il yes (11:18:03 PM) JumX: ho imparato un'altra cosa :) ... chissa se il mio cervello si fonderà alla fine... (11:18:15 PM) risca: buona idea (11:18:32 PM) groll: Ernestus: stiamo scrivendo un nuovo best seller http://openetherpad.org/geeJZPlWMq (11:18:57 PM) pinolo: ma S/N va bene scritto tra parentesi in quel modo o da problemi? (11:19:28 PM) JumX: no perchè è dentro le parentesi della stringa (11:19:36 PM) groll: pinolo: no perchè è all'interno di una stringa quindi non può venire confuso (11:19:44 PM) pinolo: io però farei il contrario (11:19:52 PM) pinolo: se risponde no allora esci (11:19:52 PM) JumX: cioè ? (11:20:04 PM) pinolo: altrimenti continua con la storia (11:20:21 PM) pinolo: no? è più corto (11:20:53 PM) risca: ragazzi, copiate e provate (11:21:01 PM) risca: poi proviamo come migliore (11:21:02 PM) risca: ok? (11:21:33 PM) JumX: ora vado in crisi nel terminale copio una ricca alla volta ? (11:21:43 PM) pinolo: risca: potevamo fare come ha detto io? (11:21:46 PM) JumX: riga no ricca scusate (11:21:52 PM) risca: puoi usare altrimenti kate che è più semplice (11:21:53 PM) groll: JumX: salvalo su un file fai prima (11:22:16 PM) risca: pinolo: come? (11:22:26 PM) pinolo: JumX: meglio che lo risolvi subito sto problema con l'editor (11:22:52 PM) pinolo: risca: Davamo if ready==N: (11:22:55 PM) Stemby: pinolo: apri con l'editor più stupido (11:22:56 PM) JumX: poi mi perdo il corso ... (11:23:00 PM) Stemby: gedit/kate (11:23:08 PM) pinolo: no per JumX (11:23:10 PM) Stemby: copiaincolla (11:23:11 PM) pinolo: non per me (11:23:13 PM) JumX: l'ho salvato in un file storia.py .. come lo eseguo? (11:23:19 PM) Stemby: pinolo: sorry (11:23:29 PM) risca: pinolo: prova pure a invertire l'ordine, ma il risultato non cambia (11:23:32 PM) Stemby: JumX: python3 storia.py (11:23:33 PM) amosse: ok (11:23:41 PM) pinolo: risca: codardo, esci dal programma (11:24:00 PM) pinolo: invece altrimenti andavi avanti (11:24:03 PM) pinolo: giusto? (11:24:33 PM) pinolo: no cambia perchè io esco dal programma se mi dici di NO (11:24:46 PM) pinolo: giusto Stemby? (11:25:08 PM) Stemby: un secondo (11:25:09 PM) JumX: SyntaxError: EOL while scanning string literal (11:25:11 PM) risca: giusto, il problema è che non si torna indietro con if (11:25:41 PM) amosse: print("Non ho capito...") (11:25:57 PM) risca: è chiaro a cosa serve l'ELSE (11:25:59 PM) pinolo: sì ho capito ma dato che non vuoi proseguire, e clicchi NO, esci dal programma (11:25:59 PM) risca: ? (11:26:11 PM) pinolo: e non prosegui (11:26:27 PM) pinolo: invece se non hai risposto N vai avanti (11:26:45 PM) pinolo: dentro la funzione IF di ready==N (11:26:54 PM) pinolo: metti Exit() (11:27:02 PM) pinolo: o no? (11:27:09 PM) risca: si può fare di megli (11:27:14 PM) risca: print e poi exit (11:27:31 PM) risca: guardate un po'? (11:27:54 PM) JumX: Possono essere presenti o meno, una o più parti elif, e la parte else è facoltativa. La parola chiave ‘elif’ è un’abbreviazione di ‘else if’, e serve ad evitare un eccesso di indentazioni. (11:28:20 PM) risca: JumX: ottima osservazione (11:28:26 PM) Stemby: c'era un errore nell'algoritmo (11:28:39 PM) Stemby: il secondo if deve essere saltato, se si dà SI' (11:28:42 PM) risca: provate tutti e poi affrontiamo il fatidico errore dell'algoritmo (11:28:43 PM) Stemby: quindi ci vuole elif (11:28:48 PM) Stemby: al posto di if (11:28:54 PM) Stemby: chiaro? (11:28:58 PM) JumX: non pensate che sia farina del mio sacco .... ho varie fonti su cui mi documento :) (11:29:04 PM) risca: c'è ancora un errore... (11:29:18 PM) risca: un grave errore (11:29:33 PM) risca: provate lo script e ditemi (11:29:51 PM) amosse: a me dava errore alla riga 22 (11:30:03 PM) Stemby: risca: ora a me funziona (11:30:06 PM) amosse: mancava le 2"" iniziali (11:30:13 PM) Stemby: amosse: riprova ora (11:30:33 PM) risca: sì, ma c'è un grave errore nell'algoritmo (11:30:34 PM) Stemby: nuovo copiaincolla per tutti (11:30:39 PM) Stemby: no (11:30:54 PM) Stemby: almeno, io non lo vedo (11:31:01 PM) amosse: funziona (11:31:22 PM) risca: allora provate tutti, cosa succede se invece di N o S scrivete "non so"? (11:31:33 PM) risca: o peggio ancora se scrivete NO? (11:31:41 PM) Stemby: non capisce (11:31:45 PM) Stemby: ed è giusto così (11:31:53 PM) Stemby: l'else serve appunto per quello (11:32:07 PM) Stemby: ovvio che si può migliorare, ma come primo esempio non è male (11:32:13 PM) Stemby: accetta SOLO S o N (11:32:15 PM) risca: però l'algoritmo è sbagliato perchè l'avventura va avanti (11:32:21 PM) groll: risca: la storia prosegue nonostante una grave incomprensione iniziale (11:32:27 PM) Stemby: esatto (11:32:32 PM) risca: proviamo a rimediare con un while? (11:32:36 PM) pinolo: a me da errore (11:32:44 PM) Stemby: pinolo: nuovo copiaincolla (11:32:54 PM) Stemby: poi ci dici l'errore, se persiste (11:33:05 PM) Stemby: risca: quello è un algoritmo sen'altro migliore (11:33:14 PM) JumX: a me funge .. mi piace (11:33:20 PM) Stemby: aspettiamo che tutti siano allineati, e implementiamolo (11:33:20 PM) risca: ottimo ;-) (11:33:31 PM) groll: pinolo: occhio che con il copia incolla non siano spuntati interlinee dove il testo è più lungo (11:33:40 PM) groll: *spuntate (11:34:35 PM) risca: ci siamo tutti? (11:34:38 PM) pinolo: no (11:34:53 PM) risca: pinolo: provato con il copia incolla? (11:35:11 PM) pinolo: sì (11:35:21 PM) risca: e quando lanci lo script cosa succede? (11:35:21 PM) Ernestus: ci sono (11:35:24 PM) pinolo: File "Tux Adventure.py", line 17 (11:35:24 PM) pinolo: print("Il tuo coraggio ti fa onore!\nSono certo che assieme sconfiggeremo il software proprietario!") (11:35:24 PM) pinolo: ^ (11:35:24 PM) pinolo: SyntaxError: invalid character in identifier (11:35:29 PM) JumX: Solo che sarebbe opportuno nel caso di risposta non uguale a S o N che il programma tornasse a riproporti la domanda non di uscire (11:36:00 PM) risca: l'indentazione in IF è corretta? (11:36:38 PM) risca: IF deve essere a margine e nel rigo sotto print deve avere 4 spazi (11:36:51 PM) pinolo: ok (11:36:58 PM) pinolo: risca avevi ragione (11:37:03 PM) risca: ;-) (11:37:18 PM) risca: implementiamo l'idea di Jumx? (11:37:43 PM) risca: allora, oltre ad IF esiste anche WHILE (11:38:13 PM) risca: WHILE ripete tutto ciò che ha al suo interno finché siamo in uno stato di verità (11:38:39 PM) risca: noi vogliano quindi inserire nel ciclo tutto ciò (11:38:56 PM) pinolo: ok (11:39:02 PM) risca: che è compreso tra il secondo print e l'ultimo else (11:39:08 PM) pinolo: facciamo passi da gigante (11:39:14 PM) risca: vediamo un po'... (11:39:21 PM) risca: guardate il pad ora (11:40:25 PM) pinolo: ma deve ripetere anche la richiesta (11:41:06 PM) pinolo: ok ci sono (11:41:10 PM) risca: INFATTI il valore della variabile ready è dentro il while (11:41:22 PM) risca: ora c'è un problema, come usciamo dal ciclo? (11:41:23 PM) JumX: proviamo ? (11:41:33 PM) JumX: e già (11:41:45 PM) pinolo: appunto (11:41:49 PM) risca: WHILE si interrompe quando non è più vero (11:42:03 PM) risca: exit() non funziona siccome ci fa uscire dallo script (11:42:08 PM) risca: Stemby non lo fare (11:42:13 PM) risca: è bruttissimo (11:42:29 PM) risca: adesso vi propongo la mia soluzione (11:42:33 PM) Stemby: è bruttissimo while (11:42:42 PM) Stemby: è per quello che non lo si usa mai in python (11:42:46 PM) risca: (anche quella di stemby poteva però funzionare ma meno elegante) (11:43:09 PM) Stemby: vai, ti lascio fare :) (11:43:22 PM) risca: fatto (11:43:39 PM) risca: vi torna? (11:43:43 PM) pinolo: no (11:43:56 PM) pinolo: perchè non esci prima dell'else (11:43:58 PM) risca: guardate il primo if (11:43:59 PM) pinolo: ??? (11:44:06 PM) JumX: che ne dite di usare le istrruzioni break e continue e la clausola nei cicli (11:44:25 PM) risca: JumX, può essere una alternativa (11:44:26 PM) tux_errante: concordo (11:44:28 PM) risca: però prima (11:44:32 PM) risca: vediamole entrambe (11:44:56 PM) risca: proviamo un attimo lo script? (11:45:15 PM) pinolo: ah ok ci sono (11:45:18 PM) pinolo: ok ok (11:45:56 PM) risca: funziona? (11:47:02 PM) amosse: SI (11:47:07 PM) Stemby: no (11:47:11 PM) pinolo: no (11:47:12 PM) Stemby: non esce dal ciclo (11:47:14 PM) pinolo: File "Tux Adventure.py", line 12 (11:47:14 PM) pinolo: ready = input(""" (11:47:14 PM) pinolo: ^ (11:47:14 PM) pinolo: IndentationError: expected an indented block (11:47:26 PM) Stemby: pinolo: stai attento agli spazi (11:47:29 PM) risca: pinolo copia bene (11:47:34 PM) risca: attento agli spazi (11:47:46 PM) risca: purtroppo non funziona, vediamo di capire perché (11:47:51 PM) risca: idee? (11:47:55 PM) groll: sicuro che quel False funziona? (11:48:10 PM) risca: il False funziona, ma non lì purtroppo (11:48:17 PM) Stemby: non così (11:48:19 PM) risca: come mai non funziona lì però? (11:48:21 PM) Stemby: non può funzionare (11:48:29 PM) Stemby: ci vuole una variabile (11:48:36 PM) Stemby: il controllore che mi hai bocciato (11:48:39 PM) risca: aspetta un attimo Stemby (11:48:45 PM) Stemby: o altrimenti non usare while... (11:49:08 PM) risca: il FALSE di per se funzionerebbe (11:49:14 PM) risca: fate questa prova: (11:49:19 PM) Stemby: non mi risulta, risca (11:49:30 PM) risca: aprite il file e togliete l'indentazione al False, cosa succede? (11:49:44 PM) Stemby: ma False che cos'è? (11:49:54 PM) Stemby: non esiste nessuna istruzione che si chiami così (11:49:59 PM) risca: (lasciate solo quattro spazi e non 8) (11:50:07 PM) Stemby: non può funzionare (11:50:24 PM) Stemby: correggo io (11:50:25 PM) risca: scusate un attimo (11:50:25 PM) groll: concordo con Stemby (11:50:35 PM) groll: quello che vuoi fare te è il break (11:51:16 PM) groll: risca: prova while True: False (11:51:25 PM) groll: non funziona (11:51:31 PM) Stemby: così dovrebbe andare (11:51:34 PM) JumX: ’istruzione break, esce immediatamente dal ciclo for o while più interno che la racchiude (11:51:44 PM) Stemby: esatto, sarebbe meglio (11:51:54 PM) Stemby: ma per ora può andar bene cos' (11:51:56 PM) Stemby: *così (11:52:10 PM) pinolo: ok provo (11:52:11 PM) JumX: L’istruzione continue, prosegue con l’iterazione seguente del ciclo. (11:52:21 PM) groll: oppure si può fare anche senza variabile di controllo in questo modo (lo tengo commentato (11:53:46 PM) pinolo: non esce dal ciclo (11:54:37 PM) amosse: scusate ma se mettete break alle righe 18 e 21 mi sembra funzioni (11:55:07 PM) groll: pinolo: si che esce (11:55:17 PM) amosse: ops 22 e 25 (11:55:27 PM) risca: eccomi (11:55:29 PM) pinolo: se indenti tutto il ciclo (11:55:34 PM) pinolo: ? (11:55:49 PM) Stemby: groll: meglio (11:55:50 PM) risca: scusate ma mi ricordavo che il False fosse prendibile dal While (11:56:04 PM) Stemby: decommento la tua soluzione (11:57:57 PM) JumX: Ma non esiste una funzione tipo Goto ? (11:58:04 PM) pinolo: magari (11:59:03 PM) risca: se le tuple le affrontiamo la prossima volta? (11:59:09 PM) groll: JumX: i goto non vanno mai usati (11:59:24 PM) groll: a meno che non stai programmando in assembly (11:59:30 PM) Ernestus: cosa sono i Goto? (11:59:32 PM) risca: qualcosa di semplice è meglio, atteniamoci all'esempio precedente (11:59:37 PM) risca: con il break (11:59:48 PM) risca: ok? (11:59:55 PM) amosse: ok (02/10/2011 12:00:26 AM) groll: beh il break non è molto semplice in realtà (12:00:35 AM) groll: rende il codice meno leggibile (12:00:52 AM) JumX: ho trovato questo : line = linecache.getline(thefilename, 33) (12:01:14 AM) Stemby: JumX: goto non credo ci sia (12:01:22 AM) Stemby: anzi, SPERO che non ci sia (12:01:34 AM) Stemby: mai sentito parlare di spaghetti code? (12:01:45 AM) Stemby: googla... :) (12:02:15 AM) Stemby: in ogni caso non sarebbe una funzione, bensì un'istruzione (12:02:20 AM) pinolo: ragazzi non vi sto dietro (12:02:32 AM) pinolo: ho bisogno di rallentare per controllare lo script (12:02:38 AM) pinolo: per capirci qualcosa (12:02:45 AM) Stemby: pinolo: sì, abbiamo un po' accelerato (12:02:45 AM) pinolo: avete aperto troppe parentesi (12:02:53 AM) groll: risca: secondo me la stai complicando ora ci sono exit e break (12:02:58 AM) amosse: Buona notte a tutti, e alla prossima (12:03:08 AM) Stemby: aspetta che si stabilizzi, poi lo analizziamo riga per riga (12:03:10 AM) groll: il not in si capiva anche se non sanno cos'è una tupla e un insieme (12:03:13 AM) JumX: Buonanotte amosse (12:03:13 AM) pinolo: prendiamo una strada e manteniamo quella (12:03:21 AM) Ernestus: notte amosse (12:03:26 AM) pinolo: notte amosse (12:03:33 AM) Ernestus: non ho capito la funzione di break! (12:03:46 AM) groll: a questo punto meglio tutte break (12:03:47 AM) pinolo: ancora non credo l'abbia detta (12:04:04 AM) groll: con la exit non esegue l'else del while (12:04:13 AM) risca: groll: no per la parte prima (12:04:18 AM) risca: rimettiamo com'era (12:04:19 AM) amosse left the room (quit: Quit: http://www.mibbit.com ajax IRC Client). (12:04:21 AM) risca: con il control (12:04:22 AM) pinolo: però credo che il comando break faccia uscirà automaticamente da un ciclo while (12:04:27 AM) risca: qualcuno l'ha copiata? (12:04:48 AM) risca: ...riscrivo... (12:04:55 AM) groll: a questo punto allora quella var != "S" and var != "N" (12:05:06 AM) groll: così è senza variabili di controllo e senza break,exit (12:05:17 AM) Stemby: ce l'ho io la vecchia versione (12:05:20 AM) Stemby: un secondo (12:05:26 AM) risca: io propongo: (12:05:40 AM) risca: Stemby metti la prima parte a posto com'era con il control (12:05:47 AM) risca: groll: scriviamo (12:06:00 AM) risca: una terza parte come proposto date (12:06:04 AM) risca: da te* (12:06:09 AM) risca: molto elegante (12:06:25 AM) Stemby: fatto (12:06:28 AM) Stemby: provatelo (12:06:36 AM) risca: sì, ma hai canellato un po' troppo (12:06:42 AM) pinolo: oddio domani questi script li devo rimettere apposto sul wiki e so già che sarà durissima! (12:06:44 AM) risca: cancellato* (12:07:01 AM) Ernestus: io vado... alla prossima (12:07:03 AM) Ernestus: buonanotte (12:07:07 AM) groll: notte (12:07:10 AM) risca: Stemby: puoi reinserire la parte cancellata? (12:07:12 AM) pinolo: notte (12:07:16 AM) risca: buona notte Ernestus (12:07:20 AM) Ernestus left the room (quit: Quit: Ex-Chat). (12:07:24 AM) Stemby: risca: quale parte? (12:07:37 AM) risca: quella con break (12:07:39 AM) pinolo: mamma mia che casino! (12:07:43 AM) pinolo: =) (12:07:48 AM) Stemby: mmm vedo (12:08:10 AM) risca: ottimo! (12:08:22 AM) risca: mi permettete un secondo? (12:08:49 AM) pinolo: ok (12:09:06 AM) risca: Così abbiamo 2 livelli (12:09:47 AM) risca: chiaro quanto scritto fino a qui? (12:10:06 AM) risca: Per finire vorrei implementare la soluzione di Groll che mi sembra la più elegante in assoluto (12:10:29 AM) pinolo: ok (12:10:39 AM) Stemby: su un altro pad (12:10:45 AM) Stemby: risca: ↑ (12:10:51 AM) risca: pinolo e Groll, aggiungete coi il terzo atto? (12:11:00 AM) Stemby: altrimenti non è copiaincollabile (12:11:20 AM) risca: va bene, Stemby apri tu (12:11:41 AM) risca: Stemby: però si riesce a copioincollare (12:11:53 AM) groll: beh ormai mettiamola sotto (12:11:57 AM) Stemby: sì, ma è meglio tenere un pad per ogni script (12:12:04 AM) groll: oppure facciamone uno per ognuno degli atti (12:12:11 AM) risca: vai avanti groll e pinolo (12:12:16 AM) groll: alla fin fine è sempre la stessa storia (12:12:17 AM) groll: :P (12:12:18 AM) Stemby: ok (12:12:19 AM) pinolo: facciamo il solito atto con tre soluzioni (12:12:27 AM) risca: ragazzi, finiamo su questo, poi copio nel wiki (12:12:28 AM) Stemby: ottimo (12:12:29 AM) pinolo: tre pad diversi (12:12:34 AM) Stemby: ok (12:12:39 AM) Stemby: no pinolo (12:12:42 AM) pinolo: ok (12:12:42 AM) Stemby: stesso pad (12:12:51 AM) risca: giusto (12:12:54 AM) Stemby: 3 pezzi di codice con 3 soluzioni diverse (12:13:01 AM) Stemby: ma nello stesso script (12:13:02 AM) pinolo: vai groll (12:13:04 AM) risca: ed una storia da affrontare! (12:13:16 AM) risca: groll, voglio un finale d'azione (12:13:45 AM) groll: http://openetherpad.org/kNE2v8koEv <-- terzo (12:13:58 AM) pinolo: no! (12:14:13 AM) pinolo: ma non si era detto di fare tutto lì!? (12:14:19 AM) groll: ah (12:14:27 AM) groll: avevo capito in un altro (12:14:33 AM) risca: sì, dai facciamo tutto lì (12:15:01 AM) Stemby: groll: unisci (12:15:03 AM) Stemby: :) (12:16:15 AM) spirit left the room (quit: Quit: leaving). (12:16:31 AM) pinolo: vai che lo pubblichiamo! (12:16:41 AM) pinolo: =) (12:18:15 AM) JumX: Mi sono perso ... (12:18:25 AM) risca: dove ti sei perso? (12:18:37 AM) fiox left the room (quit: Quit: fiox). (12:18:52 AM) JumX: da raga non pensate a me ditemi dove state scrivendo lo script (12:19:01 AM) risca: http://openetherpad.org/geeJZPlWMq (12:19:41 AM) risca: JumX: a posto? (12:19:46 AM) JumX: grazie ... domani mattina devo studiare tutto daccapo. (12:19:57 AM) JumX: si si a posto grazie (12:20:57 AM) JumX: ma quanto grande può essere uno script ? (12:21:21 AM) JumX: c'è un limite consigliato (12:21:21 AM) groll: con un dict sarebbe ancora più elegante (12:21:31 AM) groll: JumX: dipende (12:21:48 AM) JumX: da che dipende? (12:23:13 AM) groll: da cosa stai facendo (12:23:32 AM) JumX: Siete grandi :) puoi programmare anche a me un'intelligenza artificiale .... (12:23:44 AM) groll: comunque meglio evitare script troppo lunghi è bene spezzettare in più parti (12:24:02 AM) JumX: grazie groll (12:24:41 AM) risca: Van bene i finali? (12:25:57 AM) groll: JumX: devi cercare poi spezzettando di suddividere il programma in parti che hanno un qualcosa in comune (12:26:03 AM) groll: non spezzettare a caso (12:26:54 AM) JumX: si l'avevo intuito (12:27:50 AM) JumX: Possiamo provarlo ? (12:27:56 AM) groll: si (12:28:01 AM) pinolo: dovrebbe andare (12:28:16 AM) risca: sto debuggando (12:28:16 AM) groll: la dicitura is not in dovrebbe essere autoesplicativa (12:28:23 AM) risca: non funge (12:28:36 AM) groll: poi vedrete in seguito cosa sono le tuple (12:28:55 AM) pinolo: sì lo è (12:29:34 AM) pinolo: qual'è il problema? (12:29:43 AM) groll: ora che ci penso non è "not in" invece di "is not in" (12:29:44 AM) groll: ? (12:30:10 AM) risca: hai ragione (12:30:36 AM) Stemby: esatto (12:31:01 AM) pinolo: ma perchè il copiaincolla con Geany non mi funziona bene? (12:31:18 AM) pinolo: devo ri-indentare sempre tutte le righe (12:32:10 AM) groll: pinolo: può darsi che ci sia un opzione per separare in automatico le righe troppo lunghe (12:32:21 AM) groll: (il che mi sembra una scemata per un ide) (12:32:21 AM) risca: c'era un input di troppo (12:32:26 AM) JumX: Trooopo forte (12:32:52 AM) risca: la variabile DOMANDA non può contenere il comando input (12:34:32 AM) JumX: Solo che alla risposta Virus scrive sempre Virus .. ho dovuto fare il "cortocircuito" per uscire (12:34:42 AM) risca: ho già corretto (12:34:45 AM) risca: ora ti spiego: (12:34:52 AM) risca: (12:32:21 AM) risca: c'era un input di troppo (12:34:56 AM) risca: (12:32:52 AM) risca: la variabile DOMANDA non può contenere il comando input (12:35:19 AM) risca: ti rendi conto dell'errore se, premendo ctrl + C quando è in loop (12:35:27 AM) risca: leggi dove lo script si è interrotto (12:36:15 AM) pinolo: groll: no perchè ho levato la spunta da "a capo automatico" (12:37:07 AM) risca: l'ultimo else non serve (12:37:15 AM) risca: siete d'accordo? (12:37:49 AM) groll: coreograficamente si :| (12:37:54 AM) JumX: Raga Bing bang ha detto stop ... domani un duro lavoro mi aspetta .... Alla prossima compagneros ! (12:38:03 AM) risca: Jumx, ok (12:38:08 AM) pinolo: ciao JumX (12:38:09 AM) JumX: Buonanotte (12:38:10 AM) groll: comunque era meglio usare elif invece di if nel terzo atto (12:38:11 AM) risca: ci aggiorniamo in forum e wiki (12:38:25 AM) JumX: senz'altro (12:38:36 AM) JumX: Ciao (12:38:38 AM) risca: groll: giusto, però all'atto pratico non cambia nulla (12:38:39 AM) groll: ciao (12:38:45 AM) risca: ciao JumX (12:38:48 AM) JumX left the room. (12:38:51 AM) groll: beh ormai sono così anche gli altri (12:39:29 AM) groll: vado pure io a dormire (12:39:30 AM) groll: notte (12:39:46 AM) risca: buona notte (12:39:57 AM) risca: allora ragazzi, chiudiamo qui? (12:39:58 AM) groll left the room (quit: Read/Dead Error: Input/output error). (12:40:04 AM) pinolo: direi di sì (12:40:22 AM) pinolo: ho roba per stare sveglio tutta la notte in questo script (12:40:27 AM) risca: ottimo, ci si sente domani per aggiornare il wiki e gli script (12:40:32 AM) risca: !! (12:40:42 AM) risca: intrippa troppo scrivere codice (12:40:58 AM) risca: penso sia una delle cose più stimolanti in assoluto (12:41:00 AM) pinolo: buonanotte ragazzi (12:41:09 AM) risca: buona notte pinolo (12:41:13 AM) pinolo: a domani sul wiki (12:41:18 AM) risca: ciao (12:41:22 AM) risca: Stemby? (12:41:33 AM) pinolo: e non sognate troppi Utonti (12:41:38 AM) risca: ^.^ (12:41:52 AM) pinolo left the room (Sto andando via). (12:41:54 AM) Stemby: ok (12:41:57 AM) Stemby: notte a tutti (12:42:08 AM) risca: Stemby (12:42:16 AM) Stemby: stavo ripulendo un po' la formattazione delle domande/risposte (12:42:18 AM) risca: direi che oggi abbiamo fatto tantissimo (12:42:23 AM) Stemby: fin troppo (12:42:32 AM) risca: però ci voleva