Accademia:Log 2011 03 20: differenze tra le versioni

Da Guide@Debianizzati.Org.
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