Accademia:Log 2011 03 13: differenze tra le versioni
Vai alla navigazione
Vai alla ricerca
(Creata pagina con '{{Template:Acc_Menu_Python}} <pre width="135" style="font-family:sans-seriffont-size-adjust:none; font-size: 120%; font-stretch:normal; font-style:normal; font-variant:normal; fo...') |
(incollo log) |
||
Riga 1: | Riga 1: | ||
{{Template:Acc_Menu_Python}} | {{Template:Acc_Menu_Python}} | ||
<pre width="135" style="font-family:sans-seriffont-size-adjust:none; font-size: 120%; font-stretch:normal; font-style:normal; font-variant:normal; font-weight:normal; line-height:normal; background-color:#fcfcfc; border: 1px solid #ccc"> | <pre width="135" style="font-family:sans-seriffont-size-adjust:none; font-size: 120%; font-stretch:normal; font-style:normal; font-variant:normal; font-weight:normal; line-height:normal; background-color:#fcfcfc; border: 1px solid #ccc"> | ||
[21:38:27] <|Wolf|> avete fatto i compiti? | |||
[21:38:53] <amosse> si qualcosa | |||
[21:39:00] <|Wolf|> avete domande? | |||
[21:39:50] <amosse> ma ci sono dei metodi sulle stringhe non troppo chiari | |||
[21:39:58] <|Wolf|> tipo? | |||
[21:40:40] <amosse> tipo str.count() | |||
[21:40:54] <|Wolf|> cosa non hai capito di str.count()? | |||
[21:41:37] <amosse> non ho capito a cosa serve | |||
[21:41:50] <|Wolf|> help(str.count) cosa dice? | |||
[21:42:37] <amosse> Return the number of non-overlapping occurrences of substring sub in the range [start, end]. | |||
[21:42:55] <amosse> in pratica quando si usa? | |||
[21:43:23] <amosse> cosa intende per 'non-overlapping occurrences' | |||
[21:44:17] <|Wolf|> ad esempio se cerchi 'aaa'.count('aa') | |||
[21:44:24] <|Wolf|> cosa ti dà? | |||
[21:45:00] <amosse> 1 | |||
[21:45:04] --> JumX (~Mibbit@Azzurra-40E97FA1.247-95-r.retail.telecomitalia.it) has joined #debianizzati-corsi | |||
[21:45:34] <|Wolf|> perché? | |||
[21:45:52] <groll> beh innanzitutto sai cosa vuol dire overlapping? | |||
[21:46:06] <amosse> vuol dire che 'aa' è presente una volta in 'aaaa' | |||
[21:46:27] <|Wolf|> 'aaa', non 'aaaa' | |||
[21:46:32] <|Wolf|> con 'aaaa' quanto ti dà? | |||
[21:46:47] <amosse> sovrapporre | |||
[21:46:59] <groll> si sovrapposte | |||
[21:47:24] <JumX> Buonasera a tutti scusate il ritardo :) avete cominciato da molto ? | |||
[21:47:33] <amosse> 2 | |||
[21:47:34] <groll> un paio di ore :| | |||
[21:47:53] <JumX> si si .. sei proprio un "grollo" | |||
[21:47:53] <amosse> ho capito 'aa' é presente 2 volte in 'aaaa' | |||
[21:48:07] <|Wolf|> amosse, tutto chiaro? | |||
[21:48:18] <amosse> ok | |||
[21:48:36] <Stemby> eccomi | |||
[21:48:53] <amosse> ciao Stemby | |||
[21:49:11] <spirit> ciao | |||
[21:49:11] <|Wolf|> hello Stemby | |||
[21:49:20] <|Wolf|> Stemby, conosci i python koans? | |||
[21:49:52] <Stemby> |Wolf|: no | |||
[21:50:07] <Stemby> cosa sono? | |||
[21:50:20] <|Wolf|> degli esercizietti per imparare python | |||
[21:50:31] <|Wolf|> potreste proporli | |||
[21:50:45] <Stemby> a fine lezione guardiamo :) | |||
[21:50:55] <Stemby> altre domande? | |||
[21:50:56] <amosse> dove si trovano? | |||
[21:51:24] <groll> http://python-koans.appspot.com/ | |||
[21:51:48] <amosse> quali sono gli string methods più importanti (o usati)? | |||
[21:52:00] <|Wolf|> amosse, split, strip | |||
[21:52:10] <|Wolf|> lower | |||
[21:52:15] <|Wolf|> groll, quelli | |||
[21:52:29] <amosse> ok | |||
[21:52:30] <groll> amosse: comunque è inutile guardarseli tutti li guardi quando ti servono | |||
[21:52:44] <groll> l'importante è che impari a leggere la documentazione | |||
[21:52:59] <|Wolf|> anche sapere che esistono è importante | |||
[21:53:01] <amosse> ok | |||
[21:53:08] <|Wolf|> poi i dettagli di come funzionano te li vai a vedere man mano | |||
[21:53:21] <amosse> ok | |||
[21:54:53] <Stemby> il capitolo 6 era chiaro? | |||
[21:55:03] --> gnomo (~gnomob@151.56.Azzurra-A01DC50) has joined #debianizzati-corsi | |||
[21:55:05] <Stemby> (confesso che mi mancano da leggere le ultime pagine) | |||
[21:55:18] <Stemby> niente di nuovo, no? | |||
[21:55:31] <-- gnomo (~gnomob@151.56.Azzurra-A01DC50) has left #debianizzati-corsi | |||
[21:55:42] <Stemby> tranne forse il concetto di variabile globale e locale spiegato un po' meglio di quanto avevamo fatto | |||
[21:55:53] <Stemby> ci sono dubbi? | |||
[21:56:44] <amosse> me lo devo ancora leggere, lo guardo per la prossima volta | |||
[21:56:58] <Stemby> mmm | |||
[21:57:15] <Stemby> tutto sto silenzio mi fa pensare che anche gli altri non abbiano fatto i compiti... | |||
[21:57:31] <spirit> anch'io li devo leggere... | |||
[21:57:36] <Stemby> male | |||
[21:57:43] <Stemby> è lunghetto | |||
[21:57:53] <Stemby> se rimanete indietro poi è difficile recuperare | |||
[21:58:23] <Stemby> chi ha letto il capitolo 6, oltre a me? | |||
[21:58:29] <Stemby> (tranne le ultime pagine) | |||
[21:59:18] <Stemby> come temevo... | |||
[21:59:35] <amosse> lo rimettiamo per mercoledi? | |||
[21:59:38] <Stemby> facciamo così: per la prossima volta TASSATIVAMENTE il capitolo 6 deve essere fatto | |||
[21:59:50] <amosse> ok | |||
[21:59:53] <spirit> ok | |||
[21:59:57] <Stemby> e d'ora innanzi si prosegue a un capitolo alla volta | |||
[22:00:16] <Stemby> altrimenti non andiamo da nessuna parte | |||
[22:00:42] <Stemby> direi di iniziare la lezione | |||
[22:00:48] <Stemby> a meno che ci siano dubbi | |||
[22:00:50] <amosse> ok | |||
[22:00:56] <spirit> va bene | |||
[22:01:01] <Stemby> http://docs.python.org/release/3.1.3/library/stdtypes.html#old-string-formatting-operations | |||
[22:01:28] <Stemby> effettivamente si dice che la vecchia sintassi per la formattazione stringhe è obsoleta | |||
[22:01:53] <Stemby> quindi cerchiamo di usare .format() | |||
[22:02:02] <Stemby> (io per primo) | |||
[22:03:02] <Stemby> http://docs.python.org/release/3.1.3/library/stdtypes.html#mutable-sequence-types | |||
[22:03:12] <Stemby> bon, direi che è ora di introdurre le liste | |||
[22:03:21] <Stemby> qualcuno ha già iniziato ad usarle | |||
[22:03:32] <Stemby> che cos'è una lista? | |||
[22:04:20] <Stemby> amosse: aiutaci | |||
[22:04:27] <Stemby> (visto che le hai già usate) | |||
[22:04:30] <spirit> sequenza elenco | |||
[22:04:45] <Stemby> più o meno | |||
[22:04:51] <amosse> si liste o array | |||
[22:04:58] <amosse> liste ordine di elementi | |||
[22:05:04] <Stemby> allora | |||
[22:05:16] <Stemby> innanzitutto, in generale, è un tipo predefinito | |||
[22:05:18] <|Wolf|> liste e array son due cose diverse (anche se in qualche maniera simile) | |||
[22:05:39] <Stemby> abbiamo già visto altri tipi predefiniti | |||
[22:05:45] <Stemby> (o oggetti predefiniti) | |||
[22:05:50] <Stemby> li ripassiamo? | |||
[22:06:07] <spirit> ok | |||
[22:06:10] <Stemby> forza | |||
[22:06:19] <Stemby> 1) | |||
[22:06:23] <Stemby> ... | |||
[22:06:26] <Stemby> dai! | |||
[22:06:40] <Stemby> osate | |||
[22:06:55] <amosse> stringhe | |||
[22:06:59] <Stemby> ok | |||
[22:07:08] <Stemby> quello è l'ultimo che abbiamo visto | |||
[22:07:09] <amosse> interi | |||
[22:07:11] <Stemby> ok | |||
[22:07:20] <Stemby> poi? | |||
[22:07:36] <spirit> operazioni booleane | |||
[22:07:39] <Stemby> spirit: no | |||
[22:07:53] <Stemby> le operazioni booleane sono espressioni | |||
[22:07:54] <amosse> float (numeri con decimali) | |||
[22:07:58] <Stemby> amosse: ok | |||
[22:08:05] <Stemby> poi? | |||
[22:08:11] <amosse> tuple | |||
[22:08:13] <amosse> liste | |||
[22:08:22] <amosse> dizionari | |||
[22:08:23] <Stemby> le tuple non le abbiamo ancora fatte | |||
[22:08:28] <Stemby> i dizionari neppure | |||
[22:08:35] <Stemby> le liste ufficialmente stasera | |||
[22:08:43] <Stemby> i booleani | |||
[22:08:50] <Stemby> (True/False) | |||
[22:08:58] <amosse> si vero | |||
[22:08:59] <Stemby> quelli li abbiamo fatti | |||
[22:09:05] <Stemby> complex | |||
[22:09:10] <Stemby> solo accennatu | |||
[22:09:13] <Stemby> *accennati | |||
[22:09:24] <Stemby> (sappiamo che esistono) | |||
[22:09:33] <Stemby> credo nient'altro | |||
[22:09:43] <Stemby> raggruppiamoli | |||
[22:09:52] <Stemby> 1) booleani | |||
[22:10:11] <Stemby> 2) interi, float e complex | |||
[22:10:23] <Stemby> 3) stringhe, liste e tuple | |||
[22:10:28] <Stemby> 4) dizionari | |||
[22:10:41] <Stemby> direi che questa possa essere una buona suddivisione | |||
[22:11:02] <amosse> ok | |||
[22:11:03] <Stemby> perché i 2) sono insieme? | |||
[22:11:18] <groll> 5) insiemi | |||
[22:11:31] <groll> visto che li hai elencati quasi tutti :P | |||
[22:11:36] <Stemby> ok :) | |||
[22:11:46] <Stemby> perché i 2) sono insieme? | |||
[22:11:47] <amosse> perche sono numerici | |||
[22:11:51] <Stemby> esatto | |||
[22:11:57] <Stemby> sono tutti tipi numerici | |||
[22:12:02] <Stemby> e i 3)? | |||
[22:12:19] <amosse> sono sequenze | |||
[22:12:24] <Stemby> bravo | |||
[22:12:42] <Stemby> le stringhe sono sequenze di...? | |||
[22:12:51] <spirit> caratteri | |||
[22:12:54] <Stemby> ok | |||
[22:12:59] <amosse> caratteri | |||
[22:13:03] <Stemby> mentre le liste sono sequenze di...? | |||
[22:13:15] <Stemby> (se non lo sapete va bene lo stesso) | |||
[22:13:16] <amosse> elementi | |||
[22:13:20] <Stemby> oggetti | |||
[22:13:26] <Stemby> oggetti vari | |||
[22:13:33] <amosse> ok | |||
[22:13:49] <spirit> elementi etereogenei | |||
[22:13:49] <Stemby> c'è u'altra differenza tra stringa e lista | |||
[22:13:59] <Stemby> *un'altra | |||
[22:14:12] <Stemby> la stringa è inalterabile | |||
[22:14:19] <Stemby> la lista invece lo è | |||
[22:14:20] <|Wolf|> immutabile | |||
[22:14:28] <Stemby> giusto |Wolf| | |||
[22:14:35] <Stemby> non mi veniva il termine corretto | |||
[22:14:49] <Stemby> http://docs.python.org/release/3.1.3/library/stdtypes.html#mutable-sequence-types | |||
[22:15:03] <Stemby> qui vediamo un po' di cosucce che si possono fare con le liste | |||
[22:15:07] <Stemby> ma non con le stringhe | |||
[22:15:17] <Stemby> proprio perché le stringhe sono immutabili | |||
[22:15:54] <Stemby> tronando un attimo indietro: http://docs.python.org/release/3.1.3/library/stdtypes.html#sequence-types-str-bytes-bytearray-list-tuple-range | |||
[22:16:02] <Stemby> ci ricordiamo la prima tabella? | |||
[22:16:24] <Stemby> [S/N] | |||
[22:16:50] <Stemby> c'è nessuno????? | |||
[22:17:00] <amosse> si | |||
[22:17:25] <Stemby> spirit, JumX, Ernestus? | |||
[22:17:33] <spirit> ora si, scusa | |||
[22:17:41] <JumX> Ci siamo | |||
[22:17:49] <Stemby> vi ricordate quella tabella? | |||
[22:18:04] <Ernestus> io ci sono | |||
[22:18:10] <spirit> grosso modo.. | |||
[22:18:16] <Ernestus> veramente no | |||
[22:18:21] <Stemby> male... | |||
[22:18:34] <Stemby> non c'eri quando abbiamo fatto le stringhe? | |||
[22:18:36] <Ernestus> io non ero presente lo scorso e l'altro incontro | |||
[22:19:02] <Stemby> però ci sono i log IRC per recuperare | |||
[22:19:30] <Stemby> se dobbiamo ogni volta riprendere 2 o 3 lezioni indietro, non ce la sbrighiamo più | |||
[22:19:41] <amosse> a proposito l' ultimo non é caricato | |||
[22:19:46] <Ernestus> hai ragione Stemby, mea culpa | |||
[22:19:56] <Stemby> amosse: ricordalo a risca | |||
[22:20:03] <Stemby> segnalalo sul forum | |||
[22:20:03] <JumX> Stavo per dire lo stesso. | |||
[22:20:04] <amosse> ok | |||
[22:20:15] <Stemby> al massimo lo carico io | |||
[22:20:23] <Stemby> comunque dovete essere più attivi | |||
[22:20:32] <amosse> ok | |||
[22:20:39] <Stemby> non potete aspettare che vi si spinga come i bambini | |||
[22:20:39] <JumX> Hai ragione ... | |||
[22:21:19] <Stemby> allora, chi ripassa quella tabella? | |||
[22:21:28] <Stemby> intanto: che cos'è? | |||
[22:21:30] <amosse> io | |||
[22:22:04] <Stemby> vai amosse | |||
[22:22:41] <amosse> é la lista delle operazioni che si possono fare con le sequences type | |||
[22:23:02] <Stemby> sì, diciamo che è una raccolta di espressioni e metodi | |||
[22:23:14] <Stemby> applicabili alle sequenze | |||
[22:23:33] <amosse> 1) x in s -> Vero se 'x' é presente in 's' | |||
[22:23:41] <Stemby> sono dunque validi per tutte le sequenze | |||
[22:23:50] <Stemby> per ora avevamo visto solo le stringhe | |||
[22:24:03] <Stemby> ma oggi proviamo ad applicarli anche alle liste | |||
[22:24:16] <Stemby> amosse: ok | |||
[22:24:26] <Stemby> prova a costruire un'espressione con una lista | |||
[22:24:32] <Stemby> (con in) | |||
[22:24:45] <Stemby> nella shell interattiva, ovviamente | |||
[22:24:53] <amosse> ok | |||
[22:25:45] <Stemby> amosse: ce l'hai fatta? | |||
[22:25:48] <amosse> io = ['amos','marzuoli'] | |||
[22:25:57] <Stemby> senza variabili | |||
[22:26:17] <Stemby> quando costruiamo espressioni nella shell interattiva, cerchiamo di evitare le variabili | |||
[22:26:27] <amosse> ok | |||
[22:26:28] <Stemby> (non servono allo scopo) | |||
[22:26:52] <amosse> amos in io['amos','marzuoli'] | |||
[22:26:53] <amosse> True | |||
[22:27:06] <amosse> ops | |||
[22:27:06] <amosse> *'amos' | |||
[22:27:07] <Stemby> io? | |||
[22:27:25] <Stemby> faccio io | |||
[22:27:33] <amosse> io 'la lista' io[] | |||
[22:27:42] <Stemby> >>> 1 in [1,2,3] | |||
[22:27:42] <Stemby> True | |||
[22:28:00] <Stemby> >>> 5 in [1,2,3] | |||
[22:28:00] <Stemby> False | |||
[22:28:04] <Stemby> ok? | |||
[22:28:13] <amosse> ok | |||
[22:28:16] <Stemby> [1,2,3] è una lista | |||
[22:28:29] <Stemby> una lista contenente 3 interi | |||
[22:28:41] <amosse> ok | |||
[22:29:00] <Stemby> l'operatore in confronta l'oggetto che gli si passa con la sequenza successiva | |||
[22:29:06] <Stemby> (nel nostro caso la lista) | |||
[22:29:22] <Stemby> e restituisce vero se l'elemento è presente nella sequenza | |||
[22:29:31] <Stemby> 1 è presente → dà vero | |||
[22:29:37] <Stemby> 5 non lo è → dà falso | |||
[22:29:53] <Stemby> amosse: fammi un'altra espressione simile | |||
[22:30:06] <Stemby> ma con la lista contenente altri oggetti | |||
[22:30:09] <Stemby> (non interi) | |||
[22:30:22] <amosse> 'amos' in ['amos','marzuoli'] | |||
[22:30:25] <amosse> True | |||
[22:30:27] <Stemby> ok | |||
[22:30:40] <Stemby> per chi non c'era le altre volte, | |||
[22:30:52] <Stemby> un'espressione con una stringa come sequenza | |||
[22:31:03] <Stemby> (al posto della lista) | |||
[22:31:10] <Stemby> sempre con in | |||
[22:31:14] <Stemby> come operatore | |||
[22:31:19] <JumX> 'g' in ('g','h','l') True | |||
[22:31:28] <Stemby> JumX: no | |||
[22:31:35] <Stemby> quella non è una stringa | |||
[22:31:36] <JumX> ? | |||
[22:31:40] <Stemby> quella è una tupla | |||
[22:31:48] <Stemby> (che non abbiamo ancora fatto) | |||
[22:32:04] <groll> 'g' in 'ghl' | |||
[22:32:11] <JumX> ok | |||
[22:32:15] <Stemby> groll: non vale :p | |||
[22:32:22] <Stemby> tu sei escluso dal gioco :) | |||
[22:32:23] <groll> :p | |||
[22:32:26] <groll> uffa | |||
[22:32:44] <Stemby> >>> 'i' in 'pippo' | |||
[22:32:44] <Stemby> True | |||
[22:32:54] <Stemby> JumX: è chiaro cos'è una stringa? | |||
[22:32:56] <Ernestus> Stemby, tranquillo recupererò | |||
[22:32:58] <JumX> (grazie groll) | |||
[22:33:01] <Ernestus> comunque ho capito | |||
[22:33:16] <JumX> si anch'io | |||
[22:33:34] <Stemby> però ora è chiaro che cos'è una stringa? | |||
[22:33:40] <spirit> si | |||
[22:33:48] <Stemby> non ci dovrebbero essere più dubbi, a questo punto... | |||
[22:34:03] <spirit> per me ora è chiaro | |||
[22:34:05] <Stemby> bon, andiamo avanti | |||
[22:34:16] <Stemby> proviamo la concatenazione | |||
[22:34:30] <Stemby> (ricordo: con le stringhe da evitare, quando possibile) | |||
[22:34:43] <Stemby> prima un'espressione con 2 stringhe | |||
[22:34:50] <Stemby> e poi con 2 liste | |||
[22:34:52] <Stemby> forza | |||
[22:35:04] <Stemby> (terza linea della tabella) | |||
[22:35:55] <amosse> 'all'+'ora' | |||
[22:36:02] <Stemby> ok | |||
[22:36:06] <amosse> 'allora' | |||
[22:36:10] <Stemby> esatto | |||
[22:36:21] <Stemby> spirit: ci fai tu un'espressione con 2 liste? | |||
[22:36:34] <JumX> 'a'+'b' 'ab' | |||
[22:36:34] <Stemby> la concatenazione di 2 liste | |||
[22:36:39] <spirit> ma senza variabili? | |||
[22:36:46] <Stemby> senza variabili | |||
[22:36:56] <Stemby> per favore | |||
[22:37:04] <Stemby> facciamolo sempre nella shell interattiva | |||
[22:37:08] <Stemby> e incolliamo tutto | |||
[22:37:11] <Stemby> >>> compresi | |||
[22:37:31] <spirit> 'pippo' + 'clarabella' | |||
[22:37:40] <Stemby> non vedi i >>> | |||
[22:37:50] <Stemby> e quelle sono 2 stringhe | |||
[22:37:54] <Stemby> non 2 liste | |||
[22:38:01] <spirit> ah scusa | |||
[22:38:01] <Stemby> spirit: sei nella shell interattiva? | |||
[22:38:08] <spirit> si | |||
[22:38:13] <Stemby> incolla da lì | |||
[22:38:16] <Stemby> :) | |||
[22:38:32] <Stemby> l'operatore è quello giusto | |||
[22:38:34] <JumX> >>> 'il cacio' + 'cavallo è buono' 'il caciocavallo è buono' | |||
[22:38:48] <Stemby> quelle son sempre 2 stringhe | |||
[22:38:57] <Stemby> e manca un a capo | |||
[22:39:27] <Stemby> >>> 'il cacio' + 'cavallo è buono' | |||
[22:39:27] <Stemby> 'il caciocavallo è buono' | |||
[22:39:30] <amosse> >>> ['io','mia moglie'] + ['mio figlio'] | |||
[22:39:34] <Stemby> questo è l'output corretto | |||
[22:39:42] <Stemby> amosse: ok | |||
[22:39:49] <Stemby> incolla anche l'output | |||
[22:39:56] <amosse> ['io', 'mia moglie', 'mio figlio'] | |||
[22:40:08] <Stemby> ok | |||
[22:40:16] <Stemby> spirit: ora fanne una tu | |||
[22:40:27] <Stemby> con liste un po' diverse | |||
[22:40:33] <Stemby> contenenti ad esempio dei float | |||
[22:40:47] <Stemby> per chiarezza: | |||
[22:41:00] <Stemby> non è stato detto prima e nessuno me l'ha chiesto | |||
[22:41:12] <Stemby> comunque la sintassi di una lista è questa: | |||
[22:41:34] <Stemby> [oggetto, altro_oggetto, altro_oggetto_ancora, ecc.] | |||
[22:41:40] <Stemby> ovvero | |||
[22:41:44] <Stemby> [] | |||
[22:41:52] <Stemby> con in mezzo i vari oggetti | |||
[22:41:59] <Stemby> separati tra loro da virgole | |||
[22:42:11] <Stemby> una lista può essere anche vuota | |||
[22:42:20] <Stemby> vi ricordate com'è una stringa vuota? | |||
[22:42:27] <spirit> '' | |||
[22:42:30] <Stemby> ok | |||
[22:42:39] <JumX> "" | |||
[22:42:43] <Stemby> ok | |||
[22:42:49] <Stemby> mentre una lista vuota è | |||
[22:42:51] <Stemby> [] | |||
[22:43:25] <Stemby> ora, spirit: mi fai l'espressione che ti avevo chiesto? | |||
[22:43:36] <Stemby> 2 liste contenenti quanti float vuoi | |||
[22:43:40] <Stemby> e concatenate tra loro | |||
[22:43:59] <spirit> mi sono infrenato.. | |||
[22:44:06] <Stemby> un passo alla volta | |||
[22:44:12] <Stemby> chiaro cos'è una lista? | |||
[22:44:22] <Stemby> spirit: ↑ | |||
[22:44:24] <spirit> si | |||
[22:44:33] <Stemby> chiato cos'è un float? | |||
[22:44:42] <spirit> decimale | |||
[22:44:54] <Stemby> chiaro cos'è una lista di float? | |||
[22:45:02] <spirit> lista di decimali | |||
[22:45:07] <Stemby> esempio | |||
[22:45:15] <JumX> una lista sono due o più stringhe . Giusto? | |||
[22:45:20] <Stemby> JumX: no | |||
[22:45:32] <Stemby> è una sequenza di oggetti | |||
[22:45:40] <groll> notte | |||
[22:45:41] <Stemby> questi oggetti possono essere del tipo che vuoi | |||
[22:45:45] <Stemby> notte groll | |||
[22:45:45] <JumX> ok | |||
[22:45:49] <-- groll (~groll@Azzurra=64EE12F.48-151.net24.it) has quit (Read/Dead Error: Input/output error) | |||
[22:46:07] <Stemby> spirit: fammi una lista contenente 2 float | |||
[22:46:27] <spirit> un attimo | |||
[22:46:57] <spirit> float(0.5) + float(0.5) | |||
[22:47:02] <Stemby> .... | |||
[22:47:14] <Stemby> perché usi la funzione float? | |||
[22:47:14] <spirit> 1.0 | |||
[22:47:31] <Stemby> che cosa fa la funzione float()? | |||
[22:47:44] <Ernestus> trasforma stringa in float | |||
[22:47:50] <Ernestus> ? | |||
[22:47:55] <Stemby> non necessariamente una stringa | |||
[22:48:03] <Ernestus> trasforma l'argomento in float | |||
[22:48:03] <Stemby> trasforma un oggetto in float | |||
[22:48:08] <Stemby> esatto | |||
[22:48:16] <Stemby> ma 0.5 che tipo è? | |||
[22:48:24] <spirit> decimali | |||
[22:48:31] <Stemby> è un float | |||
[22:48:35] <Ernestus> '2.3' + '3.0' | |||
[22:48:36] <Ernestus> ? | |||
[22:48:42] <Stemby> allora perché trasformarlo in float? | |||
[22:48:44] <Stemby> Ernestus: no | |||
[22:48:51] <Stemby> quelle sono 2 stringhe | |||
[22:48:56] <Stemby> aiuto!!! | |||
[22:49:00] <|Wolf|> gh | |||
[22:49:09] <Stemby> allora | |||
[22:49:14] <Stemby> calma e sangue freddo | |||
[22:49:24] <Stemby> (anche se sto iniziando ad inquietarmi) | |||
[22:49:32] <Stemby> prima cosa | |||
[22:49:46] <Stemby> c'è una funzione che permentte di sapere il tipo di qualunque oggetto | |||
[22:49:50] <Stemby> qual'è? | |||
[22:49:59] <Stemby> senza apostrofo | |||
[22:50:02] <Stemby> qual è? | |||
[22:50:04] <spirit> type() | |||
[22:50:05] <JumX> type | |||
[22:50:07] <Stemby> ok! | |||
[22:50:11] <JumX> type() | |||
[22:50:24] <Stemby> type('2.3') | |||
[22:50:29] <Stemby> che cacchi ci dà? | |||
[22:50:34] <Stemby> *cacchio | |||
[22:50:38] <JumX> string | |||
[22:50:40] <Ernestus> stringa | |||
[22:50:50] <Stemby> appunto | |||
[22:50:56] <Ernestus> la stringa è qualcosa dentro le virgolette | |||
[22:50:56] <Stemby> io cos'ho chiesto? | |||
[22:51:01] <Stemby> Ernestus: sì | |||
[22:51:13] <Ernestus> lista di 2 float | |||
[22:51:16] <Stemby> appunto | |||
[22:51:31] <Stemby> cosa c'entrano le stringhe? | |||
[22:51:35] <Stemby> niente | |||
[22:51:58] <Stemby> prima spirit ha usato la funzione float | |||
[22:52:02] <spirit> ('2.3') + ('1') | |||
[22:52:03] <Stemby> float() | |||
[22:52:08] <Stemby> spirit: no!!!!!!!!! | |||
[22:52:12] <JumX> no | |||
[22:52:13] <Ernestus> sempre stringhe | |||
[22:52:21] <Stemby> scusa | |||
[22:52:23] <JumX> >>> (0.2) + (0.5) | |||
[22:52:30] <Stemby> JumX: senza parentesi | |||
[22:52:38] <JumX> è lo stesso | |||
[22:52:41] <Stemby> lo so | |||
[22:52:46] <Stemby> ma le parentesi sono inutili | |||
[22:52:49] <Stemby> e confondono | |||
[22:52:51] <JumX> ok | |||
[22:53:03] <JumX> >>> 0.2 + 0.5 | |||
[22:53:05] <spirit> sono affogato in un bicchier d'acqua | |||
[22:53:10] <Stemby> ora abbiamo la somma di 2 float | |||
[22:53:13] <JumX> :D | |||
[22:53:17] <Stemby> il che non è quello che avevo chiesto | |||
[22:53:27] <Stemby> comunque abbiamo 2 float | |||
[22:53:32] <Stemby> che è già qualcosina | |||
[22:53:41] <Stemby> 0.2 e 0.5 sono float | |||
[22:53:47] <Stemby> controllate con type() | |||
[22:54:12] <Stemby> forza! | |||
[22:54:20] <amosse> [0.2] + [0.5] | |||
[22:54:21] <JumX> <class 'float'> | |||
[22:54:28] <Stemby> no amosse | |||
[22:54:34] <JumX> amosse senza parentesi | |||
[22:54:40] <Stemby> fate quello che chiedo | |||
[22:54:48] <amosse> ok | |||
[22:54:53] <Stemby> verificate che 0.5 e 0.2 sono float | |||
[22:55:23] <spirit> type(0.5) | |||
[22:55:27] <amosse> type(0.5) | |||
[22:55:37] <amosse> type(0.2) | |||
[22:55:37] <Stemby> incollate tutto... | |||
[22:55:42] <Stemby> >>> compresi | |||
[22:55:52] <Stemby> e ovviamente anche l'output | |||
[22:55:57] <spirit> >>> type(0.4) | |||
[22:55:59] <spirit> <class 'float'> | |||
[22:56:09] <Stemby> ok | |||
[22:56:22] <Stemby> 0.4 non era quello di prima, ma poco importa | |||
[22:56:29] <JumX> E' possibile fare con un solo type() ? | |||
[22:56:36] <spirit> ops | |||
[22:56:46] <Stemby> JumX: ? | |||
[22:57:06] <Ernestus> si | |||
[22:57:20] <JumX> contemporaneamente con in una solo riga trovare il type di più dati? | |||
[22:57:30] <Stemby> sì, ma non è molto utile | |||
[22:57:41] <Stemby> in realtà type() non lo si usa praticamente mai | |||
[22:57:51] <JumX> per curiosità | |||
[22:57:54] <amosse> type((0.5) and (0.2)) | |||
[22:57:59] <Stemby> amosse: no | |||
[22:58:04] <amosse> <class 'float'> | |||
[22:58:23] <Stemby> amosse: quello che hai fatto è una cosa diversa da quello che pensi | |||
[22:58:29] <Stemby> ti ricordi come funziona and? | |||
[22:58:33] <|Wolf|> prova type('0.5' and 0.2) | |||
[22:58:44] <Stemby> amosse: http://docs.python.org/release/3.1.3/library/stdtypes.html#boolean-operations-and-or-not | |||
[22:58:50] <JumX> >>> type(0.5 and 0.2) | |||
[22:58:59] <JumX> <class 'float'> | |||
[22:59:02] <Stemby> prova | |||
[22:59:07] <Stemby> >>> 0.5 and 0.2 | |||
[22:59:17] <JumX> E' giust ? | |||
[22:59:22] <Stemby> no | |||
[22:59:29] <Stemby> nel senso che non è quello che pensate | |||
[22:59:33] <Stemby> http://docs.python.org/release/3.1.3/library/stdtypes.html#boolean-operations-and-or-not | |||
[22:59:38] <Stemby> lì c'è la spiegazione | |||
[22:59:49] <Stemby> ma l'avevamo visto in dettaglio diverse lezioni fa | |||
[22:59:58] <amosse> ok , hai ragione | |||
[22:59:59] <Stemby> e non mi sembra il caso di riprenderlo | |||
[23:00:17] <Stemby> in pratica fare | |||
[23:00:23] <Stemby> >>> type(0.5 and 0.2) | |||
[23:00:28] <Stemby> equivale esattamente a fare | |||
[23:00:34] <Stemby> >>> type(0.2) | |||
[23:00:45] <Stemby> perché | |||
[23:00:50] <Stemby> 0.5 and 0.2 | |||
[23:00:53] <Stemby> dà | |||
[23:00:55] <Stemby> 0.2 | |||
[23:01:10] <Stemby> quindi non è quello che cercavate | |||
[23:01:49] <Stemby> quello che volete fare si può fare ad esempio con un for | |||
[23:02:04] <Stemby> ma, ripeto, è inutile | |||
[23:02:34] <Stemby> torniamo alla mia domanda | |||
[23:02:47] <Stemby> abbiamo chiarito (spero!) cos'è un float | |||
[23:02:55] <Stemby> ora mi fate una lista contenete 2 float? | |||
[23:03:18] <amosse> ma qual'é la sintassi per passare due arg. a type()? | |||
[23:03:33] <Stemby> amosse: lo vediamo dopo? | |||
[23:03:40] <spirit> [0.5, 0,8] | |||
[23:03:41] <amosse> ok | |||
[23:03:46] <Stemby> spirit: no | |||
[23:03:57] <Stemby> hai fatto una lista contenente 3 oggetti | |||
[23:04:02] <Stemby> un float e 2 interi | |||
[23:04:19] <Stemby> i 3 oggetti sono: | |||
[23:04:22] <Stemby> 0.5 | |||
[23:04:23] <Stemby> 0 | |||
[23:04:24] <Stemby> 8 | |||
[23:04:32] <spirit> ho visto.. | |||
[23:04:33] <|Wolf|> spirit, l'hai provato nell'interprete? | |||
[23:04:42] <spirit> sto provando | |||
[23:04:49] <|Wolf|> dovete sempre provare tutto | |||
[23:05:02] <Stemby> prima di postare | |||
[23:05:12] <|Wolf|> nella maggior parte dei casi python vi dirà se avete fatto qualcosa di sbagliato | |||
[23:05:22] <JumX> >>> (0.5,0.8,0.7)+ (0.5,0.5) | |||
[23:05:30] <Stemby> JumX: no | |||
[23:05:30] <JumX> (0.5, 0.8, 0.7, 0.5, 0.5) | |||
[23:05:40] <Stemby> appunto! | |||
[23:05:50] <Stemby> tu stai usando le tuple | |||
[23:05:55] <Stemby> che non abbiamo ancora fatto | |||
[23:06:02] <JumX> azz... | |||
[23:06:05] <Stemby> cacchiarola, facciamo quello che chiedo? | |||
[23:06:11] <Stemby> una lista contenente 2 float | |||
[23:06:13] <Stemby> punto | |||
[23:06:18] <spirit> [0.5, 0.8] | |||
[23:06:19] <|Wolf|> Stemby, posso insegnargli del _ nell'interprete? | |||
[23:06:30] <Stemby> spirit: alleluia | |||
[23:06:34] <Stemby> |Wolf|: vai | |||
[23:06:42] <spirit> è che mi infreno.. | |||
[23:06:52] <|Wolf|> _ si riferisce all'ultima espressione printata nell'interprete | |||
[23:06:54] <|Wolf|> quindi: | |||
[23:07:06] <|Wolf|> >>> 3 + 5 | |||
[23:07:06] <|Wolf|> 8 | |||
[23:07:06] <|Wolf|> >>> _ | |||
[23:07:06] <|Wolf|> 8 | |||
[23:07:16] <|Wolf|> può essere utile per fare: | |||
[23:07:44] <|Wolf|> >>> (0.5,0.8,0.7)+ (0.5,0.5) | |||
[23:07:44] <|Wolf|> (0.5, 0.8, 0.7, 0.5, 0.5) | |||
[23:07:44] <|Wolf|> >>> type(_) | |||
[23:07:44] <|Wolf|> <class 'tuple'> | |||
[23:08:09] <Stemby> bello, non lo conoscevo | |||
[23:08:13] <|Wolf|> in questo modo il _ si riferisce all'ultima espressione (cioè (0.5, 0.8, 0.7, 0.5, 0.5) ) | |||
[23:08:27] <Stemby> comunque esiste anche l'hisory | |||
[23:08:28] <|Wolf|> e con type() puoi controllare cos'è senza star lì a fare copia incolla | |||
[23:08:32] <Stemby> *history | |||
[23:08:51] <Stemby> basta usare la freccia in su | |||
[23:08:54] <Stemby> e modificare | |||
[23:09:00] <Stemby> però _ è più comodo | |||
[23:09:06] <Stemby> grazie |Wolf| | |||
[23:09:12] <Stemby> allora. proseguiamo | |||
[23:09:22] <|Wolf|> quindi se Stemby chiede una lista, e voi dopo un po' di esperimenti arrivate a qualcosa che vi sembra una lista, potete provare a fare type(_) per vedere se è veramente una lista o un'altra cosa | |||
[23:09:27] <Stemby> funalmente abbiamo una lista con 2 float | |||
[23:09:39] <Stemby> *finalmente | |||
[23:09:54] <Stemby> ora me la concatenate ad un'altra lista? | |||
[23:10:00] <Stemby> (contenente quel che volete) | |||
[23:10:48] <spirit> >>> [0.5, 0.8] + ['pink'] | |||
[23:10:54] <|Wolf|> quindi partite con 2 liste, le concatenate e ottenete una terza lista | |||
[23:10:56] <Stemby> spirit: ok | |||
[23:11:03] <Stemby> posta anche l'output | |||
[23:11:06] <|Wolf|> spirit, hai provato nell'interprete e verificato che esce una lista? | |||
[23:11:11] <spirit> [0.5, 0.8, 'pink'] | |||
[23:11:18] <spirit> si | |||
[23:11:23] <Stemby> ok | |||
[23:11:34] <Stemby> spirit: descrivi quello che hai fatto | |||
[23:11:36] <Stemby> a parole | |||
[23:11:39] <spirit> ora è chiaro il concetto di lista | |||
[23:11:44] <Stemby> in modo sintetico ma esauriente | |||
[23:12:09] <spirit> lista contenente 2 float ed una con oggetto | |||
[23:12:17] <|Wolf|> che oggetto? | |||
[23:12:19] <Stemby> spirit: che oggetto? | |||
[23:12:23] <Stemby> asd | |||
[23:12:30] <spirit> 'pink' | |||
[23:12:34] <Stemby> che è? | |||
[23:12:34] <JumX> quindi la differenza sono le parentesi ? | |||
[23:12:46] <spirit> stringa | |||
[23:12:47] <|Wolf|> JumX, differenza con cosa? | |||
[23:12:58] <JumX> un attimo | |||
[23:13:09] <spirit> lista.. | |||
[23:13:10] <Stemby> spirit: ok | |||
[23:13:17] <|Wolf|> spirit, stringa o lista? | |||
[23:13:28] <|Wolf|> spirit, se non sei sicuro chiedi a python | |||
[23:13:29] <Stemby> spirit: da capo | |||
[23:13:31] <spirit> lista perchè [] | |||
[23:13:38] <|Wolf|> e cosa c'è nella lista? | |||
[23:13:48] <Stemby> soggetto, verbo, complementi | |||
[23:13:54] <Stemby> altrimenti non ci capiamo | |||
[23:14:02] <JumX> >>> [0.5,0.6] facendo type(_) = <class 'list'> | |||
[23:14:14] <|Wolf|> JumX, sì | |||
[23:14:27] <|Wolf|> puoi anche fare type([0.5, 0.6]) direttamente | |||
[23:14:29] <JumX> ma se lo stesso lo faccio con le parentesi tonde mi da <class 'tuple'> | |||
[23:14:37] <|Wolf|> il _ serve quando vuoi fare qualcosa dopo che l'hai printato | |||
[23:14:54] <|Wolf|> JumX, sì, le liste usano le [] e le tuple le () | |||
[23:14:59] <Stemby> JumX: infatti ho detto che una lista è fatta così | |||
[23:15:01] <Stemby> [] | |||
[23:15:10] <Stemby> con in messo i vari oggetti separati da virgole | |||
[23:15:41] <|Wolf|> spirit, come fai con python a verificare che ['pink'] è una lista? | |||
[23:15:41] <JumX> scusa stemby ma non capivo [] che erano parentesi quadre | |||
[23:16:11] <Stemby> ah | |||
[23:16:18] <Stemby> beh, è così | |||
[23:16:19] <spirit> da errore | |||
[23:16:34] <Stemby> pre 22:41 | |||
[23:16:35] <|Wolf|> spirit, cosa dà errore e che errore dà? | |||
[23:16:43] <Stemby> *ore | |||
[23:16:53] <spirit> typeError: 'type' object is not subscriptable | |||
[23:17:03] <|Wolf|> spirit, cosa hai fatto? | |||
[23:17:23] <spirit> type['pink'] | |||
[23:17:30] <|Wolf|> non manca qualcosa? | |||
[23:17:38] <JumX> () | |||
[23:17:47] <|Wolf|> giusto | |||
[23:17:52] <Stemby> spirit: è una funzione... | |||
[23:18:03] <Stemby> le funzioni vogliono _sempre_ le parentesi | |||
[23:18:04] <|Wolf|> type è una funzione, e quando chiami una funzione fai nomefunzione(argomenti) | |||
[23:18:17] <|Wolf|> in questo caso l'argomento è ['pink'] | |||
[23:18:43] <spirit> cavolo.. | |||
[23:18:53] <Stemby> >>> type(['pink']) | |||
[23:18:53] <Stemby> <class 'list'> | |||
[23:18:54] <spirit> che frana | |||
[23:19:03] <Stemby> le tonde fan parte della funzione | |||
[23:19:12] <Stemby> le quadre sono la lista | |||
[23:19:20] <Stemby> e gli apici sono quelli della stringa | |||
[23:19:24] <Stemby> contenuta nella lista | |||
[23:19:27] <spirit> ok | |||
[23:19:39] <|Wolf|> quindi hai sempre type(...) | |||
[23:19:52] <|Wolf|> e di volta in volta al posto dei ... ci metti l'oggetto di cui vuoi verificare il tipo | |||
[23:20:10] <spirit> ci sono grazie | |||
[23:20:13] <Stemby> >>> type([]) | |||
[23:20:23] <Stemby> quella è una lista vuota | |||
[23:20:35] <Stemby> verifichi che [] sia una lista | |||
[23:20:52] <Stemby> come: | |||
[23:20:55] <Stemby> >>> type('') | |||
[23:21:02] <spirit> ok | |||
[23:21:03] <Stemby> verifichi che quella è una stringa | |||
[23:21:07] <Stemby> (vuota) | |||
[23:21:25] <Stemby> bon, continuiamo | |||
[23:21:33] <Stemby> ah, no | |||
[23:21:46] <Stemby> eravamo rimasti alla non-spiegazione si spirit | |||
[23:21:55] <Stemby> provo a spiegare io quel che ha fatto | |||
[23:22:08] <|Wolf|> dove? | |||
[23:22:09] <Stemby> >>> [0.5, 0.8] + ['pink'] | |||
[23:22:13] <|Wolf|> ok | |||
[23:22:18] <Stemby> ha concatenato 2 liste | |||
[23:22:25] <Stemby> la prima contenente 2 float | |||
[23:22:35] <Stemby> la seconda contenente solo 1 stringa | |||
[23:23:02] <Stemby> il risultato della concatenazione, ottenuta tramite l'operatore + messo tra le 2 liste, è una nuova lista | |||
[23:23:28] <Stemby> [0.5, 0.8, 'pink'] | |||
[23:23:34] <Stemby> contenente 3 oggetti | |||
[23:23:37] <Ernestus> capito Stemby... lo steso anche tra interi e float, interi e stringhe? | |||
[23:23:41] <Ernestus> *stesso | |||
[23:23:45] <|Wolf|> Ernestus, prova | |||
[23:23:45] <Stemby> stesso | |||
[23:23:54] <Stemby> comunque, come dice |Wolf|, prova | |||
[23:23:58] <|Wolf|> *sempre* provare | |||
[23:24:05] <Stemby> la shell interattiva è lì per quello | |||
[23:24:23] <|Wolf|> 1) perché fai prima; 2) perché è l'unico modo per avere la risposta giusta; | |||
[23:24:36] <Ernestus> type([1, 0.8] + ['0.9'])<class 'list'> | |||
[23:24:37] <|Wolf|> se chiedi a Stemby potrebbe anche sbagliare o potresti non capire la risposta | |||
[23:24:57] <|Wolf|> Ernestus, yep | |||
[23:24:58] <Stemby> Ernestus: hai capito quello che hai fatto? | |||
[23:25:19] <Ernestus> ho concatenato un intero e un float con un altro float | |||
[23:25:23] <Ernestus> in una lista | |||
[23:25:26] <Stemby> non solo | |||
[23:25:39] <Ernestus> ho concatenato due liste | |||
[23:25:44] <Stemby> per far quello bastava: | |||
[23:25:54] <Stemby> >>> [1, 0.8] + ['0.9'] | |||
[23:25:57] <Stemby> (prova) | |||
[23:26:18] <Stemby> altra cosa: | |||
[23:26:21] <JumX> ma ['0.9'] non è stringa | |||
[23:26:27] <Stemby> JumX: infatti | |||
[23:26:27] <Ernestus> una lista | |||
[23:26:32] <Stemby> sotavo per dirlo | |||
[23:26:35] <Stemby> Ernestus: calma | |||
[23:26:45] <Stemby> [1, 0.8] + ['0.9'] | |||
[23:26:53] <Stemby> questa è la concatenazione di 2 liste | |||
[23:27:03] <Stemby> la prima contiente un intero e un float | |||
[23:27:12] <Stemby> la seconda non contiene un float! | |||
[23:27:15] <Stemby> ma una stringa | |||
[23:27:33] <Stemby> Ernestus però ha fatto un'altra cosa | |||
[23:27:41] <Stemby> type([1, 0.8] + ['0.9']) | |||
[23:27:55] <Stemby> che non è uguale a | |||
[23:27:57] <Stemby> [1, 0.8] + ['0.9'] | |||
[23:28:03] <Stemby> giusto? | |||
[23:28:10] <Ernestus> ho chiesto a type di dirmi cos'è | |||
[23:28:14] <|Wolf|> c'è il type() in più | |||
[23:28:15] <Stemby> ok | |||
[23:28:20] <Ernestus> quindi credo sia la stessa cosa | |||
[23:28:22] <Stemby> no | |||
[23:28:32] <Stemby> tu hai chiamato una funzione | |||
[23:28:43] <Stemby> la funzione type() | |||
[23:28:49] <|Wolf|> il concatenare le liste è uguale | |||
[23:29:09] <|Wolf|> il risultato del concatenamento è poi andato a finire in type() che ne ha determinato il tipo | |||
[23:29:24] <Stemby> Ernestus: nella spiegazione dovevi dirmelo | |||
[23:29:57] <Stemby> tra l'altro c'era il dettaglio non trascurabile che il terzo oggetto è una stringa, e non un altro float | |||
[23:30:10] <Stemby> quindi la spiegazione era sbagliata comunque | |||
[23:30:25] <|Wolf|> quindi i passi che ha fatto python sono : type([1, 0.8] + ['0.9']) -> concatena le liste -> type([1, 0.8, '0.9']) -> determina il tipo di [1, 0.8, '0.9'] -> printa <class 'list'> | |||
[23:30:30] <Stemby> cerchiamo di essere sintetici, ma esaurienti e per quanto possibile corretti | |||
[23:31:00] <Stemby> ok? | |||
[23:31:08] <amosse> ok | |||
[23:31:15] <spirit> ok | |||
[23:31:16] <Stemby> questo per dire: usiamo il terminale | |||
[23:31:25] <Stemby> ma cerchiamo di capire anche cosa stiamo facendo | |||
[23:31:30] <Stemby> altrimenti è inutile | |||
[23:31:41] <Stemby> una cosa può funzionare | |||
[23:31:45] <Stemby> (dare un risultato) | |||
[23:32:01] <Stemby> ma è gravissimo se questo risultato non c'entra niente con quello che vogliamo noi | |||
[23:32:09] <Stemby> è il tipo di bug più insidioso | |||
[23:32:27] <Stemby> "il programma gira, quindi funziona" | |||
[23:32:31] <Stemby> niente di più falso | |||
[23:32:43] <JumX> infatti . ma è un bug ? | |||
[23:32:48] <Stemby> certo | |||
[23:33:10] <Stemby> se noi vogliamo ottenere mele e otteniamo cavolfiori, è un bug | |||
[23:33:23] <Stemby> ben peggiore di un syntax error | |||
[23:33:47] <Stemby> (quello te lo mostra l'interprete) | |||
[23:33:49] <JumX> JumX sta avendo serie perplessità su python ?!?!?!? | |||
[23:33:56] <Stemby> ? | |||
[23:34:08] <Stemby> in che senso? | |||
[23:34:19] <JumX> Significa che non ti puoi fidare. | |||
[23:34:26] <Stemby> è un computer | |||
[23:34:31] <Stemby> mica un cristiano | |||
[23:34:39] <Stemby> è un oggetto stupido | |||
[23:34:51] <|Wolf|> JumX, di cosa non ti puoi fidare? | |||
[23:34:52] <JumX> si ma uno + 1 deve dare 2 non asso per fischi | |||
[23:34:54] <Stemby> lui fa quel che tu gli dici di fare | |||
[23:35:19] <|Wolf|> appunto, bisogna fidarsi di python, non dell'umano che lo usa | |||
[23:35:26] <|Wolf|> gli umani sbagliano, python no | |||
[23:35:34] <|Wolf|> python fa quello che gli dice l'umano | |||
[23:35:36] <JumX> no un attimo | |||
[23:35:46] <JumX> wolf è il contraio | |||
[23:35:52] <|Wolf|> se l'umano gli dice la cosa sbagliata python fa esattamente quello che l'umano gli ha detto, cioè una cosa sbagliata | |||
[23:35:56] <Stemby> no, ha ragione | |||
[23:36:13] <Stemby> se tu gli dici di fare una cosa sbagliata, lui la fa | |||
[23:36:22] <Stemby> mica ti sa dire che la cosa è sbagliata | |||
[23:36:27] <Stemby> è stupido | |||
[23:36:32] <|Wolf|> JumX, se tu gli dici 1 + 1 lui ti darà sempre 2 | |||
[23:36:41] <|Wolf|> ma se tu gli dici '1' + '1', non ti dà 2 | |||
[23:36:45] <|Wolf|> ti dà '11' | |||
[23:36:49] <|Wolf|> è questo è corretto | |||
[23:36:51] <JumX> è stato un esempio .... | |||
[23:36:53] <|Wolf|> ma non è quello che volevi tu | |||
[23:37:06] <JumX> mi riferivo al type() ecc.ecc. vedi prima | |||
[23:37:15] <Stemby> JumX: cioè? | |||
[23:37:48] <JumX> l'hai detto tu: <Stemby>: ma è gravissimo se questo risultato non c'entra niente con quello che vogliamo noi <Stemby>: è il tipo di bug più insidioso | |||
[23:37:56] <Stemby> infatti! | |||
[23:38:09] <Stemby> se tu per calcolare l'area di un triangolo gli dici: | |||
[23:38:12] <Stemby> base * altezza | |||
[23:38:20] <Stemby> lui ti darà un risultato | |||
[23:38:30] <Stemby> solo che quella è l'area di un rettangolo | |||
[23:38:35] <Stemby> non di un triangolo | |||
[23:38:38] <JumX> ok | |||
[23:38:47] <Stemby> mica ti sa dire: | |||
[23:38:57] <Stemby> pirlone! devi dividere per 2! | |||
[23:39:14] <Stemby> nessun linguaggio di programmazione è in grado di farlo | |||
[23:39:28] <Stemby> è questo il bug più grave | |||
[23:39:35] <Stemby> quando ottieni un risultato | |||
[23:39:38] <Stemby> che è verosimile | |||
[23:39:43] <Stemby> ma che è sbagliato | |||
[23:39:54] <Stemby> se tu facessi: | |||
[23:40:02] <Stemby> base * altezzu / 2 | |||
[23:40:07] <Stemby> lui ti direbbe: | |||
[23:40:12] <Stemby> syntax error | |||
[23:40:21] <Stemby> perché la variabile si chiama altezza | |||
[23:40:24] <Stemby> e non altezzu | |||
[23:40:32] <Stemby> correggi ed è fatta | |||
[23:40:42] <Stemby> capisci la differenza? | |||
[23:40:45] <JumX> ok mi hai chiarito la cosa. | |||
[23:41:45] <Stemby> bon | |||
[23:41:54] <Stemby> allora, se non ci sono domande direi di finire qui | |||
[23:42:16] <Stemby> per la prossima volta: | |||
[23:42:20] <Stemby> capitolo 6 fatto | |||
[23:42:34] <spirit> ok | |||
[23:42:35] <|Wolf|> gli lasciamo i koan? | |||
[23:42:36] <Stemby> studiate i log, per mettervi in pari | |||
[23:42:40] <amosse> io una domanda ce l'avrei: | |||
[23:42:48] <Stemby> un attimo | |||
[23:42:53] <Stemby> finiamo coi compiti | |||
[23:42:57] <Stemby> ripeto: | |||
[23:43:00] <Stemby> capitolo 6 fatto | |||
[23:43:02] <Stemby> studiate i log, per mettervi in pari | |||
[23:43:25] <Stemby> finite di applicare la tabella http://docs.python.org/release/3.1.3/library/stdtypes.html#sequence-types-str-bytes-bytearray-list-tuple-range | |||
[23:43:41] <Stemby> alle liste, oltre che alle stringhe come avevamo già fatto (ripassare!) | |||
[23:43:51] <Ernestus> si, maestro | |||
[23:44:03] <Stemby> poi la prossima volta vedremo insieme l'altra tabella che volevo vedere oggi | |||
[23:44:09] <Stemby> |Wolf|: proponi :) | |||
[23:44:14] <JumX> capitolo 6 del libro Invent Your Own Computer Games with Python ? | |||
[23:44:21] <Stemby> JumX: sì | |||
[23:44:24] <|Wolf|> https://bitbucket.org/gregmalcolm/python_koans/wiki/Home | |||
[23:44:28] <Stemby> più tutti i precedenti, ovviamente | |||
[23:45:07] <|Wolf|> in pratica c'è un programmino che lanciate (quello che si vede nello screenshot) che vi dice quanti esericizi avete completato | |||
[23:45:17] <|Wolf|> e poi ci sono diversi esercizi su diversi file | |||
[23:45:50] <|Wolf|> e in ogni esercizio bisogna per esempio inserire la risposta giusta, sostituire una stringa, aggiungere una funzione e robe così | |||
[23:46:02] <Stemby> mmmm, lo vediamo la prossima volta insieme= | |||
[23:46:04] <Stemby> ? | |||
[23:46:12] <|Wolf|> ok | |||
[23:46:35] <Stemby> dai, per questa volta non vi do altro | |||
[23:46:43] <Stemby> così avete tempo per mettervi in pari | |||
[23:46:50] <Stemby> (ultima volta!) | |||
[23:46:51] <JumX> grazie :D | |||
[23:46:54] <Ernestus> fin troppo buono Stemby | |||
[23:47:11] <Stemby> ovviamente script da sottoporci son sempre benvenuti | |||
[23:47:11] <|Wolf|> btw, se avete dubbi potete venire su #python a chiedere | |||
[23:47:24] <JumX> La nostra faccia sotto i tuoi piedi ... e ti puoi anche muovere ! | |||
[23:47:26] <Ernestus> |Wolf|, cosa significa btw? | |||
[23:47:38] <|Wolf|> quindi se vi bloccate con qualcosa non aspettate mercoledì | |||
[23:47:43] <|Wolf|> Ernestus, by the way | |||
[23:47:53] <Ernestus> Grazie |Wolf| | |||
[23:48:07] <Stemby> http://lmgtfy.com/?q=btw | |||
[23:48:11] <spirit> ma sei lì |Wolf|? | |||
[23:48:26] <spirit> su #python ? | |||
[23:48:36] <|Wolf|> sì | |||
[23:48:40] <|Wolf|> c'è sempre qualcuno | |||
[23:48:54] <Stemby> anche qui su #debianizzati-corsi | |||
[23:49:00] <spirit> ok grazie per la tua disponibilità | |||
[23:49:00] <|Wolf|> in genere ci sono 30-40 persone | |||
[23:49:08] <Stemby> comuqnue su #python c'è più gente | |||
[23:49:10] <Stemby> :) | |||
[23:49:12] <|Wolf|> e qualcuno può rispondere | |||
[23:49:50] <amosse> come si fa a: 1) passare un file .txt ad uno script, 2) leggere il contenuto di tutte le righe, 3) raggruappare il contenuto in base ad alcuni valori, 4) restituire il file .txt modificato. | |||
[23:49:53] <Stemby> per i log mancanti: per favore segnalatelo sul forum | |||
[23:50:03] <Stemby> così per ogni altra cosa | |||
[23:50:12] <Stemby> non restate imbambolati una settimana intera | |||
[23:50:19] <Ernestus> segnalo io | |||
[23:50:42] <Ernestus> sono i log del 9 marzo? | |||
[23:50:48] <Stemby> amosse: 1) prossima volta | |||
[23:50:51] <Stemby> 2) pure | |||
[23:50:58] <Stemby> 3) ? | |||
[23:51:04] <Stemby> 4) prossima volta | |||
[23:51:23] <|Wolf|> amosse, hint: usando open() e i file object | |||
[23:51:24] <amosse> ok | |||
[23:51:24] <Stemby> input/output su file è un argomento di lezione | |||
[23:51:34] <Stemby> è inutile spiegarlo ora solo per te | |||
[23:51:54] <amosse> ok hai ragione | |||
[23:52:23] <amosse> wolf: hint:? | |||
[23:52:37] <JumX> ok notte a tutti | |||
[23:52:50] <JumX> e grazie per la pazienza | |||
[23:52:52] <|Wolf|> hint == suggerimento | |||
[23:52:56] <Ernestus> io vado... buonanotte a tutti | |||
[23:52:57] <Ernestus> a mercoled' | |||
[23:53:02] <Ernestus> mercoledì | |||
[23:53:04] <Stemby> fate i compiti! | |||
[23:53:11] <|Wolf|> e usate l'interprete! | |||
[23:53:15] <|Wolf|> tutti i giorni! | |||
[23:53:16] <JumX> ok stemby ciao | |||
[23:53:17] <Stemby> così possiamo accelerare un po' | |||
[23:53:21] <Stemby> notte | |||
[23:53:25] <amosse> ah.. ok | |||
</pre> | </pre> |
Versione attuale delle 18:00, 17 mar 2011
[21:38:27] <|Wolf|> avete fatto i compiti? [21:38:53] <amosse> si qualcosa [21:39:00] <|Wolf|> avete domande? [21:39:50] <amosse> ma ci sono dei metodi sulle stringhe non troppo chiari [21:39:58] <|Wolf|> tipo? [21:40:40] <amosse> tipo str.count() [21:40:54] <|Wolf|> cosa non hai capito di str.count()? [21:41:37] <amosse> non ho capito a cosa serve [21:41:50] <|Wolf|> help(str.count) cosa dice? [21:42:37] <amosse> Return the number of non-overlapping occurrences of substring sub in the range [start, end]. [21:42:55] <amosse> in pratica quando si usa? [21:43:23] <amosse> cosa intende per 'non-overlapping occurrences' [21:44:17] <|Wolf|> ad esempio se cerchi 'aaa'.count('aa') [21:44:24] <|Wolf|> cosa ti dà? [21:45:00] <amosse> 1 [21:45:04] --> JumX (~Mibbit@Azzurra-40E97FA1.247-95-r.retail.telecomitalia.it) has joined #debianizzati-corsi [21:45:34] <|Wolf|> perché? [21:45:52] <groll> beh innanzitutto sai cosa vuol dire overlapping? [21:46:06] <amosse> vuol dire che 'aa' è presente una volta in 'aaaa' [21:46:27] <|Wolf|> 'aaa', non 'aaaa' [21:46:32] <|Wolf|> con 'aaaa' quanto ti dà? [21:46:47] <amosse> sovrapporre [21:46:59] <groll> si sovrapposte [21:47:24] <JumX> Buonasera a tutti scusate il ritardo :) avete cominciato da molto ? [21:47:33] <amosse> 2 [21:47:34] <groll> un paio di ore :| [21:47:53] <JumX> si si .. sei proprio un "grollo" [21:47:53] <amosse> ho capito 'aa' é presente 2 volte in 'aaaa' [21:48:07] <|Wolf|> amosse, tutto chiaro? [21:48:18] <amosse> ok [21:48:36] <Stemby> eccomi [21:48:53] <amosse> ciao Stemby [21:49:11] <spirit> ciao [21:49:11] <|Wolf|> hello Stemby [21:49:20] <|Wolf|> Stemby, conosci i python koans? [21:49:52] <Stemby> |Wolf|: no [21:50:07] <Stemby> cosa sono? [21:50:20] <|Wolf|> degli esercizietti per imparare python [21:50:31] <|Wolf|> potreste proporli [21:50:45] <Stemby> a fine lezione guardiamo :) [21:50:55] <Stemby> altre domande? [21:50:56] <amosse> dove si trovano? [21:51:24] <groll> http://python-koans.appspot.com/ [21:51:48] <amosse> quali sono gli string methods più importanti (o usati)? [21:52:00] <|Wolf|> amosse, split, strip [21:52:10] <|Wolf|> lower [21:52:15] <|Wolf|> groll, quelli [21:52:29] <amosse> ok [21:52:30] <groll> amosse: comunque è inutile guardarseli tutti li guardi quando ti servono [21:52:44] <groll> l'importante è che impari a leggere la documentazione [21:52:59] <|Wolf|> anche sapere che esistono è importante [21:53:01] <amosse> ok [21:53:08] <|Wolf|> poi i dettagli di come funzionano te li vai a vedere man mano [21:53:21] <amosse> ok [21:54:53] <Stemby> il capitolo 6 era chiaro? [21:55:03] --> gnomo (~gnomob@151.56.Azzurra-A01DC50) has joined #debianizzati-corsi [21:55:05] <Stemby> (confesso che mi mancano da leggere le ultime pagine) [21:55:18] <Stemby> niente di nuovo, no? [21:55:31] <-- gnomo (~gnomob@151.56.Azzurra-A01DC50) has left #debianizzati-corsi [21:55:42] <Stemby> tranne forse il concetto di variabile globale e locale spiegato un po' meglio di quanto avevamo fatto [21:55:53] <Stemby> ci sono dubbi? [21:56:44] <amosse> me lo devo ancora leggere, lo guardo per la prossima volta [21:56:58] <Stemby> mmm [21:57:15] <Stemby> tutto sto silenzio mi fa pensare che anche gli altri non abbiano fatto i compiti... [21:57:31] <spirit> anch'io li devo leggere... [21:57:36] <Stemby> male [21:57:43] <Stemby> è lunghetto [21:57:53] <Stemby> se rimanete indietro poi è difficile recuperare [21:58:23] <Stemby> chi ha letto il capitolo 6, oltre a me? [21:58:29] <Stemby> (tranne le ultime pagine) [21:59:18] <Stemby> come temevo... [21:59:35] <amosse> lo rimettiamo per mercoledi? [21:59:38] <Stemby> facciamo così: per la prossima volta TASSATIVAMENTE il capitolo 6 deve essere fatto [21:59:50] <amosse> ok [21:59:53] <spirit> ok [21:59:57] <Stemby> e d'ora innanzi si prosegue a un capitolo alla volta [22:00:16] <Stemby> altrimenti non andiamo da nessuna parte [22:00:42] <Stemby> direi di iniziare la lezione [22:00:48] <Stemby> a meno che ci siano dubbi [22:00:50] <amosse> ok [22:00:56] <spirit> va bene [22:01:01] <Stemby> http://docs.python.org/release/3.1.3/library/stdtypes.html#old-string-formatting-operations [22:01:28] <Stemby> effettivamente si dice che la vecchia sintassi per la formattazione stringhe è obsoleta [22:01:53] <Stemby> quindi cerchiamo di usare .format() [22:02:02] <Stemby> (io per primo) [22:03:02] <Stemby> http://docs.python.org/release/3.1.3/library/stdtypes.html#mutable-sequence-types [22:03:12] <Stemby> bon, direi che è ora di introdurre le liste [22:03:21] <Stemby> qualcuno ha già iniziato ad usarle [22:03:32] <Stemby> che cos'è una lista? [22:04:20] <Stemby> amosse: aiutaci [22:04:27] <Stemby> (visto che le hai già usate) [22:04:30] <spirit> sequenza elenco [22:04:45] <Stemby> più o meno [22:04:51] <amosse> si liste o array [22:04:58] <amosse> liste ordine di elementi [22:05:04] <Stemby> allora [22:05:16] <Stemby> innanzitutto, in generale, è un tipo predefinito [22:05:18] <|Wolf|> liste e array son due cose diverse (anche se in qualche maniera simile) [22:05:39] <Stemby> abbiamo già visto altri tipi predefiniti [22:05:45] <Stemby> (o oggetti predefiniti) [22:05:50] <Stemby> li ripassiamo? [22:06:07] <spirit> ok [22:06:10] <Stemby> forza [22:06:19] <Stemby> 1) [22:06:23] <Stemby> ... [22:06:26] <Stemby> dai! [22:06:40] <Stemby> osate [22:06:55] <amosse> stringhe [22:06:59] <Stemby> ok [22:07:08] <Stemby> quello è l'ultimo che abbiamo visto [22:07:09] <amosse> interi [22:07:11] <Stemby> ok [22:07:20] <Stemby> poi? [22:07:36] <spirit> operazioni booleane [22:07:39] <Stemby> spirit: no [22:07:53] <Stemby> le operazioni booleane sono espressioni [22:07:54] <amosse> float (numeri con decimali) [22:07:58] <Stemby> amosse: ok [22:08:05] <Stemby> poi? [22:08:11] <amosse> tuple [22:08:13] <amosse> liste [22:08:22] <amosse> dizionari [22:08:23] <Stemby> le tuple non le abbiamo ancora fatte [22:08:28] <Stemby> i dizionari neppure [22:08:35] <Stemby> le liste ufficialmente stasera [22:08:43] <Stemby> i booleani [22:08:50] <Stemby> (True/False) [22:08:58] <amosse> si vero [22:08:59] <Stemby> quelli li abbiamo fatti [22:09:05] <Stemby> complex [22:09:10] <Stemby> solo accennatu [22:09:13] <Stemby> *accennati [22:09:24] <Stemby> (sappiamo che esistono) [22:09:33] <Stemby> credo nient'altro [22:09:43] <Stemby> raggruppiamoli [22:09:52] <Stemby> 1) booleani [22:10:11] <Stemby> 2) interi, float e complex [22:10:23] <Stemby> 3) stringhe, liste e tuple [22:10:28] <Stemby> 4) dizionari [22:10:41] <Stemby> direi che questa possa essere una buona suddivisione [22:11:02] <amosse> ok [22:11:03] <Stemby> perché i 2) sono insieme? [22:11:18] <groll> 5) insiemi [22:11:31] <groll> visto che li hai elencati quasi tutti :P [22:11:36] <Stemby> ok :) [22:11:46] <Stemby> perché i 2) sono insieme? [22:11:47] <amosse> perche sono numerici [22:11:51] <Stemby> esatto [22:11:57] <Stemby> sono tutti tipi numerici [22:12:02] <Stemby> e i 3)? [22:12:19] <amosse> sono sequenze [22:12:24] <Stemby> bravo [22:12:42] <Stemby> le stringhe sono sequenze di...? [22:12:51] <spirit> caratteri [22:12:54] <Stemby> ok [22:12:59] <amosse> caratteri [22:13:03] <Stemby> mentre le liste sono sequenze di...? [22:13:15] <Stemby> (se non lo sapete va bene lo stesso) [22:13:16] <amosse> elementi [22:13:20] <Stemby> oggetti [22:13:26] <Stemby> oggetti vari [22:13:33] <amosse> ok [22:13:49] <spirit> elementi etereogenei [22:13:49] <Stemby> c'è u'altra differenza tra stringa e lista [22:13:59] <Stemby> *un'altra [22:14:12] <Stemby> la stringa è inalterabile [22:14:19] <Stemby> la lista invece lo è [22:14:20] <|Wolf|> immutabile [22:14:28] <Stemby> giusto |Wolf| [22:14:35] <Stemby> non mi veniva il termine corretto [22:14:49] <Stemby> http://docs.python.org/release/3.1.3/library/stdtypes.html#mutable-sequence-types [22:15:03] <Stemby> qui vediamo un po' di cosucce che si possono fare con le liste [22:15:07] <Stemby> ma non con le stringhe [22:15:17] <Stemby> proprio perché le stringhe sono immutabili [22:15:54] <Stemby> tronando un attimo indietro: http://docs.python.org/release/3.1.3/library/stdtypes.html#sequence-types-str-bytes-bytearray-list-tuple-range [22:16:02] <Stemby> ci ricordiamo la prima tabella? [22:16:24] <Stemby> [S/N] [22:16:50] <Stemby> c'è nessuno????? [22:17:00] <amosse> si [22:17:25] <Stemby> spirit, JumX, Ernestus? [22:17:33] <spirit> ora si, scusa [22:17:41] <JumX> Ci siamo [22:17:49] <Stemby> vi ricordate quella tabella? [22:18:04] <Ernestus> io ci sono [22:18:10] <spirit> grosso modo.. [22:18:16] <Ernestus> veramente no [22:18:21] <Stemby> male... [22:18:34] <Stemby> non c'eri quando abbiamo fatto le stringhe? [22:18:36] <Ernestus> io non ero presente lo scorso e l'altro incontro [22:19:02] <Stemby> però ci sono i log IRC per recuperare [22:19:30] <Stemby> se dobbiamo ogni volta riprendere 2 o 3 lezioni indietro, non ce la sbrighiamo più [22:19:41] <amosse> a proposito l' ultimo non é caricato [22:19:46] <Ernestus> hai ragione Stemby, mea culpa [22:19:56] <Stemby> amosse: ricordalo a risca [22:20:03] <Stemby> segnalalo sul forum [22:20:03] <JumX> Stavo per dire lo stesso. [22:20:04] <amosse> ok [22:20:15] <Stemby> al massimo lo carico io [22:20:23] <Stemby> comunque dovete essere più attivi [22:20:32] <amosse> ok [22:20:39] <Stemby> non potete aspettare che vi si spinga come i bambini [22:20:39] <JumX> Hai ragione ... [22:21:19] <Stemby> allora, chi ripassa quella tabella? [22:21:28] <Stemby> intanto: che cos'è? [22:21:30] <amosse> io [22:22:04] <Stemby> vai amosse [22:22:41] <amosse> é la lista delle operazioni che si possono fare con le sequences type [22:23:02] <Stemby> sì, diciamo che è una raccolta di espressioni e metodi [22:23:14] <Stemby> applicabili alle sequenze [22:23:33] <amosse> 1) x in s -> Vero se 'x' é presente in 's' [22:23:41] <Stemby> sono dunque validi per tutte le sequenze [22:23:50] <Stemby> per ora avevamo visto solo le stringhe [22:24:03] <Stemby> ma oggi proviamo ad applicarli anche alle liste [22:24:16] <Stemby> amosse: ok [22:24:26] <Stemby> prova a costruire un'espressione con una lista [22:24:32] <Stemby> (con in) [22:24:45] <Stemby> nella shell interattiva, ovviamente [22:24:53] <amosse> ok [22:25:45] <Stemby> amosse: ce l'hai fatta? [22:25:48] <amosse> io = ['amos','marzuoli'] [22:25:57] <Stemby> senza variabili [22:26:17] <Stemby> quando costruiamo espressioni nella shell interattiva, cerchiamo di evitare le variabili [22:26:27] <amosse> ok [22:26:28] <Stemby> (non servono allo scopo) [22:26:52] <amosse> amos in io['amos','marzuoli'] [22:26:53] <amosse> True [22:27:06] <amosse> ops [22:27:06] <amosse> *'amos' [22:27:07] <Stemby> io? [22:27:25] <Stemby> faccio io [22:27:33] <amosse> io 'la lista' io[] [22:27:42] <Stemby> >>> 1 in [1,2,3] [22:27:42] <Stemby> True [22:28:00] <Stemby> >>> 5 in [1,2,3] [22:28:00] <Stemby> False [22:28:04] <Stemby> ok? [22:28:13] <amosse> ok [22:28:16] <Stemby> [1,2,3] è una lista [22:28:29] <Stemby> una lista contenente 3 interi [22:28:41] <amosse> ok [22:29:00] <Stemby> l'operatore in confronta l'oggetto che gli si passa con la sequenza successiva [22:29:06] <Stemby> (nel nostro caso la lista) [22:29:22] <Stemby> e restituisce vero se l'elemento è presente nella sequenza [22:29:31] <Stemby> 1 è presente → dà vero [22:29:37] <Stemby> 5 non lo è → dà falso [22:29:53] <Stemby> amosse: fammi un'altra espressione simile [22:30:06] <Stemby> ma con la lista contenente altri oggetti [22:30:09] <Stemby> (non interi) [22:30:22] <amosse> 'amos' in ['amos','marzuoli'] [22:30:25] <amosse> True [22:30:27] <Stemby> ok [22:30:40] <Stemby> per chi non c'era le altre volte, [22:30:52] <Stemby> un'espressione con una stringa come sequenza [22:31:03] <Stemby> (al posto della lista) [22:31:10] <Stemby> sempre con in [22:31:14] <Stemby> come operatore [22:31:19] <JumX> 'g' in ('g','h','l') True [22:31:28] <Stemby> JumX: no [22:31:35] <Stemby> quella non è una stringa [22:31:36] <JumX> ? [22:31:40] <Stemby> quella è una tupla [22:31:48] <Stemby> (che non abbiamo ancora fatto) [22:32:04] <groll> 'g' in 'ghl' [22:32:11] <JumX> ok [22:32:15] <Stemby> groll: non vale :p [22:32:22] <Stemby> tu sei escluso dal gioco :) [22:32:23] <groll> :p [22:32:26] <groll> uffa [22:32:44] <Stemby> >>> 'i' in 'pippo' [22:32:44] <Stemby> True [22:32:54] <Stemby> JumX: è chiaro cos'è una stringa? [22:32:56] <Ernestus> Stemby, tranquillo recupererò [22:32:58] <JumX> (grazie groll) [22:33:01] <Ernestus> comunque ho capito [22:33:16] <JumX> si anch'io [22:33:34] <Stemby> però ora è chiaro che cos'è una stringa? [22:33:40] <spirit> si [22:33:48] <Stemby> non ci dovrebbero essere più dubbi, a questo punto... [22:34:03] <spirit> per me ora è chiaro [22:34:05] <Stemby> bon, andiamo avanti [22:34:16] <Stemby> proviamo la concatenazione [22:34:30] <Stemby> (ricordo: con le stringhe da evitare, quando possibile) [22:34:43] <Stemby> prima un'espressione con 2 stringhe [22:34:50] <Stemby> e poi con 2 liste [22:34:52] <Stemby> forza [22:35:04] <Stemby> (terza linea della tabella) [22:35:55] <amosse> 'all'+'ora' [22:36:02] <Stemby> ok [22:36:06] <amosse> 'allora' [22:36:10] <Stemby> esatto [22:36:21] <Stemby> spirit: ci fai tu un'espressione con 2 liste? [22:36:34] <JumX> 'a'+'b' 'ab' [22:36:34] <Stemby> la concatenazione di 2 liste [22:36:39] <spirit> ma senza variabili? [22:36:46] <Stemby> senza variabili [22:36:56] <Stemby> per favore [22:37:04] <Stemby> facciamolo sempre nella shell interattiva [22:37:08] <Stemby> e incolliamo tutto [22:37:11] <Stemby> >>> compresi [22:37:31] <spirit> 'pippo' + 'clarabella' [22:37:40] <Stemby> non vedi i >>> [22:37:50] <Stemby> e quelle sono 2 stringhe [22:37:54] <Stemby> non 2 liste [22:38:01] <spirit> ah scusa [22:38:01] <Stemby> spirit: sei nella shell interattiva? [22:38:08] <spirit> si [22:38:13] <Stemby> incolla da lì [22:38:16] <Stemby> :) [22:38:32] <Stemby> l'operatore è quello giusto [22:38:34] <JumX> >>> 'il cacio' + 'cavallo è buono' 'il caciocavallo è buono' [22:38:48] <Stemby> quelle son sempre 2 stringhe [22:38:57] <Stemby> e manca un a capo [22:39:27] <Stemby> >>> 'il cacio' + 'cavallo è buono' [22:39:27] <Stemby> 'il caciocavallo è buono' [22:39:30] <amosse> >>> ['io','mia moglie'] + ['mio figlio'] [22:39:34] <Stemby> questo è l'output corretto [22:39:42] <Stemby> amosse: ok [22:39:49] <Stemby> incolla anche l'output [22:39:56] <amosse> ['io', 'mia moglie', 'mio figlio'] [22:40:08] <Stemby> ok [22:40:16] <Stemby> spirit: ora fanne una tu [22:40:27] <Stemby> con liste un po' diverse [22:40:33] <Stemby> contenenti ad esempio dei float [22:40:47] <Stemby> per chiarezza: [22:41:00] <Stemby> non è stato detto prima e nessuno me l'ha chiesto [22:41:12] <Stemby> comunque la sintassi di una lista è questa: [22:41:34] <Stemby> [oggetto, altro_oggetto, altro_oggetto_ancora, ecc.] [22:41:40] <Stemby> ovvero [22:41:44] <Stemby> [] [22:41:52] <Stemby> con in mezzo i vari oggetti [22:41:59] <Stemby> separati tra loro da virgole [22:42:11] <Stemby> una lista può essere anche vuota [22:42:20] <Stemby> vi ricordate com'è una stringa vuota? [22:42:27] <spirit> '' [22:42:30] <Stemby> ok [22:42:39] <JumX> "" [22:42:43] <Stemby> ok [22:42:49] <Stemby> mentre una lista vuota è [22:42:51] <Stemby> [] [22:43:25] <Stemby> ora, spirit: mi fai l'espressione che ti avevo chiesto? [22:43:36] <Stemby> 2 liste contenenti quanti float vuoi [22:43:40] <Stemby> e concatenate tra loro [22:43:59] <spirit> mi sono infrenato.. [22:44:06] <Stemby> un passo alla volta [22:44:12] <Stemby> chiaro cos'è una lista? [22:44:22] <Stemby> spirit: ↑ [22:44:24] <spirit> si [22:44:33] <Stemby> chiato cos'è un float? [22:44:42] <spirit> decimale [22:44:54] <Stemby> chiaro cos'è una lista di float? [22:45:02] <spirit> lista di decimali [22:45:07] <Stemby> esempio [22:45:15] <JumX> una lista sono due o più stringhe . Giusto? [22:45:20] <Stemby> JumX: no [22:45:32] <Stemby> è una sequenza di oggetti [22:45:40] <groll> notte [22:45:41] <Stemby> questi oggetti possono essere del tipo che vuoi [22:45:45] <Stemby> notte groll [22:45:45] <JumX> ok [22:45:49] <-- groll (~groll@Azzurra=64EE12F.48-151.net24.it) has quit (Read/Dead Error: Input/output error) [22:46:07] <Stemby> spirit: fammi una lista contenente 2 float [22:46:27] <spirit> un attimo [22:46:57] <spirit> float(0.5) + float(0.5) [22:47:02] <Stemby> .... [22:47:14] <Stemby> perché usi la funzione float? [22:47:14] <spirit> 1.0 [22:47:31] <Stemby> che cosa fa la funzione float()? [22:47:44] <Ernestus> trasforma stringa in float [22:47:50] <Ernestus> ? [22:47:55] <Stemby> non necessariamente una stringa [22:48:03] <Ernestus> trasforma l'argomento in float [22:48:03] <Stemby> trasforma un oggetto in float [22:48:08] <Stemby> esatto [22:48:16] <Stemby> ma 0.5 che tipo è? [22:48:24] <spirit> decimali [22:48:31] <Stemby> è un float [22:48:35] <Ernestus> '2.3' + '3.0' [22:48:36] <Ernestus> ? [22:48:42] <Stemby> allora perché trasformarlo in float? [22:48:44] <Stemby> Ernestus: no [22:48:51] <Stemby> quelle sono 2 stringhe [22:48:56] <Stemby> aiuto!!! [22:49:00] <|Wolf|> gh [22:49:09] <Stemby> allora [22:49:14] <Stemby> calma e sangue freddo [22:49:24] <Stemby> (anche se sto iniziando ad inquietarmi) [22:49:32] <Stemby> prima cosa [22:49:46] <Stemby> c'è una funzione che permentte di sapere il tipo di qualunque oggetto [22:49:50] <Stemby> qual'è? [22:49:59] <Stemby> senza apostrofo [22:50:02] <Stemby> qual è? [22:50:04] <spirit> type() [22:50:05] <JumX> type [22:50:07] <Stemby> ok! [22:50:11] <JumX> type() [22:50:24] <Stemby> type('2.3') [22:50:29] <Stemby> che cacchi ci dà? [22:50:34] <Stemby> *cacchio [22:50:38] <JumX> string [22:50:40] <Ernestus> stringa [22:50:50] <Stemby> appunto [22:50:56] <Ernestus> la stringa è qualcosa dentro le virgolette [22:50:56] <Stemby> io cos'ho chiesto? [22:51:01] <Stemby> Ernestus: sì [22:51:13] <Ernestus> lista di 2 float [22:51:16] <Stemby> appunto [22:51:31] <Stemby> cosa c'entrano le stringhe? [22:51:35] <Stemby> niente [22:51:58] <Stemby> prima spirit ha usato la funzione float [22:52:02] <spirit> ('2.3') + ('1') [22:52:03] <Stemby> float() [22:52:08] <Stemby> spirit: no!!!!!!!!! [22:52:12] <JumX> no [22:52:13] <Ernestus> sempre stringhe [22:52:21] <Stemby> scusa [22:52:23] <JumX> >>> (0.2) + (0.5) [22:52:30] <Stemby> JumX: senza parentesi [22:52:38] <JumX> è lo stesso [22:52:41] <Stemby> lo so [22:52:46] <Stemby> ma le parentesi sono inutili [22:52:49] <Stemby> e confondono [22:52:51] <JumX> ok [22:53:03] <JumX> >>> 0.2 + 0.5 [22:53:05] <spirit> sono affogato in un bicchier d'acqua [22:53:10] <Stemby> ora abbiamo la somma di 2 float [22:53:13] <JumX> :D [22:53:17] <Stemby> il che non è quello che avevo chiesto [22:53:27] <Stemby> comunque abbiamo 2 float [22:53:32] <Stemby> che è già qualcosina [22:53:41] <Stemby> 0.2 e 0.5 sono float [22:53:47] <Stemby> controllate con type() [22:54:12] <Stemby> forza! [22:54:20] <amosse> [0.2] + [0.5] [22:54:21] <JumX> <class 'float'> [22:54:28] <Stemby> no amosse [22:54:34] <JumX> amosse senza parentesi [22:54:40] <Stemby> fate quello che chiedo [22:54:48] <amosse> ok [22:54:53] <Stemby> verificate che 0.5 e 0.2 sono float [22:55:23] <spirit> type(0.5) [22:55:27] <amosse> type(0.5) [22:55:37] <amosse> type(0.2) [22:55:37] <Stemby> incollate tutto... [22:55:42] <Stemby> >>> compresi [22:55:52] <Stemby> e ovviamente anche l'output [22:55:57] <spirit> >>> type(0.4) [22:55:59] <spirit> <class 'float'> [22:56:09] <Stemby> ok [22:56:22] <Stemby> 0.4 non era quello di prima, ma poco importa [22:56:29] <JumX> E' possibile fare con un solo type() ? [22:56:36] <spirit> ops [22:56:46] <Stemby> JumX: ? [22:57:06] <Ernestus> si [22:57:20] <JumX> contemporaneamente con in una solo riga trovare il type di più dati? [22:57:30] <Stemby> sì, ma non è molto utile [22:57:41] <Stemby> in realtà type() non lo si usa praticamente mai [22:57:51] <JumX> per curiosità [22:57:54] <amosse> type((0.5) and (0.2)) [22:57:59] <Stemby> amosse: no [22:58:04] <amosse> <class 'float'> [22:58:23] <Stemby> amosse: quello che hai fatto è una cosa diversa da quello che pensi [22:58:29] <Stemby> ti ricordi come funziona and? [22:58:33] <|Wolf|> prova type('0.5' and 0.2) [22:58:44] <Stemby> amosse: http://docs.python.org/release/3.1.3/library/stdtypes.html#boolean-operations-and-or-not [22:58:50] <JumX> >>> type(0.5 and 0.2) [22:58:59] <JumX> <class 'float'> [22:59:02] <Stemby> prova [22:59:07] <Stemby> >>> 0.5 and 0.2 [22:59:17] <JumX> E' giust ? [22:59:22] <Stemby> no [22:59:29] <Stemby> nel senso che non è quello che pensate [22:59:33] <Stemby> http://docs.python.org/release/3.1.3/library/stdtypes.html#boolean-operations-and-or-not [22:59:38] <Stemby> lì c'è la spiegazione [22:59:49] <Stemby> ma l'avevamo visto in dettaglio diverse lezioni fa [22:59:58] <amosse> ok , hai ragione [22:59:59] <Stemby> e non mi sembra il caso di riprenderlo [23:00:17] <Stemby> in pratica fare [23:00:23] <Stemby> >>> type(0.5 and 0.2) [23:00:28] <Stemby> equivale esattamente a fare [23:00:34] <Stemby> >>> type(0.2) [23:00:45] <Stemby> perché [23:00:50] <Stemby> 0.5 and 0.2 [23:00:53] <Stemby> dà [23:00:55] <Stemby> 0.2 [23:01:10] <Stemby> quindi non è quello che cercavate [23:01:49] <Stemby> quello che volete fare si può fare ad esempio con un for [23:02:04] <Stemby> ma, ripeto, è inutile [23:02:34] <Stemby> torniamo alla mia domanda [23:02:47] <Stemby> abbiamo chiarito (spero!) cos'è un float [23:02:55] <Stemby> ora mi fate una lista contenete 2 float? [23:03:18] <amosse> ma qual'é la sintassi per passare due arg. a type()? [23:03:33] <Stemby> amosse: lo vediamo dopo? [23:03:40] <spirit> [0.5, 0,8] [23:03:41] <amosse> ok [23:03:46] <Stemby> spirit: no [23:03:57] <Stemby> hai fatto una lista contenente 3 oggetti [23:04:02] <Stemby> un float e 2 interi [23:04:19] <Stemby> i 3 oggetti sono: [23:04:22] <Stemby> 0.5 [23:04:23] <Stemby> 0 [23:04:24] <Stemby> 8 [23:04:32] <spirit> ho visto.. [23:04:33] <|Wolf|> spirit, l'hai provato nell'interprete? [23:04:42] <spirit> sto provando [23:04:49] <|Wolf|> dovete sempre provare tutto [23:05:02] <Stemby> prima di postare [23:05:12] <|Wolf|> nella maggior parte dei casi python vi dirà se avete fatto qualcosa di sbagliato [23:05:22] <JumX> >>> (0.5,0.8,0.7)+ (0.5,0.5) [23:05:30] <Stemby> JumX: no [23:05:30] <JumX> (0.5, 0.8, 0.7, 0.5, 0.5) [23:05:40] <Stemby> appunto! [23:05:50] <Stemby> tu stai usando le tuple [23:05:55] <Stemby> che non abbiamo ancora fatto [23:06:02] <JumX> azz... [23:06:05] <Stemby> cacchiarola, facciamo quello che chiedo? [23:06:11] <Stemby> una lista contenente 2 float [23:06:13] <Stemby> punto [23:06:18] <spirit> [0.5, 0.8] [23:06:19] <|Wolf|> Stemby, posso insegnargli del _ nell'interprete? [23:06:30] <Stemby> spirit: alleluia [23:06:34] <Stemby> |Wolf|: vai [23:06:42] <spirit> è che mi infreno.. [23:06:52] <|Wolf|> _ si riferisce all'ultima espressione printata nell'interprete [23:06:54] <|Wolf|> quindi: [23:07:06] <|Wolf|> >>> 3 + 5 [23:07:06] <|Wolf|> 8 [23:07:06] <|Wolf|> >>> _ [23:07:06] <|Wolf|> 8 [23:07:16] <|Wolf|> può essere utile per fare: [23:07:44] <|Wolf|> >>> (0.5,0.8,0.7)+ (0.5,0.5) [23:07:44] <|Wolf|> (0.5, 0.8, 0.7, 0.5, 0.5) [23:07:44] <|Wolf|> >>> type(_) [23:07:44] <|Wolf|> <class 'tuple'> [23:08:09] <Stemby> bello, non lo conoscevo [23:08:13] <|Wolf|> in questo modo il _ si riferisce all'ultima espressione (cioè (0.5, 0.8, 0.7, 0.5, 0.5) ) [23:08:27] <Stemby> comunque esiste anche l'hisory [23:08:28] <|Wolf|> e con type() puoi controllare cos'è senza star lì a fare copia incolla [23:08:32] <Stemby> *history [23:08:51] <Stemby> basta usare la freccia in su [23:08:54] <Stemby> e modificare [23:09:00] <Stemby> però _ è più comodo [23:09:06] <Stemby> grazie |Wolf| [23:09:12] <Stemby> allora. proseguiamo [23:09:22] <|Wolf|> quindi se Stemby chiede una lista, e voi dopo un po' di esperimenti arrivate a qualcosa che vi sembra una lista, potete provare a fare type(_) per vedere se è veramente una lista o un'altra cosa [23:09:27] <Stemby> funalmente abbiamo una lista con 2 float [23:09:39] <Stemby> *finalmente [23:09:54] <Stemby> ora me la concatenate ad un'altra lista? [23:10:00] <Stemby> (contenente quel che volete) [23:10:48] <spirit> >>> [0.5, 0.8] + ['pink'] [23:10:54] <|Wolf|> quindi partite con 2 liste, le concatenate e ottenete una terza lista [23:10:56] <Stemby> spirit: ok [23:11:03] <Stemby> posta anche l'output [23:11:06] <|Wolf|> spirit, hai provato nell'interprete e verificato che esce una lista? [23:11:11] <spirit> [0.5, 0.8, 'pink'] [23:11:18] <spirit> si [23:11:23] <Stemby> ok [23:11:34] <Stemby> spirit: descrivi quello che hai fatto [23:11:36] <Stemby> a parole [23:11:39] <spirit> ora è chiaro il concetto di lista [23:11:44] <Stemby> in modo sintetico ma esauriente [23:12:09] <spirit> lista contenente 2 float ed una con oggetto [23:12:17] <|Wolf|> che oggetto? [23:12:19] <Stemby> spirit: che oggetto? [23:12:23] <Stemby> asd [23:12:30] <spirit> 'pink' [23:12:34] <Stemby> che è? [23:12:34] <JumX> quindi la differenza sono le parentesi ? [23:12:46] <spirit> stringa [23:12:47] <|Wolf|> JumX, differenza con cosa? [23:12:58] <JumX> un attimo [23:13:09] <spirit> lista.. [23:13:10] <Stemby> spirit: ok [23:13:17] <|Wolf|> spirit, stringa o lista? [23:13:28] <|Wolf|> spirit, se non sei sicuro chiedi a python [23:13:29] <Stemby> spirit: da capo [23:13:31] <spirit> lista perchè [] [23:13:38] <|Wolf|> e cosa c'è nella lista? [23:13:48] <Stemby> soggetto, verbo, complementi [23:13:54] <Stemby> altrimenti non ci capiamo [23:14:02] <JumX> >>> [0.5,0.6] facendo type(_) = <class 'list'> [23:14:14] <|Wolf|> JumX, sì [23:14:27] <|Wolf|> puoi anche fare type([0.5, 0.6]) direttamente [23:14:29] <JumX> ma se lo stesso lo faccio con le parentesi tonde mi da <class 'tuple'> [23:14:37] <|Wolf|> il _ serve quando vuoi fare qualcosa dopo che l'hai printato [23:14:54] <|Wolf|> JumX, sì, le liste usano le [] e le tuple le () [23:14:59] <Stemby> JumX: infatti ho detto che una lista è fatta così [23:15:01] <Stemby> [] [23:15:10] <Stemby> con in messo i vari oggetti separati da virgole [23:15:41] <|Wolf|> spirit, come fai con python a verificare che ['pink'] è una lista? [23:15:41] <JumX> scusa stemby ma non capivo [] che erano parentesi quadre [23:16:11] <Stemby> ah [23:16:18] <Stemby> beh, è così [23:16:19] <spirit> da errore [23:16:34] <Stemby> pre 22:41 [23:16:35] <|Wolf|> spirit, cosa dà errore e che errore dà? [23:16:43] <Stemby> *ore [23:16:53] <spirit> typeError: 'type' object is not subscriptable [23:17:03] <|Wolf|> spirit, cosa hai fatto? [23:17:23] <spirit> type['pink'] [23:17:30] <|Wolf|> non manca qualcosa? [23:17:38] <JumX> () [23:17:47] <|Wolf|> giusto [23:17:52] <Stemby> spirit: è una funzione... [23:18:03] <Stemby> le funzioni vogliono _sempre_ le parentesi [23:18:04] <|Wolf|> type è una funzione, e quando chiami una funzione fai nomefunzione(argomenti) [23:18:17] <|Wolf|> in questo caso l'argomento è ['pink'] [23:18:43] <spirit> cavolo.. [23:18:53] <Stemby> >>> type(['pink']) [23:18:53] <Stemby> <class 'list'> [23:18:54] <spirit> che frana [23:19:03] <Stemby> le tonde fan parte della funzione [23:19:12] <Stemby> le quadre sono la lista [23:19:20] <Stemby> e gli apici sono quelli della stringa [23:19:24] <Stemby> contenuta nella lista [23:19:27] <spirit> ok [23:19:39] <|Wolf|> quindi hai sempre type(...) [23:19:52] <|Wolf|> e di volta in volta al posto dei ... ci metti l'oggetto di cui vuoi verificare il tipo [23:20:10] <spirit> ci sono grazie [23:20:13] <Stemby> >>> type([]) [23:20:23] <Stemby> quella è una lista vuota [23:20:35] <Stemby> verifichi che [] sia una lista [23:20:52] <Stemby> come: [23:20:55] <Stemby> >>> type('') [23:21:02] <spirit> ok [23:21:03] <Stemby> verifichi che quella è una stringa [23:21:07] <Stemby> (vuota) [23:21:25] <Stemby> bon, continuiamo [23:21:33] <Stemby> ah, no [23:21:46] <Stemby> eravamo rimasti alla non-spiegazione si spirit [23:21:55] <Stemby> provo a spiegare io quel che ha fatto [23:22:08] <|Wolf|> dove? [23:22:09] <Stemby> >>> [0.5, 0.8] + ['pink'] [23:22:13] <|Wolf|> ok [23:22:18] <Stemby> ha concatenato 2 liste [23:22:25] <Stemby> la prima contenente 2 float [23:22:35] <Stemby> la seconda contenente solo 1 stringa [23:23:02] <Stemby> il risultato della concatenazione, ottenuta tramite l'operatore + messo tra le 2 liste, è una nuova lista [23:23:28] <Stemby> [0.5, 0.8, 'pink'] [23:23:34] <Stemby> contenente 3 oggetti [23:23:37] <Ernestus> capito Stemby... lo steso anche tra interi e float, interi e stringhe? [23:23:41] <Ernestus> *stesso [23:23:45] <|Wolf|> Ernestus, prova [23:23:45] <Stemby> stesso [23:23:54] <Stemby> comunque, come dice |Wolf|, prova [23:23:58] <|Wolf|> *sempre* provare [23:24:05] <Stemby> la shell interattiva è lì per quello [23:24:23] <|Wolf|> 1) perché fai prima; 2) perché è l'unico modo per avere la risposta giusta; [23:24:36] <Ernestus> type([1, 0.8] + ['0.9'])<class 'list'> [23:24:37] <|Wolf|> se chiedi a Stemby potrebbe anche sbagliare o potresti non capire la risposta [23:24:57] <|Wolf|> Ernestus, yep [23:24:58] <Stemby> Ernestus: hai capito quello che hai fatto? [23:25:19] <Ernestus> ho concatenato un intero e un float con un altro float [23:25:23] <Ernestus> in una lista [23:25:26] <Stemby> non solo [23:25:39] <Ernestus> ho concatenato due liste [23:25:44] <Stemby> per far quello bastava: [23:25:54] <Stemby> >>> [1, 0.8] + ['0.9'] [23:25:57] <Stemby> (prova) [23:26:18] <Stemby> altra cosa: [23:26:21] <JumX> ma ['0.9'] non è stringa [23:26:27] <Stemby> JumX: infatti [23:26:27] <Ernestus> una lista [23:26:32] <Stemby> sotavo per dirlo [23:26:35] <Stemby> Ernestus: calma [23:26:45] <Stemby> [1, 0.8] + ['0.9'] [23:26:53] <Stemby> questa è la concatenazione di 2 liste [23:27:03] <Stemby> la prima contiente un intero e un float [23:27:12] <Stemby> la seconda non contiene un float! [23:27:15] <Stemby> ma una stringa [23:27:33] <Stemby> Ernestus però ha fatto un'altra cosa [23:27:41] <Stemby> type([1, 0.8] + ['0.9']) [23:27:55] <Stemby> che non è uguale a [23:27:57] <Stemby> [1, 0.8] + ['0.9'] [23:28:03] <Stemby> giusto? [23:28:10] <Ernestus> ho chiesto a type di dirmi cos'è [23:28:14] <|Wolf|> c'è il type() in più [23:28:15] <Stemby> ok [23:28:20] <Ernestus> quindi credo sia la stessa cosa [23:28:22] <Stemby> no [23:28:32] <Stemby> tu hai chiamato una funzione [23:28:43] <Stemby> la funzione type() [23:28:49] <|Wolf|> il concatenare le liste è uguale [23:29:09] <|Wolf|> il risultato del concatenamento è poi andato a finire in type() che ne ha determinato il tipo [23:29:24] <Stemby> Ernestus: nella spiegazione dovevi dirmelo [23:29:57] <Stemby> tra l'altro c'era il dettaglio non trascurabile che il terzo oggetto è una stringa, e non un altro float [23:30:10] <Stemby> quindi la spiegazione era sbagliata comunque [23:30:25] <|Wolf|> quindi i passi che ha fatto python sono : type([1, 0.8] + ['0.9']) -> concatena le liste -> type([1, 0.8, '0.9']) -> determina il tipo di [1, 0.8, '0.9'] -> printa <class 'list'> [23:30:30] <Stemby> cerchiamo di essere sintetici, ma esaurienti e per quanto possibile corretti [23:31:00] <Stemby> ok? [23:31:08] <amosse> ok [23:31:15] <spirit> ok [23:31:16] <Stemby> questo per dire: usiamo il terminale [23:31:25] <Stemby> ma cerchiamo di capire anche cosa stiamo facendo [23:31:30] <Stemby> altrimenti è inutile [23:31:41] <Stemby> una cosa può funzionare [23:31:45] <Stemby> (dare un risultato) [23:32:01] <Stemby> ma è gravissimo se questo risultato non c'entra niente con quello che vogliamo noi [23:32:09] <Stemby> è il tipo di bug più insidioso [23:32:27] <Stemby> "il programma gira, quindi funziona" [23:32:31] <Stemby> niente di più falso [23:32:43] <JumX> infatti . ma è un bug ? [23:32:48] <Stemby> certo [23:33:10] <Stemby> se noi vogliamo ottenere mele e otteniamo cavolfiori, è un bug [23:33:23] <Stemby> ben peggiore di un syntax error [23:33:47] <Stemby> (quello te lo mostra l'interprete) [23:33:49] <JumX> JumX sta avendo serie perplessità su python ?!?!?!? [23:33:56] <Stemby> ? [23:34:08] <Stemby> in che senso? [23:34:19] <JumX> Significa che non ti puoi fidare. [23:34:26] <Stemby> è un computer [23:34:31] <Stemby> mica un cristiano [23:34:39] <Stemby> è un oggetto stupido [23:34:51] <|Wolf|> JumX, di cosa non ti puoi fidare? [23:34:52] <JumX> si ma uno + 1 deve dare 2 non asso per fischi [23:34:54] <Stemby> lui fa quel che tu gli dici di fare [23:35:19] <|Wolf|> appunto, bisogna fidarsi di python, non dell'umano che lo usa [23:35:26] <|Wolf|> gli umani sbagliano, python no [23:35:34] <|Wolf|> python fa quello che gli dice l'umano [23:35:36] <JumX> no un attimo [23:35:46] <JumX> wolf è il contraio [23:35:52] <|Wolf|> se l'umano gli dice la cosa sbagliata python fa esattamente quello che l'umano gli ha detto, cioè una cosa sbagliata [23:35:56] <Stemby> no, ha ragione [23:36:13] <Stemby> se tu gli dici di fare una cosa sbagliata, lui la fa [23:36:22] <Stemby> mica ti sa dire che la cosa è sbagliata [23:36:27] <Stemby> è stupido [23:36:32] <|Wolf|> JumX, se tu gli dici 1 + 1 lui ti darà sempre 2 [23:36:41] <|Wolf|> ma se tu gli dici '1' + '1', non ti dà 2 [23:36:45] <|Wolf|> ti dà '11' [23:36:49] <|Wolf|> è questo è corretto [23:36:51] <JumX> è stato un esempio .... [23:36:53] <|Wolf|> ma non è quello che volevi tu [23:37:06] <JumX> mi riferivo al type() ecc.ecc. vedi prima [23:37:15] <Stemby> JumX: cioè? [23:37:48] <JumX> l'hai detto tu: <Stemby>: ma è gravissimo se questo risultato non c'entra niente con quello che vogliamo noi <Stemby>: è il tipo di bug più insidioso [23:37:56] <Stemby> infatti! [23:38:09] <Stemby> se tu per calcolare l'area di un triangolo gli dici: [23:38:12] <Stemby> base * altezza [23:38:20] <Stemby> lui ti darà un risultato [23:38:30] <Stemby> solo che quella è l'area di un rettangolo [23:38:35] <Stemby> non di un triangolo [23:38:38] <JumX> ok [23:38:47] <Stemby> mica ti sa dire: [23:38:57] <Stemby> pirlone! devi dividere per 2! [23:39:14] <Stemby> nessun linguaggio di programmazione è in grado di farlo [23:39:28] <Stemby> è questo il bug più grave [23:39:35] <Stemby> quando ottieni un risultato [23:39:38] <Stemby> che è verosimile [23:39:43] <Stemby> ma che è sbagliato [23:39:54] <Stemby> se tu facessi: [23:40:02] <Stemby> base * altezzu / 2 [23:40:07] <Stemby> lui ti direbbe: [23:40:12] <Stemby> syntax error [23:40:21] <Stemby> perché la variabile si chiama altezza [23:40:24] <Stemby> e non altezzu [23:40:32] <Stemby> correggi ed è fatta [23:40:42] <Stemby> capisci la differenza? [23:40:45] <JumX> ok mi hai chiarito la cosa. [23:41:45] <Stemby> bon [23:41:54] <Stemby> allora, se non ci sono domande direi di finire qui [23:42:16] <Stemby> per la prossima volta: [23:42:20] <Stemby> capitolo 6 fatto [23:42:34] <spirit> ok [23:42:35] <|Wolf|> gli lasciamo i koan? [23:42:36] <Stemby> studiate i log, per mettervi in pari [23:42:40] <amosse> io una domanda ce l'avrei: [23:42:48] <Stemby> un attimo [23:42:53] <Stemby> finiamo coi compiti [23:42:57] <Stemby> ripeto: [23:43:00] <Stemby> capitolo 6 fatto [23:43:02] <Stemby> studiate i log, per mettervi in pari [23:43:25] <Stemby> finite di applicare la tabella http://docs.python.org/release/3.1.3/library/stdtypes.html#sequence-types-str-bytes-bytearray-list-tuple-range [23:43:41] <Stemby> alle liste, oltre che alle stringhe come avevamo già fatto (ripassare!) [23:43:51] <Ernestus> si, maestro [23:44:03] <Stemby> poi la prossima volta vedremo insieme l'altra tabella che volevo vedere oggi [23:44:09] <Stemby> |Wolf|: proponi :) [23:44:14] <JumX> capitolo 6 del libro Invent Your Own Computer Games with Python ? [23:44:21] <Stemby> JumX: sì [23:44:24] <|Wolf|> https://bitbucket.org/gregmalcolm/python_koans/wiki/Home [23:44:28] <Stemby> più tutti i precedenti, ovviamente [23:45:07] <|Wolf|> in pratica c'è un programmino che lanciate (quello che si vede nello screenshot) che vi dice quanti esericizi avete completato [23:45:17] <|Wolf|> e poi ci sono diversi esercizi su diversi file [23:45:50] <|Wolf|> e in ogni esercizio bisogna per esempio inserire la risposta giusta, sostituire una stringa, aggiungere una funzione e robe così [23:46:02] <Stemby> mmmm, lo vediamo la prossima volta insieme= [23:46:04] <Stemby> ? [23:46:12] <|Wolf|> ok [23:46:35] <Stemby> dai, per questa volta non vi do altro [23:46:43] <Stemby> così avete tempo per mettervi in pari [23:46:50] <Stemby> (ultima volta!) [23:46:51] <JumX> grazie :D [23:46:54] <Ernestus> fin troppo buono Stemby [23:47:11] <Stemby> ovviamente script da sottoporci son sempre benvenuti [23:47:11] <|Wolf|> btw, se avete dubbi potete venire su #python a chiedere [23:47:24] <JumX> La nostra faccia sotto i tuoi piedi ... e ti puoi anche muovere ! [23:47:26] <Ernestus> |Wolf|, cosa significa btw? [23:47:38] <|Wolf|> quindi se vi bloccate con qualcosa non aspettate mercoledì [23:47:43] <|Wolf|> Ernestus, by the way [23:47:53] <Ernestus> Grazie |Wolf| [23:48:07] <Stemby> http://lmgtfy.com/?q=btw [23:48:11] <spirit> ma sei lì |Wolf|? [23:48:26] <spirit> su #python ? [23:48:36] <|Wolf|> sì [23:48:40] <|Wolf|> c'è sempre qualcuno [23:48:54] <Stemby> anche qui su #debianizzati-corsi [23:49:00] <spirit> ok grazie per la tua disponibilità [23:49:00] <|Wolf|> in genere ci sono 30-40 persone [23:49:08] <Stemby> comuqnue su #python c'è più gente [23:49:10] <Stemby> :) [23:49:12] <|Wolf|> e qualcuno può rispondere [23:49:50] <amosse> come si fa a: 1) passare un file .txt ad uno script, 2) leggere il contenuto di tutte le righe, 3) raggruappare il contenuto in base ad alcuni valori, 4) restituire il file .txt modificato. [23:49:53] <Stemby> per i log mancanti: per favore segnalatelo sul forum [23:50:03] <Stemby> così per ogni altra cosa [23:50:12] <Stemby> non restate imbambolati una settimana intera [23:50:19] <Ernestus> segnalo io [23:50:42] <Ernestus> sono i log del 9 marzo? [23:50:48] <Stemby> amosse: 1) prossima volta [23:50:51] <Stemby> 2) pure [23:50:58] <Stemby> 3) ? [23:51:04] <Stemby> 4) prossima volta [23:51:23] <|Wolf|> amosse, hint: usando open() e i file object [23:51:24] <amosse> ok [23:51:24] <Stemby> input/output su file è un argomento di lezione [23:51:34] <Stemby> è inutile spiegarlo ora solo per te [23:51:54] <amosse> ok hai ragione [23:52:23] <amosse> wolf: hint:? [23:52:37] <JumX> ok notte a tutti [23:52:50] <JumX> e grazie per la pazienza [23:52:52] <|Wolf|> hint == suggerimento [23:52:56] <Ernestus> io vado... buonanotte a tutti [23:52:57] <Ernestus> a mercoled' [23:53:02] <Ernestus> mercoledì [23:53:04] <Stemby> fate i compiti! [23:53:11] <|Wolf|> e usate l'interprete! [23:53:15] <|Wolf|> tutti i giorni! [23:53:16] <JumX> ok stemby ciao [23:53:17] <Stemby> così possiamo accelerare un po' [23:53:21] <Stemby> notte [23:53:25] <amosse> ah.. ok