Accademia:Log 2011 03 20: 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...') |
(Nessuna differenza)
|
Versione delle 11:40, 22 mar 2011
21:56:31 < |Wolf|> c'è il corso? 21:56:59 < amosse> si siamo su gobby 21:57:05 < Ernestus> arrivo su gobby 21:57:26 < Ernestus> Stemby, ma il tuo indirizzo di gobby è sempre attivo? 21:57:36 < Stemby> sì Ernestus 21:57:58 < Ernestus> ottimo 21:58:07 < Stemby> questo non ti autorizza ad usarlo impropriamente... :p 21:58:17 < Stemby> (altrimenti adotterò contromisure severe) 22:08:01 < Ernestus> nono tranquillo, l'ho usato per fare una pagina del wiki 22:40:34 < Stemby> ok, dopo il programmino, cerchiamo di riprendere la lezione 22:40:48 < Ernestus> eccomi 22:40:53 < Stemby> riguardo a quanto fatto finora, ci sono domande? 22:41:00 < amosse> ok funziona benissimo 22:41:16 < spirit> per ora no.. 22:41:39 < amosse> il codice che avete scritto non é facilissimo, me lo devo un po' masticare 22:41:46 < Stemby> vi siete esercitati con le liste? 22:41:55 < amosse> si 22:42:05 < groll> amosse: beh ask finchè non sai le eccezioni lascialo perdere 22:42:15 < amosse> ok 22:42:31 < Stemby> if __name__ == '__main__': 22:42:37 < Stemby> quella riga è chiara? 22:42:41 < Stemby> immagino di no 22:42:43 < amosse> non 22:42:52 < Stemby> è un trucchetto 22:43:03 < Stemby> __name__ è una variabile speciale 22:43:03 < amosse> puoi spiegare 22:43:24 < Stemby> (tutti gli oggetti che sono circondati da __ sono oggetti speciali) 22:43:43 < Ernestus> e che vantaggi hanno? 22:43:54 < Stemby> non hanno vantaggi 22:43:59 < Stemby> son creati dall'interprete 22:44:18 < Stemby> se avete usato il debugger, li dovreste aver visti 22:44:28 < Stemby> avete provato il debigger? 22:44:34 < Stemby> *debugger 22:44:48 < amosse> no io non ho letto il capitolo 22:44:50 < spirit> Si.Solo oggi. Ma cercavo di capire il cap.8. Il diagramma di flusso. Cioè la creazione di un idea. 22:44:56 < Stemby> male amosse 22:44:59 < Ernestus> esatto quello dell'impiccato 22:45:02 < amosse> lo faccio per la prox 22:45:08 < Stemby> spirit: quello non l'abbiamo ancora fatto 22:45:13 < Stemby> è per la prossima volta 22:45:17 < spirit> Ah.. 22:45:33 < Stemby> tra l'altro dovevo dirvi un po' di cosucce a riguardo 22:45:39 < Stemby> tornando a __name__ 22:46:00 < Stemby> come dicevo, è una variabile creata dall'interprete 22:46:25 < Stemby> quando vale '__main__', significa che si sta eseguendo quel modulo 22:46:35 < Stemby> è una semplice stringa 22:46:40 < Stemby> con quel contenuto 22:47:07 < Stemby> quindi se eseguite quel modulo (come al solito), la variabile __name__ assumerà quel valore 22:47:35 < Stemby> dunque il blocco di codice che segue l'if, verrà eseguito SOLO quando si esegue il modulo 22:47:55 < spirit> Bello comunque, per quel poco che ho fatto, il debugger. 22:47:56 < Stemby> se invece il modulo viene importato, quel blocco verrà ignorato 22:48:19 < Stemby> chiaro, amosse? 22:48:33 < groll> notte 22:48:37 < Stemby> per chiarire 22:48:41 < amosse> se eseguiamo il modulo mortgage2.py? 22:48:46 < Stemby> ciao groll, e grazie 22:48:49 -!- groll [~groll@Azzurra=1779B648.48-151.net24.it] has quit [Read/Dead Error: Input/output error] 22:48:51 < Ernestus> notte 22:48:53 < Stemby> ? 22:49:07 < Ernestus> non viene ignorato 22:49:12 < Stemby> il modulo l'hai chiamato mutuo.py 22:49:30 < Ernestus> se importa il modulo, ignora l'oggetto 22:49:36 < Stemby> no 22:49:38 < amosse> si scusa intendevo quello 22:49:40 < Stemby> ignora il blocco 22:49:48 < Stemby> allora 22:50:03 < Stemby> quando importate un modulo, per prima cosa quel modulo viene eseguito 22:50:06 < Stemby> ovvero: 22:50:19 < Stemby> se scrivete un modulo pippo.py 22:50:27 < Stemby> contenente solo: 22:50:33 < Stemby> print('pippo') 22:50:40 < Stemby> e lo importate con 22:50:44 < Stemby> import pippo 22:51:05 < Stemby> vedrete che quella riga viene eseguita 22:51:15 < Stemby> e quindi verrà stampato 'pippo' 22:51:41 < Stemby> però in genere, quando si importa un modulo, si vuole evitare questo comportamento 22:51:53 < Stemby> si vuole avere a disposizione i vari oggetti 22:52:02 < Stemby> e nient'altro 22:52:32 < Stemby> le funzioni ormai dovreste sapere che non vengono mai eseguite 22:52:47 < Stemby> per eseguirle, bisogna chiamarle 22:53:03 < Stemby> in mutuo.py abbiamo alcune funzioni 22:53:24 < Stemby> se importiamo quel modulo, le funzioni vengono definite, ma non vengono eseguite 22:53:36 < Stemby> perché le chiamate sono protette da quel trucchetto 22:53:46 < Stemby> la riga if __name__ == '__main__': 22:53:53 < Stemby> chiaro ora? 22:54:26 < Stemby> Ernestus: ? 22:54:28 < Stemby> amosse: ? 22:54:31 < amosse> quindi con quel sistema 22:54:33 < Stemby> spirit: ? 22:54:51 < spirit> cercavo di capire.. 22:54:54 < Ernestus> sisi 22:55:13 < amosse> le funzioni vengono automaticamente chiamate...? 22:55:25 < amosse> giusto? 22:55:53 < Stemby> no 22:55:54 < amosse> quando faccio girare mutuo.py 22:56:13 < Stemby> quando fai girare mutuo.py è come se l'if non esistesse 22:56:22 < Stemby> e il blocco seguente non fosse indentato 22:56:42 < Stemby> quando invece importi il modulo, è come se non esistesse niente 22:56:43 < amosse> ah.. 22:57:05 < Stemby> né l'if, né il blocco 22:57:29 < amosse> ok 22:57:37 < Stemby> ottimo 22:57:48 < Stemby> è un trucchetto usatissimo 22:57:54 < Stemby> direi praticamente sempre 22:58:13 < Stemby> in questo modo le funzioni possono essere usate anche da altri programmi 22:58:17 < Stemby> senza interferenze 22:58:23 < spirit> ok 22:58:34 < Stemby> basta importare il modulo 22:58:43 < Ernestus> e mettere la variabile 22:58:47 < Ernestus> in mezzo ai trattini 22:58:50 < Ernestus> giusto? 22:58:50 < Stemby> ? 22:58:51 < Stemby> no 22:59:08 < Stemby> Ernestus: mi sa che non hai capito... 22:59:19 < Ernestus> facciamo un esempio con il modulo pippo 22:59:20 < Ernestus> ? 22:59:24 < Stemby> ok 22:59:27 < Ernestus> import pippo 22:59:31 < Ernestus> print("pippo") 22:59:43 < Stemby> allora 22:59:51 < amosse> ma scusa anche con import possono essere usate anche da altri utenti...? 22:59:54 < Stemby> tutti voi avete IDLE installato? 23:00:05 < amosse> si 23:00:10 < Stemby> ottimo 23:00:14 < Ernestus> si 23:00:20 < Stemby> facciamo così 23:00:24 < Stemby> doodle 23:00:27 < Stemby> no, sorry 23:00:32 < Stemby> volevo dire: gobby 23:16:01 -!- Ernestus [~ernesto@Azzurra-667A47D2.25-79-r.retail.telecomitalia.it] has quit [Quit: Ex-Chat] 00:10:00 -!- amosse [~Mibbit@Azzurra-788D7337.252-95-r.retail.telecomitalia.it] has quit [Quit: http://www.mibbit.com ajax IRC Client] 00:39:06 < Stemby> allora 00:39:27 < Stemby> abbiamo spiegato su gobby il funzionamento del trucchetto: 00:39:39 < Stemby> if __name__ == '__main__' 00:39:45 < Stemby> spero che ora sia chiaro 00:39:54 < spirit> si 00:39:54 < Stemby> se non lo fosse: cercate in rete 00:40:10 < Stemby> al limite lo riprendiamo la prossima volta 00:40:24 < Stemby> per la prossima volta vi darei solo il capitolo 8 00:40:27 < Stemby> è molto semplice 00:40:58 < Stemby> ma putroppo per scrivere i diagrammi non segue gli standard 00:41:14 < Stemby> vi ricordate le letture che vi avevo indicato ad inizio corso? 00:41:46 < spirit> sui diagrammi di flusso? 00:41:48 < Stemby> una delle prime lezioni, in cui abbiamo trattato il concetto di algoritmo 00:41:52 < Stemby> sì, esatto spirit 00:42:05 < Stemby> erano 2 presentazioni 00:42:14 < Stemby> (pdf di slide) 00:42:32 < Stemby> se non ve le ricordate, riprendetele 00:42:54 < Stemby> spiegavano in modo semplice come si scrive un diagramma di flusso "standard" 00:43:22 < Stemby> altra cosa: qualcuno di voi ha problemi ad utilizzare flash? 00:43:56 < Stemby> spirit: ? 00:44:01 < Stemby> risca: ? 00:44:02 < spirit> no.. non credo 00:44:09 < Stemby> ok 00:44:20 < Stemby> ho trovato una webapp molto carina 00:44:44 < Stemby> che permette di disegnare (tra le altre cose) diagrammi di flusso 00:44:53 < Stemby> purtroppo è scritta in flash 00:45:09 < Stemby> oggi abbiamo fatto una prova con gnash e non va 00:45:42 < Stemby> quindi per usarla, con ogni probabilità occorre usare il flashplayer proprietario di adobe 00:45:53 < spirit> con firefox non c'è problema, ma su konqueror fa dannare.. 00:46:05 < Stemby> ok, usa firefox :) 00:46:23 < Stemby> quello che dicevo io è se hai problemi etici ad utilizzarlo 00:46:35 < spirit> in che senso? 00:46:47 < Stemby> che c'è gente che non usa software proprietario 00:46:53 < Stemby> per scelta 00:46:56 < spirit> non io 00:47:00 < Stemby> io quasi 00:47:09 < Stemby> però purtroppo il flashplayer lo uso 00:47:23 < Stemby> è uno dei pochissimi compromessi a cui scendo 00:47:40 < Stemby> (anche se mi piacerebbe riuscire a farne a meno) 00:48:07 < spirit> io provo sempre l'alternativa libera.. 00:48:24 < Stemby> bon, l'applicazione è questa: http://www.gliffy.com/ 00:48:32 < Stemby> prendete confidenza 00:48:47 < spirit> però flash su x86_64 non sempre va.. 00:48:51 < Stemby> così la prossima volta disegnamo il diagramma del capitolo 8 come si deve 00:49:00 < Stemby> spirit: prova a vedere 00:49:09 < spirit> adesso? 00:49:12 < Stemby> no 00:49:15 < Stemby> in questi giorni 00:49:44 < spirit> bè buonanotte Stemby. Grazie per la lezione. Ciao 00:49:53 < Stemby> per provare non serve altro che il flashplayer 00:50:13 < spirit> proverò anche gnash 00:50:22 < Stemby> poi per salvare, esportare immagini, ecc. occorre indicare un indirizzo e-mail 00:50:46 < Stemby> se non si vuole passare un indirizzo vero, si può usare mailinator 00:50:54 < Stemby> oggi l'ho provato e funziona 00:51:02 < Stemby> tutto qui 00:51:04 < spirit> Va bene 00:51:07 < Stemby> riassumendo: 00:51:29 < Stemby> per la prossima volta, capitolo 8 e prendere confidenza con gliffy 00:51:33 < Stemby> notte 00:51:43 < spirit> ciao 00:52:40 < hoax> Stemby: hai mica salvato il log della chat su gobby per metterlo eventualmente sul forum? 00:52:54 -!- spirit [~root@Azzurra-C3C291C.104-82-b.business.telecomitalia.it] has quit [Quit: leaving] 00:52:55 < hoax> io mi ero disconnesso e ne ho così solo una parte 00:53:11 < hoax> http://sprunge.us/QRDi 00:54:08 < Stemby> hoax: la parte su gobby è un po' incasinata 00:54:44 < Stemby> eviterei di pubblicarla 00:55:07 < hoax> ok 00:55:15 < Stemby> all'inizio abbiamo scritto un po' meglio uno script per amosse 00:55:32 < Stemby> lì è venuto fuori il trucchetto 00:55:42 < Stemby> if __name__ == '__main__' 00:56:08 < Stemby> il resto della lezione abbiamo provato a spiegarlo 00:56:27 < Stemby> hoax: l'hai capito? 00:57:11 < Stemby> [s/n] 00:57:23 < hoax> no Stemby, non badare a me, purtroppo non sto seguendo attivamente e soprattutto non dall'inizio 00:57:36 < hoax> per questo sono particolarmente interessato ai log 00:57:53 < Stemby> quello non vale molto 00:58:14 < Stemby> perché abbiamo speso un mucchio di tempo in cose che dovevano essere già state apprese 00:58:24 < Stemby> e ormai sicure 00:58:31 < Stemby> mentre non si sono dimostrate tali... 00:58:44 < Stemby> quindi non è una buona spiegazione 00:58:53 < Stemby> se lo cerchi in rete è meglio 00:59:03 < Stemby> al limite lo riprenderemo più avanti 00:59:14 < Stemby> hoax: a che punto sei? 00:59:18 < hoax> mah, per uno che non ha proprio mai fatto python è utile, credimi 00:59:40 < Stemby> hoax: guarda, piuttosto te lo rispiego da capo 00:59:47 < Stemby> quel log non vale proprio niente 01:00:02 < Stemby> hoax: stai cercando di recuperare? 01:00:20 < hoax> non ora, ora per l'uni devo studiare C 01:00:34 < hoax> e non riesco ad essere multitasking 01:00:41 < hoax> sono molto limitato 01:01:17 < hoax> ma per il futuro è comunque una base 01:01:24 < Stemby> beh, il python è molto più semplice 01:01:33 < hoax> se volessi occuparmi di studiare Python 01:01:36 < Stemby> farai in fretta a recuperare 01:01:43 < hoax> mah, per certi versi forse 01:01:52 < hoax> per altri mi sembra più incasinato 01:02:00 < hoax> in particolare la programmazione ad oggetti 01:02:11 < hoax> mi semvra molto più facile quella procedurale 01:02:16 < Stemby> non l'abbiamo ancora affrontata 01:02:27 < Stemby> e ci vorrà ancora un po' prima che ci arriviamo 01:03:07 < Stemby> finché non è abbastanza solida la programmazione procedurale, è inutile complicarsi la vita 01:03:28 < Stemby> la programmazione orientata agli oggetti è senz'altro molto più difficile 01:03:44 < Stemby> perché bisogna decidere come implementare questi oggetti 01:04:29 < hoax> beh sì, in C c'è un qualcosa di simile agli oggetti nelle strutture, ma proprio un accenno 01:04:57 < Stemby> beh, insomma 01:05:05 < hoax> cioè tipi di dati con attributi 01:05:20 < Stemby> sì, ma non è programmazione orientata algi oggetti, quella 01:05:26 < hoax> no 01:05:30 < Stemby> gli oggetti li stiamo usando anche noi 01:05:34 < Stemby> fin dall'inizio 01:05:52 < Stemby> ma con un approccio assolutamente procedurale 01:05:59 < hoax> oo sarebbe l'uso dei metodi? 01:06:08 < Stemby> classi e metodi, sì 01:06:11 < hoax> cioè che interagiscono con gli oggetti 01:06:16 < Stemby> (e istanze, ovviamente) 01:06:19 < hoax> i quali offrono servizi 01:06:41 < Stemby> sì 01:06:47 < hoax> avevo visto qualcosa di java, ma non ci avevo capito molto 01:07:04 < Stemby> esatto, java è assolutamente orientato agli oggetti 01:07:28 < Stemby> mentre con python si può fare anche dell'ottima programmazione procedurale 01:08:05 < hoax> poi java non è di scripting mentre Python sì 01:08:25 < Stemby> diciamo di sì :) 01:08:29 < hoax> ma essere linguaggio di scripting significa solo che non è compilato? 01:09:05 < Stemby> bah, diciamo che ai programmatori python non piace molto la definizione di python come linguaggio di scripting 01:09:33 < Stemby> tra l'altro python È compilato 01:09:48 < Stemby> (anche se il programmatore quasi non se ne accorge) 01:10:02 < hoax> leggo che usate un interprete, o dico sbagliato? 01:10:09 < Stemby> sì 01:10:20 < hoax> sarebbe le shell interattiva? 01:10:23 < Stemby> ma in realtà l'interprete è più che un interprete 01:10:24 < Stemby> sì 01:10:52 < Stemby> la shell interattiva è l'interfaccia utente per dialogare direttamente con l'interprete 01:11:15 < Stemby> ma l'interprete (python3) in realtà è molto di più 01:11:27 < Stemby> è un compilatore 01:11:36 < Stemby> e anche una macchina virtuale 01:11:58 < hoax> un po' come la java virtual machine 01:12:06 < Stemby> (compila in bytecode, e poi la macchina virtuale trasforma il bytecode in linguaggio macchina) 01:12:14 < Stemby> hoax: sì, è molto simile 01:12:20 < Stemby> solo che è del tutto trasparente 01:12:33 < Stemby> il programmatore non deve compilare manualmente 01:12:44 < Stemby> e la compilazione avviene in tempo reale 01:12:58 < Stemby> quindi per il programmatore è come se fosse un linguaggio interpretato 01:13:17 < hoax> in che senso in tempo reale? 01:13:29 < hoax> Cioè istruzione per istruzione 01:13:36 < Stemby> esatto 01:13:43 < hoax> non tutto il sorgente in blocco come in C 01:13:48 < Stemby> esatto 01:14:05 < Stemby> è per quello che puoi usare l'interfaccia interattiva 01:14:25 < Stemby> lì in pratica si scrive un'istruzione alla volta 01:15:10 < hoax> capito 01:15:18 < Stemby> http://it.diveintopython.org/getting_to_know_python/testing_modules.html 01:15:42 < Stemby> qui la prima spiegazione che ho trovato online riguardo al trucchetto che abbiamo provato stasera 01:17:05 < Stemby> dai, hoax, cerca di recuperare 01:17:13 < Stemby> stiamo andando davvero tranquilli 01:18:32 < Stemby> notte