Accademia:Log 2011 02 23
Vai alla navigazione
Vai alla ricerca
21:28:06 < JumX> Buonasera a tutti 21:29:12 < Ernestus> sera JumX 21:29:58 < JumX> ciao Ernestus come va ? 21:30:31 < Ernestus> io bene, tu? 21:31:10 < JumX> tutto ok grazie .... Domenica com'è andata ? 21:31:19 < Ernestus> è andata bene! 21:31:25 < Ernestus> abbiamo visto qualcosina di nuovo 21:31:35 < JumX> ho visto il log 21:31:45 < Ernestus> hai dato un'occhiata alle letture per oggi? 21:32:52 < JumX> purtroppo ho avuto poco tempo , ti riferisci al libro Invent...ecc.ecc. . 21:33:11 < JumX> i primi due capitoli era già familiari 21:34:00 < Ernestus> http://guide.debianizzati.org/index.php/Accademia:Letture_consigliate_Lezione_7_%26_8?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+DebianizzatiGuide+(Debianizzat.Org+-+Guide) 21:34:58 < JumX> ho letto solo i Primi due capitoli del libro che abbiamo adottato (inventwithpython) 21:35:50 -!- brunology [~brunology@Azzurra=64C72B29.9-79-r.retail.telecomitalia.it] has joined #debianizzati-corsi 21:36:22 < JumX> ... sto vedendo ... 21:36:44 < |Wolf|> non l'ho mai sentito quel libro 21:36:47 < |Wolf|> di chi è? 21:37:33 < Ernestus> |Wolf|, http://inventwithpython.com/about.html 21:37:44 < |Wolf|> thanks 21:38:19 -!- spirit [~spirit@Azzurra-C3C291C.104-82-b.business.telecomitalia.it] has joined #debianizzati-corsi 21:39:56 < JumX> quindi stasera algoritmi e diagrammi di flusso. 21:41:25 < |Wolf|> non sembra male il libro 21:42:39 < JumX> l'hai già letto ? :s 21:43:00 < |Wolf|> ho dato un'occhiata veloce e non ho visto cose troppo brutte 21:43:43 < JumX> wolf tu già lo conosci Python ? 21:44:20 < |Wolf|> sì 21:45:03 < JumX> Che tu sappia per un gestionale come lo vedi? 21:45:22 < |Wolf|> non saresti il primo a fare gestionali in python 21:45:36 < |Wolf|> c'era uno su #python un po' di tempo fa che ne aveva fatto uno 21:46:48 < JumX> Ma tu cosa pensi ? Quela database usare? 21:47:24 < |Wolf|> con python in genere postgres per cose grosse, sqlite per cose piccole 21:48:24 < JumX> E se poi le cose "piccole" diventano "grosse" diventerebbe traumatica la migrazione 21:49:38 < JumX> sono andato su #python credo stanno discutendo proprio su questo. 21:50:33 < |Wolf|> già 21:50:40 < |Wolf|> sei capitato a proposito 21:51:42 < JumX> ... fortuna che mi hai dato il link :) 21:53:33 < JumX> Solo che sono mooooolto avanti rispetto a me .:s 21:53:53 < JumX> Io ho cominciato con questo corso. 21:54:36 < |Wolf|> conosci altri linguaggi? 21:56:06 < JumX> mi vergogno a dirlo... vba .... quello di msaccess per intenderci lo uso a lavoro ci ho creato un gestionale completo . 21:57:29 < |Wolf|> quindi lo conosci bene? 21:58:51 < JumX> Diciamo che se ho un problema ne esco fuori :) 21:59:29 < |Wolf|> in vba gli indici partivano da 1? 21:59:30 < JumX> abbastanza velocemente 21:59:41 < JumX> io non uso indici 21:59:58 < JumX> automatici 22:01:10 < JumX> mi sono creato una stringa formato anno/npostazione/numeroprogressivo per gestirlo anche in replica 22:01:23 < JumX> e sincronizzare un set di db 22:02:26 -!- nodo [~andrea@Azzurra-3E987B79.0-87-r.retail.telecomitalia.it] has quit [Quit: Sto andando via] 22:10:35 -!- weirdo [~H2O2@Azzurra-26C3D234.clienti.tiscali.it] has joined #debianizzati-corsi 22:10:38 < brunology> ci siete? cosa facciamo oggi? 22:10:49 < weirdo> ah esistete 22:11:00 < JumX> Pronti 22:11:36 < Ernestus> Problemi, Algoritmi, Diagrammi di flusso 22:13:19 < JumX> Sicuramente c'è qualche tifoso dell'inter. :) dovremo aspettare il termine della partita 22:13:36 < weirdo> checculo 22:15:00 -!- Jinko [Jinko@helper.azzurra.org] has joined #debianizzati-corsi 22:15:03 -!- mode/#debianizzati-corsi [+o Jinko] by ChanServ 22:16:28 < Ernestus> vabbè... allora usiamo questi minuti per chiarire le cose della scorsa lezione 22:16:44 -!- Jinko changed the topic of #debianizzati-corsi to: Canale dedicato ai corsi organizzati dalla comunità italiana utenti debian di Debianizzati.org | info: www.debianizzati.org , #debianizzati | Accademia Python3: http://frm.li/6WeXTX 22:23:38 -!- Stemby_ is now known as Stemby 22:23:41 < Stemby> eccomi 22:23:48 < Stemby> scusate il ritardo 22:24:03 < Stemby> datemi 5 min per vedere cosa state combinando 22:24:14 < brunology> niente :) 22:24:42 < Ernestus> per ora niente 22:27:15 < Stemby> letto tutto 22:27:20 < Stemby> avete fatto troppo 22:27:21 < Stemby> :) 22:27:29 < Stemby> allora, vogliamo iniziare? 22:27:35 < brunology> pronti 22:27:49 < Ernestus> via 22:27:52 < Stemby> fatemi aprire il browser 22:27:56 < Stemby> ok 22:28:14 < Stemby> allora, chi mi passa il link alla documentazione ufficiale di py3? 22:28:25 < Stemby> (non sempre i soliti, magari) 22:29:29 < Stemby> faccio io, se no arriviamo alla finale di champions 22:29:32 < spirit> http://docs.python.org/py3k/whatsnew/3.0.html 22:29:36 < Stemby> http://docs.python.org/release/3.1.3/ 22:29:43 < spirit> ops 22:29:58 < Stemby> ok? 22:30:34 < Stemby> nelle ultime 3 lezioni in particolare abbiamo iniziato ad analizzare a fondo la documentazione sulla libreria standard 22:30:44 -!- Ernestus [~ernesto@Azzurra=30BF8CCD.44-79-r.retail.telecomitalia.it] has quit [Quit: Ex-Chat] 22:30:54 < Stemby> quindi cliccate su Library Reference 22:31:02 < Stemby> ci siete? 22:31:13 < JumX> Si ciao Stemby 22:31:17 < brunology> sì 22:31:43 < Stemby> andiamo al capitolo 5 22:31:46 < Stemby> (come al solito) 22:31:49 < Stemby> http://docs.python.org/release/3.1.3/library/stdtypes.html 22:32:04 < Stemby> proviamo a riprendere da capo 22:32:43 < Stemby> l'introduzione è chiara per tutti? 22:33:17 < Stemby> che tipi abbiamo visto, finora? 22:33:45 < JumX> int, float, boolean 22:33:57 < brunology> string 22:33:58 < Stemby> bene quelli, giosto 22:34:02 < Stemby> intravisti? 22:34:13 < Stemby> *giusto 22:34:28 < Stemby> che altri tipi abbiamo intravisto? 22:34:34 < Stemby> uno almeno... 22:35:05 < spirit> == 22:35:15 < Stemby> spirit: ??? 22:35:28 < Stemby> tipi, oggetti predefiniti 22:35:30 < Stemby> non operatori 22:35:45 < Stemby> interi, float, booleani, e poi? 22:35:52 < JumX> string 22:36:03 < Stemby> bravo JumX 22:36:09 < JumX> complex se non sbaglio li abbiamo saltati 22:36:15 < brunology> l'avevo detto io! :P 22:36:18 < Stemby> JumX: esatto: solo citati 22:36:24 < Stemby> brunology: sorry 22:36:27 < Stemby> non avevo visto 22:36:28 < Stemby> :) 22:36:41 < Stemby> ottimo 22:36:50 < Stemby> oggi approfondiremo un po' le stringhe 22:37:11 < Stemby> guardiamo il paragrafo introduttivo 22:37:14 < Stemby> The principal built-in types are numerics, sequences, mappings, classes, instances and exceptions. 22:37:43 < Stemby> quelli elencati sono dei "raggruppamenti" di oggetti 22:37:57 < Stemby> numerics: interi, float e complessi 22:38:14 < Stemby> le stringhe rientrano tra... secondo voi? 22:38:29 < brunology> sequence 22:38:29 < JumX> apici 22:38:35 < Stemby> brunology: esatto 22:38:49 < Stemby> sono sequenze di caratteri 22:39:19 < Stemby> le cose che vedremo stasera si applicano in gran parte anche ad altri tipi 22:39:56 < Stemby> classi, istanze ed eccezioni fan parte della programmazione orientata agli oggetti, che vedremo tra un po' 22:40:14 < Stemby> mapping... sinceramente non saprei 22:40:21 < Stemby> |Wolf|: sai aiutarmi? 22:40:47 < Stemby> intanto passiamo al paragrafo 5.1 22:41:05 < Stemby> nzi, saltiamolo 22:41:08 < Stemby> *anzi 22:41:10 < Stemby> 5.2 22:41:14 < Stemby> vi ricordate? 22:41:27 < Stemby> operatori booleani 22:41:36 < JumX> True False 22:41:40 < Stemby> sono i primi che abbiamo visto sistematicamente 22:41:48 < Stemby> chi ha dubbi, li tiri fuori ora 22:42:22 < Stemby> JumX: gli operatori booleani sono or, and e not 22:43:12 < Stemby> se è tutto chiaro, vorrei che vi soffermaste sul sistema che usa l'interprete per calcolare le espressioni che fanno uso di questi operatori 22:43:27 < Stemby> l'algoritmo è spiegato nella tabella 22:43:43 < Stemby> guardiamo il primo 22:43:54 < Stemby> x or y if x is false, then y, else x 22:44:01 < Stemby> chiaro? 22:44:36 < JumX> ok 22:44:50 < Stemby> finora abbiamo usato solo dei booleani 22:44:56 < Stemby> (True/False) 22:45:10 < Stemby> proviamo a vedere se or funziona anche con altri tipi 22:45:44 -!- Ernestus [~ernesto@Azzurra=534E8D49.37-79-r.retail.telecomitalia.it] has joined #debianizzati-corsi 22:45:48 < Ernestus> piantato 22:45:58 < Ernestus> scusate, il modem mi aveva piantato 22:46:05 < Stemby> il paragrafo 5.1 vi dice quando altri tipi vengono interpretati come veri, e quando come falsi 22:46:10 < Stemby> Ernestus: mi spiace... 22:46:20 < Stemby> siamo al paragrafo 5.2 22:46:32 < Stemby> http://docs.python.org/release/3.1.3/library/stdtypes.html#boolean-operations-and-or-not 22:46:42 < Stemby> (un ripasso) 22:46:50 < Ernestus> eccomi 22:46:57 < Ernestus> sono sulla doc 22:47:18 < Stemby> ripeto l'invito: aprite l'interfaccia interattiva, e provate a verificare il funzionamento di or usando vari tipi 22:47:30 < Stemby> è chiaro quello che ho scritto? 22:47:39 < Stemby> faccio io la prima espressione 22:47:57 < Stemby> >>> False or True 22:47:57 < Stemby> True 22:48:23 < Stemby> vediamo perché ci dà True (che è la cosa che ci aspettiamo, in effetti) 22:48:33 < Stemby> x or y if x is false, then y, else x 22:48:47 < Stemby> in questo caso x è False, y è True 22:49:17 < Stemby> quindi, visto che x è False, l'interprete restituisce x 22:49:32 < Stemby> mmm strano 22:49:42 < Stemby> sorry 22:49:47 < Stemby> restituisce y 22:49:48 < JumX> sempre True 22:49:50 < Stemby> giustamente 22:49:54 < Stemby> che è True 22:50:21 < Stemby> ripeto perché ho fatto confusione 22:50:39 < Stemby> l'algoritmo dice: se x è falso, allore dai y 22:50:50 < Stemby> questa è la situazione 22:51:10 < Stemby> x è False, quindi restituisce y (che è True) 22:51:12 < Stemby> ok? 22:51:32 < Stemby> fatemi ora voi un'espressione 22:51:39 < Stemby> con l'operatore or 22:51:39 < JumX> Nel terminale: True or False da True ma anche Fasle or True restituisce sempre True ..non mi trovo? 22:51:51 < Stemby> ok vediamola 22:52:03 < Stemby> >>> False or True 22:52:03 < Stemby> True 22:52:09 < Stemby> è ciò che ci aspettiamo, no? 22:52:13 < Stemby> vediamo perché 22:52:21 < Stemby> qual è la x, e quale la y? 22:52:30 < JumX> False x True y 22:52:37 < Stemby> esatto 22:52:44 < Stemby> x → False 22:52:52 < Stemby> y → True 22:53:00 < Stemby> siete tutti d'accordo? 22:53:13 < JumX> si 22:53:19 < Stemby> cosa prevede l'algoritmo? 22:53:31 < Stemby> if x is false, then y, else x 22:53:43 < Stemby> prima domanda: x è vero o falso? 22:54:01 < JumX> False 22:54:05 < Stemby> False 22:54:14 < Stemby> quindi cosa deve restituire? 22:54:23 < JumX> True 22:54:28 < Stemby> e così è 22:54:52 < Stemby> questo è il caso che abbiamo visto prima 22:54:59 < Stemby> il tuo invece è questo: 22:54:59 -!- Ernestus [~ernesto@Azzurra=534E8D49.37-79-r.retail.telecomitalia.it] has quit [Quit: Ex-Chat] 22:55:13 < Stemby> >>> True or False 22:55:13 < Stemby> True 22:55:19 < Stemby> x → True 22:55:23 < Stemby> y → False 22:55:26 < Stemby> giusto? 22:55:36 < JumX> si 22:55:45 < Stemby> if x is false, then y, else x 22:55:50 < Stemby> x è vero o falso? 22:55:58 -!- Ernestus [~ernesto@Azzurra=534E8D49.37-79-r.retail.telecomitalia.it] has joined #debianizzati-corsi 22:56:01 < JumX> True 22:56:07 < Stemby> quindi deve restituire? 22:56:12 < Stemby> x o y? 22:56:27 < JumX> x 22:56:30 < Stemby> che vale? 22:56:35 < JumX> True 22:56:41 < Stemby> visto che è giusto? 22:57:11 < Stemby> JumX: capito? 22:57:53 < JumX> si se x è falso dai vere altrimenti dai falso 22:58:05 < Stemby> questo è or 22:58:08 < JumX> giusto? 22:58:19 < Stemby> no 22:58:21 < Stemby> non è così 22:58:48 < Stemby> se il primo valore è falso allora dai il secondo (indipendentemente se è vero o falso), altrimenti dai il primo 22:59:08 < Stemby> >>> False or False 22:59:08 < Stemby> False 22:59:27 < Stemby> il primo è falso, quindi restituisce il secondo, che è falso 22:59:28 < JumX> ok 22:59:58 < Stemby> è chiaro per tutti? 23:00:10 < brunology> sì 23:00:11 < Stemby> verifichiamolo con dei tipi diversi dai booleani 23:00:25 < Stemby> 5 è vero o falso? 23:00:46 < brunology> falso 23:00:51 < Stemby> no, è vero 23:00:54 < Stemby> http://docs.python.org/release/3.1.3/library/stdtypes.html#truth-value-testing 23:01:03 < Stemby> tutti i numeri diversi da 0 sono veri 23:01:11 < Stemby> proviamolo anche così: 23:01:14 < Stemby> bool(5) 23:01:30 < Stemby> visto? 23:01:33 < JumX> True 23:01:35 < brunology> allora perché dice: 23:01:45 < brunology> The following values are considered false: 23:01:52 < brunology> zero of any numeric type, for example, 0, 0.0, 0j. 23:01:57 < Stemby> appunto 23:02:02 < Stemby> quelli sono falsi 23:02:04 < Stemby> 0 intero 23:02:14 < Stemby> 0.0 float 23:02:16 < Stemby> ma sempre zero 23:02:25 < Stemby> oj è lo zero complesso 23:02:33 < Stemby> ma sempre zero è 23:02:36 < brunology> scusa ho letto 'or' al posto di 'of' 23:02:45 < Stemby> ah :) 23:02:49 < Stemby> leggere bene! 23:02:51 < brunology> ho il booleano in testa :) 23:02:55 < Stemby> 5.245 è vero 23:03:01 < Stemby> -12 è vero 23:03:03 < Stemby> eccetera 23:03:10 < Stemby> tutti i numeri diversi da zero 23:03:11 < |Wolf|> Stemby, eccomi 23:03:44 < |Wolf|> se i mapping fanno parte dell'OOP? 23:03:55 < Stemby> no: cosa sono? 23:04:14 < |Wolf|> i dict sono mapping 23:04:20 < Stemby> ah, ok 23:04:24 < |Wolf|> in genere qualsiasi cosa che associa coppie di valori 23:04:25 < Stemby> altri esempi? 23:04:39 < Stemby> di predefiniti quindi solo dizionari 23:04:39 < |Wolf|> in altri linguaggi sono chiamati anche array associativi 23:04:50 < |Wolf|> sì, dict e derivati 23:04:56 < Stemby> ok, grazie 23:05:04 < Stemby> allora, torniamo alle nostre prove 23:05:27 < Stemby> if x is false, then y, else x 23:05:40 < Stemby> 0 or 234 23:05:43 < Stemby> cosa darà? 23:05:56 < JumX> 234 23:05:58 < brunology> True 23:06:02 < Stemby> chiaro perché? 23:06:05 < Stemby> brunology: no 23:06:07 < Stemby> prova 23:06:10 < |Wolf|> rileggo un po' il log e vedo di seguire adesso 23:06:18 < Stemby> ok :) 23:06:34 < Stemby> chiaro perché dà 234? 23:06:39 < Stemby> if x is false, then y, else x 23:06:47 < Stemby> x è falso 23:06:49 < Stemby> giusto? 23:06:54 < Stemby> perché 0 è falso 23:06:59 < JumX> 0 è False quindi dai True che corrisponde a 234 23:07:06 < Stemby> no 23:07:09 < Stemby> non dai True 23:07:09 < JumX> *da 23:07:12 < Stemby> dai il secondo 23:07:19 < Stemby> qualsiasi sia il suo valore 23:07:22 < |Wolf|> quello che ha detto brunology non è del tutto sbagliato 23:07:23 < Stemby> 0 or 0 23:07:34 < Stemby> dà 0 23:07:36 < Stemby> non False 23:07:37 < |Wolf|> concettualmente 0 or 234 dà true 23:07:41 < brunology> ok, perché 234 è un intero, non un bool 23:07:45 < JumX> il secondo a prescindere 23:07:58 < Stemby> brunology: il secondo, anche se è falso 23:08:01 < Stemby> 0 or 0 23:08:05 < |Wolf|> il fatto che dia 234 è solo perché gli operatori booleani in python ritornano sempre uno dei 2 valori 23:08:06 < Stemby> restituisce il secondo 0 23:08:09 < Stemby> anche se è falso 23:08:19 < Stemby> |Wolf|: non è così 23:08:26 < Stemby> l'algoritmo è questo: 23:08:31 < Stemby> if x is false, then y, else x 23:08:52 < Stemby> quindi nell'espressione usa True e False 23:09:01 < |Wolf|> uhm? 23:09:03 < Stemby> (o False, gli altri numeri True= 23:09:07 < Stemby> ) 23:09:17 < Stemby> ma poi il valore restituito non è un booleano 23:09:23 < Stemby> ma il primo o il secondo valore 23:09:29 < Stemby> qualsiasi tipo sia 23:09:32 < |Wolf|> se hai x or y python semplicemente guarda a x, se è un valore true allora restituisce x perché indipendentemente dal valore di x il risultato sarà true 23:09:37 < Stemby> http://docs.python.org/release/3.1.3/library/stdtypes.html#boolean-operations-and-or-not 23:09:51 < |Wolf|> se invece x è false deve vedere y 23:09:58 < Stemby> esatto 23:10:13 < Stemby> anzi no 23:10:16 < Stemby> non p così 23:10:26 < Stemby> se x è false restituisce automaticamente y 23:10:29 < |Wolf|> e allo stesso modo, se y è true ritorna y, se y è falso lo ritorna lo stesso 23:10:32 < Stemby> qualsiasi sia il valore di y 23:10:48 < Stemby> ovvero: 23:10:55 < Stemby> 0.0 or "pippo" 23:10:57 < |Wolf|> (questo si chiama short-circuiting) 23:11:02 < Stemby> restituisce 'pippo' 23:11:10 < Stemby> perché x è falso 23:11:21 < |Wolf|> (il fatto di fermarsi al primo se basta per determinare il risultato) 23:11:27 < Stemby> allo stesso modo 23:11:30 < Stemby> 0.0 or '' 23:11:41 < Stemby> restituisce '' 23:11:54 < Stemby> chiaro per tutti? 23:12:01 < spirit> si 23:12:02 < |Wolf|> questo perché in entrambi i casi il primo è falso, quindi per determinare il risultato dell'operazione deve vedere il secondo 23:12:10 < Stemby> |Wolf|: no 23:12:11 < JumX> ok 23:12:17 < |Wolf|> Stemby, perché no? 23:12:18 < Stemby> il secondo non lo guarda proprio 23:12:22 < Stemby> lo restituisce direttamente 23:12:25 < Stemby> qualsiasi cosa sia 23:12:37 < Stemby> valuta solo il primo 23:12:45 < Stemby> sempre e solo il primo 23:12:49 < Stemby> il primo è falso? 23:12:55 < |Wolf|> no, il secondo è valutato, e poi restituito indipendentemente dal suo valore 23:12:57 < Stemby> allora restituisce il secondo 23:13:04 < Stemby> |Wolf|: no 23:13:08 < |Wolf|> Stemby, prova 23:13:10 < Stemby> perché lo deve valutare? 23:13:18 < Stemby> |Wolf|: ho provato 23:13:31 < |Wolf|> def foo(): print 'foo'; return False 23:13:38 < |Wolf|> 0 or foo() 23:13:45 < |Wolf|> e poi prova 1 or foo() 23:14:29 < Stemby> print('foo') 23:14:34 < Stemby> py3... 23:14:38 < Stemby> adesso provo 23:14:38 < |Wolf|> sì 23:15:04 < Ernestus> scusatemi, ma vado adesso. mi leggerò i log 23:15:07 < Ernestus> buonanotte a tutti 23:15:23 < |Wolf|> cioè, quello che dici non è del tutto sbagliato, perché alla fine il valore del secondo è restituito così com'è, il fatto è che prima di restituirlo deve ridurlo ai minimi termini 23:15:25 < JumX> Ciao Ernestus 23:15:25 < Stemby> |Wolf|: appunto, è quello che ho detto 23:15:30 -!- Ernestus [~ernesto@Azzurra=534E8D49.37-79-r.retail.telecomitalia.it] has quit [Quit: Ex-Chat] 23:15:36 < Stemby> ok 23:16:04 < |Wolf|> quindi se ad esempio è una funzione o un'espressione la evaluta per ottenere un risultato che poi viene restituito 23:16:14 < Stemby> ok 23:16:18 < Stemby> questo è chiaro 23:16:23 < |Wolf|> :) 23:16:30 < Stemby> chiaro per tutti? 23:16:41 < Stemby> http://docs.python.org/release/3.1.3/library/stdtypes.html#truth-value-testing 23:16:58 < Stemby> guardiamoci nei vari tipi quando questi sono considerati veri, e quando falsi 23:17:13 < Stemby> None è un tipo particolare... 23:17:27 < Stemby> significa "nessun valore", "assenza di valore" 23:17:42 < Stemby> >>> type(None) 23:17:42 < Stemby> <class 'NoneType'> 23:17:58 < Stemby> è proprio un tipo a sé stante 23:18:18 < Stemby> ci ricordiamo che valori booleani sono solo 2? 23:18:23 < Stemby> True/False 23:18:33 < Stemby> None è invece addirittura unico 23:18:39 < Stemby> c'è solo lui 23:18:48 < Stemby> ed è considerato falso 23:19:00 < Stemby> secondo punto: tipo booleano 23:19:00 < brunology> che vita grama 23:19:04 < brunology> :) 23:19:20 < Stemby> quale è falso? 23:19:26 < Stemby> (nei booleani) 23:19:41 < brunology> False 23:19:44 < Stemby> ovviamente 23:19:55 < Stemby> terzo punto: tipi numerici 23:19:56 -!- Jinko [Jinko@helper.azzurra.org] has quit [Quit: J] 23:20:06 < Stemby> noi abbiamo visto bene 2 tipi numerici 23:20:13 < Stemby> qual è l'intero falso? 23:20:19 < JumX> 0 23:20:21 < Stemby> ok 23:20:26 < Stemby> tutti gli altri sono veri 23:20:37 < Stemby> un esempio un po' interessante? 23:20:42 < Stemby> (di intero vero) 23:21:11 < Stemby> spirit: vai 23:21:20 < Stemby> fammelo tu un esempio di intero vero 23:21:29 < |Wolf|> (Stemby, cmq c'è un imprecisione anche nella doc che hai linkato) 23:21:36 < spirit> sto pensando 23:21:49 < Stemby> spirit: non è difficile 23:21:52 < Stemby> 0 è falso 23:22:00 < spirit> int(o) 23:22:03 < Stemby> dimmi un qualsiasi altro intero 23:22:05 < Stemby> no 23:22:12 < Stemby> un intero! 23:22:20 < Stemby> quali sono i numeri interi? 23:22:27 < Stemby> sono quelli delle elementari 23:22:29 < spirit> 1 2 3 23:22:30 < JumX> 123.... -123... 23:22:33 < Stemby> esatto! 23:22:41 < Stemby> ma anche i negativi, effettivamente 23:22:48 < Stemby> quindi -123 è vero 23:22:55 < Stemby> come facciamo a verificarlo? 23:23:07 < brunology> bool(-123) 23:23:16 < Stemby> esatto 23:23:17 < JumX> type() 23:23:20 < Stemby> chiaro spirit? 23:23:25 < Stemby> JumX: no 23:23:34 < spirit> si 23:23:38 < Stemby> non dobbiamo verificare il tipo 23:23:43 < JumX> si scusa 23:23:46 < Stemby> lo sappiamo già che è un intero 23:24:13 < Stemby> che cos'è bool() 23:24:14 < Stemby> ? 23:24:21 < Stemby> così ripassiamo... 23:24:31 < spirit> operatore 23:24:34 < Stemby> noooo 23:24:52 < brunology> una funzione? 23:24:55 < Stemby> le parentesi... cosa ci fanno pensare? 23:24:59 < Stemby> brunology: esatto 23:25:02 < Stemby> è una funzione 23:25:04 < JumX> serve per verificare se è true o false 23:25:21 < Stemby> diciamo che "trasforma" un oggetto in booleano 23:25:40 < Stemby> e quindi può assumere valore True o Falso 23:25:48 < |Wolf|> restituisce True se l'oggetto è vero o False se l'oggetto è falso 23:25:48 < JumX> ok 23:26:02 < JumX> bool(0) è False 23:26:07 < Stemby> esatto 23:26:11 < JumX> bool(1234) è True 23:26:14 < Stemby> bool(0.0) pure 23:26:23 < Stemby> è falso 23:26:28 < Stemby> ok 23:26:33 < Stemby> proseguiamo 23:26:41 < JumX> ok 23:26:46 < Stemby> terzo punto 23:26:49 < Stemby> any empty sequence, for example, '', (), []. 23:27:01 < Stemby> ogni sequenza vuota è falsa 23:27:15 < Stemby> noi per ora abbiamo intravisto decentemente solo un tipo di sequenza 23:27:22 < Stemby> quale, spirit? 23:27:30 < Stemby> (già detto all'inizio della serata) 23:27:57 < spirit> ad oggetti 23:28:00 < Stemby> ? 23:28:08 < Stemby> chi risponde? 23:28:11 < spirit> espressioni 23:28:15 < Stemby> nooo 23:28:21 < Stemby> non spariamo nomi a caso 23:28:31 < spirit> stringhe 23:28:35 < Stemby> esatto 23:28:37 < Stemby> :) 23:28:42 < Stemby> le stringhe 23:28:53 < Stemby> quindi, una stringa vuota è falsa 23:29:04 < Stemby> ci sono 2 modi per scrivere una stringa vuota 23:29:07 < Stemby> come? 23:29:26 < spirit> cosi "" 23:29:31 < Stemby> oppure? 23:29:35 < spirit> '' 23:29:38 < Stemby> ottimo 23:29:49 < Stemby> verifichiamo che la stringa vuota è falsa 23:29:50 < Stemby> come? 23:29:51 < |Wolf|> (anche str()) 23:30:02 < brunology> la risposta è sempre '' 23:30:17 < Stemby> brunology: verifichiamo che '' è falso 23:30:26 < Stemby> con la funzione che abbiamo visto prima 23:30:35 < Stemby> che trasforma un oggetto in booleano 23:30:38 < brunology> bool('') 23:30:40 < brunology> False 23:30:42 < Stemby> ok 23:30:55 < Stemby> l'altra espressione? 23:31:29 < brunology> espressione? 23:31:30 < Stemby> >>> bool("") 23:31:30 < Stemby> False 23:31:38 < brunology> ok 23:31:43 < brunology> >>> bool(str()) 23:31:45 < brunology> False 23:31:50 < Stemby> ci siamo? 23:32:04 < Stemby> ora verifichiamo che una stringa non vuota è vera 23:32:30 < spirit> bool(str(23)) 23:32:40 < spirit> no è vera 23:32:46 < Stemby> infatti 23:32:51 < JumX> serve per verificare se è true o false 23:32:54 < Stemby> "23" è vero 23:32:56 < JumX> ops 23:33:12 < Stemby> altro esempio senza usare str()? 23:33:23 < JumX> bool("a") True 23:33:30 < Stemby> esatto 23:33:45 < Stemby> >>> bool('pippo') 23:33:45 < Stemby> True 23:34:00 < Stemby> visto che |Wolf| l'ha tirata in ballo... 23:34:10 < Stemby> che cos'è str(), spirit? 23:34:26 < Stemby> è una... ? 23:34:38 < spirit> funzione 23:34:38 < Stemby> f... ? 23:34:40 < Stemby> ok 23:34:49 < Stemby> e che cosa fa, quella funzione? 23:35:11 < spirit> istruisce un inizio 23:35:15 < Stemby> ??? 23:35:23 < JumX> specifica che si tratta di una stringa 23:35:24 < Stemby> trasforma un oggetto in... ? 23:35:30 < spirit> stringa 23:35:34 < Stemby> esatto 23:35:43 < Stemby> trasforma un oggetto in stringa 23:35:54 < Stemby> come bool() trasforma un oggetto in booleano 23:36:04 < JumX> ok 23:36:10 < Stemby> o come int() trasforma un oggetto (quando possibile) in intero 23:36:13 < Stemby> ecc. 23:36:22 < spirit> ok 23:36:35 < Stemby> str() senza parametri cosa farà? 23:36:51 < spirit> '' 23:37:02 < Stemby> restituisce una stringa vuota 23:37:05 < spirit> si 23:37:09 < Stemby> invece è interessante questo: 23:37:17 < |Wolf|> e int() senza arg? 23:37:20 < Stemby> >>> str(None) 23:37:20 < Stemby> 'None' 23:37:39 < Stemby> (uno potrebbe aspettarsi che restituisce '') 23:37:44 < JumX> erore 23:37:49 < JumX> *erroer 23:38:05 < Stemby> no, int() restituisce 0 23:38:10 < Stemby> non dà errore 23:38:25 < JumX> anche None va sempre scritto con la N maiuscola :) 23:38:34 < Stemby> certo 23:38:36 < JumX> ok da None 23:38:54 < Stemby> dà 'None' 23:38:57 < JumX> ok da 'None' 23:39:10 < Stemby> che non è così intuitivo 23:39:14 < Stemby> ma tant'è 23:39:44 < |Wolf|> per la cronaca, con True/False con la maiuscola si intendono i 2 oggetti booleani, con true/false con la minuscola in genere si intende qualsiasi valore che è considerato vero o falso 23:39:48 < JumX> None funziona sia con le stringhe che con i numeri? 23:40:02 < Stemby> JumX: inche senzo? 23:40:11 < Stemby> *in che 23:40:16 < Stemby> *senso 23:40:20 < |Wolf|> quindi si può dire che 0 è false e 15 è true, ma 15 non è True 23:40:39 < Stemby> ok, grazie |Wolf| per la precisazione 23:40:49 < Stemby> oppure, semplicemente lo si può dire in italiano 23:40:56 < Stemby> vero/falso :) 23:40:58 < |Wolf|> yep 23:41:07 < |Wolf|> nella doc di python però capita questa distinzione 23:41:32 < Stemby> JumX: cosa intendevi con la tua domanda? 23:41:35 < Stemby> non l'ho capita 23:41:54 < JumX> Nel senso che potrei anche avere un campo numerico vuoto 23:42:13 < Stemby> sì, allora puoi usare l'oggetto None 23:42:19 < Stemby> che è diverso da 0 23:42:22 < Stemby> o da '' 23:42:31 < Stemby> vuol proprio dire "vuoto" 23:42:41 < Stemby> 0 invece è un numero preciso 23:42:49 < JumX> e ma non funziona lo 0 è comunque un numero 23:42:56 < Stemby> ? 23:43:05 < Stemby> 0 è un numero 23:43:05 < |Wolf|> cosa non funziona? 23:43:10 < Stemby> Non non è un numero 23:43:16 < Stemby> è un tipo a sé stante 23:43:20 < Stemby> *None 23:43:40 < JumX> che funziona solo con le stringhe 23:43:50 < Stemby> no 23:44:02 < Stemby> in che senso "funziona con le stringhe"? 23:44:24 < JumX> Se scrivo str(None) 23:44:35 < JumX> da 'None' 23:44:37 < JumX> giusto? 23:44:45 < Stemby> sì 23:44:54 < JumX> se invece scrivo int(None) 23:44:59 < Stemby> dà errore 23:45:00 < Stemby> vero 23:45:13 < Stemby> ma quella è una caratteristica della funzione int 23:45:27 < Stemby> che non accetta oggetti di tipo None 23:45:40 < spirit> type(None) 23:45:41 < |Wolf|> str in genere funziona sempre con qualsiasi oggetto 23:45:45 < Stemby> così ha sceto Guido... se non sei d'accordo, protesta con lui 23:45:45 < JumX> ah ecco! 23:45:57 < spirit> class Nonetype 23:46:07 < |Wolf|> tutti gli oggetti possono essere rappresentati come stringhe, ma non tutti come un semplice numero 23:46:11 < Stemby> JumX: se per quello dà errore anche 23:46:16 < Stemby> int("pippo") 23:46:31 < JumX> ok chiaro 23:46:37 < Stemby> sono pochi gli oggetti che puoi trasformare in interi 23:46:45 < Stemby> int("5") 23:46:54 < Stemby> int(3.0) 23:47:11 < Stemby> anche int(3.7) 23:47:29 < Stemby> che si comporta in modo diverso da quando magari ci si aspetta 23:47:39 < Stemby> semplicemente tronca la parte decimale 23:47:45 < Stemby> non fa un arrotondamento 23:47:58 < Stemby> ci sono altre funzioni per quello 23:48:09 < JumX> float 23:48:09 < Stemby> ok, finita la divagazione, proseguiamo 23:48:16 < Stemby> float()? 23:48:20 < Stemby> è analogo 23:48:28 < Stemby> trasforma un oggetto in float 23:48:46 < Stemby> ma anche lì, non tutti gli oggetti possono essere trasformati in float 23:49:05 < Stemby> float('pippo') dà errore 23:49:12 < Stemby> analogamente a int() 23:49:17 < Stemby> proseguiamo 23:49:22 < Stemby> torniamo al 5.2 23:49:29 < JumX> intendevo che float non arrotonda e fa vedere anche i decimali 23:50:04 < Stemby> guardiamo il secondo operatore, and, sotto l'ottica di stasera 23:50:13 < Stemby> (dell'algoritmo che ci sta dietro) 23:50:26 < Stemby> ((e non dell'algebr booleana, come avevamo fatto l'altra volta) 23:50:27 < Stemby> ) 23:50:31 < Stemby> x and y if x is false, then x, else y 23:50:46 < Stemby> è il contrario di or 23:50:47 < |Wolf|> (non è meglio farlo con l'algebra booleana e la tabella di verità?) 23:50:56 < Stemby> |Wolf|: già fatto 23:51:08 < Stemby> alcune lezioni fa... :) 23:51:15 < |Wolf|> se lo ricordano? 23:51:20 < Stemby> spero 23:51:35 < Stemby> abbiamo scritto anche una libreria 23:51:44 < Stemby> con tutte le funzioni dell'algebra booleana 23:51:50 < Stemby> NAND, XNOR, ecc 23:51:56 < |Wolf|> ok 23:52:23 < Stemby> allora, chi mi scrive qualche espressione con and 23:52:30 < Stemby> usando i tipi che preferite 23:52:35 < Stemby> ? 23:53:14 < JumX> def AND(val1, val2): return val1 and val2 23:53:30 < Stemby> quello è tratto dalla nostra libreria 23:53:37 < Stemby> lasciamola lì 23:53:48 < JumX> E' quello che ho studiato 23:53:53 < Stemby> una banale espressione con and 23:53:59 < brunology> >>> False and 0 23:54:02 < brunology> False 23:54:07 < Stemby> ok 23:54:10 < Stemby> chiaro perché? 23:54:14 < brunology> >>> 0 and False 23:54:17 < brunology> 0 23:54:20 < Stemby> chiaro perché? 23:54:23 < JumX> sono entrambe false 23:54:30 < Stemby> cosa è falso? 23:54:38 < brunology> restituisce il primo perché il primo è falso 23:54:42 < Stemby> esatto 23:54:56 < Stemby> x and y if x is false, then x, else y 23:55:12 < Stemby> a questo punto della serata, immagino che sia chiaro per tutti 23:55:21 < spirit> si 23:55:24 < Stemby> ora, senza provare nell'interfaccia testuale: 23:55:43 < Stemby> "pippo" and 0.0 23:55:47 < Stemby> cosa darà? 23:56:21 < Stemby> troppo tempo... 23:56:39 < spirit> False 23:56:39 < brunology> "pippo" è vero 23:56:42 < Stemby> ok 23:56:49 < Stemby> quindi cosa dà l'espressione? 23:56:57 < JumX> quindi o.o 23:56:58 < brunology> l'altro: 0.0 23:57:02 < Stemby> esatto! 23:57:05 < Stemby> proviamo 23:57:07 -!- |Wolf| [~quassel@Azzurra=F3DC3C2.yok.fi] has quit [Client closed connection] 23:57:19 < Stemby> >>> "pippo" and 0.0 23:57:19 < Stemby> 0.0 23:57:37 < Stemby> spirit: tutto ok? 23:57:38 -!- |Wolf| [~quassel@Azzurra=F3DC3C2.yok.fi] has joined #debianizzati-corsi 23:57:58 < spirit> si più o meno 23:58:09 < Stemby> guardiamo ora il terzo operatore 23:58:10 < Stemby> not 23:58:18 < JumX> o.o and "pippo" cosa restituira? 23:58:32 < Stemby> o.o o 0.0? 23:58:42 < JumX> zero.zero 23:58:54 < Stemby> secondo te? 23:59:10 < Stemby> 0.0 è vero o falso? 23:59:19 < JumX> falso 23:59:25 < Stemby> quindi? 23:59:38 < JumX> 0.0 23:59:41 < Stemby> x and y if x is false, then x, else y 23:59:47 < Stemby> il primo 23:59:49 < Stemby> 0.0 23:59:51 < Stemby> :) 23:59:55 < Stemby> ok 00:00:00 < Stemby> dicevo, guardiamo not 00:00:03 < Stemby> come vedete: 00:00:03 < JumX> ok 00:00:12 < Stemby> not x if x is false, then True, else False 00:00:21 < Stemby> not restituisce un booleano 00:00:28 < Stemby> questa è una bella differenza 00:01:04 < brunology> perché not ha solo due possibili risultati 00:01:04 < Stemby> mentre and e or restituiscono il primo o il secondo valore dell'espressione, indipendentemente dal tipo, not invece restituisce un booleano 00:01:14 < Stemby> quindi: 00:01:22 < Stemby> not 0.000 00:01:24 < Stemby> cosa darò? 00:01:25 < JumX> not 0 da True 00:01:30 < Stemby> esatto 00:01:36 < Stemby> e 00:01:38 < Stemby> not '' 00:01:38 < Stemby> ? 00:01:50 < brunology> true 00:01:54 < Stemby> True 00:01:59 < Stemby> con la maiuscola 00:02:03 < brunology> sì 00:02:07 < Stemby> e 00:02:14 < Stemby> not 'pippo' 00:02:14 < Stemby> ? 00:02:23 < brunology> False 00:02:32 < Stemby> e 00:02:35 < Stemby> not None 00:02:36 < JumX> Restituisce il contrario di quello che è ... detto in maniera terra terra 00:02:37 < Stemby> ? 00:02:58 < spirit> niente 00:02:58 < Stemby> not None 00:03:02 < Stemby> no! 00:03:11 < spirit> avevo scritto None 00:03:17 < JumX> None è False di natura quindii True 00:03:24 < Stemby> paragrafo 5.1 00:03:27 < Stemby> esatto 00:03:33 < Stemby> not None dà True 00:03:50 < Stemby> come anche not False 00:03:55 < Stemby> (ovviamente) 00:03:57 < Stemby> bon 00:04:13 < Stemby> mangari in questi giorni riprendete l'algebra booleana 00:04:26 < Stemby> e provate a guardarla anche in quest'ottica 00:04:34 < Stemby> (degli algoritmi che ci stanno dientro) 00:04:52 < Stemby> ora, se avete un attimo di pazienza, vorrei introdurre un argomento importante 00:05:17 < Stemby> allora: 5.3 l'abbiamo già visto bene 00:05:28 < Stemby> 5.4 la volta scorsa 00:05:37 < Stemby> vi ricordate? 00:05:42 < |Wolf|> (cmq imho è più importante capire la logica booleana che l'algoritmo che ci sta dietro, visto che il fatto che viene restituito uno dei 2 raramente è utile) 00:06:00 < Stemby> |Wolf|: son d'accordo 00:06:12 < Stemby> ma il discorso era venuto fuori in quell'occasione 00:06:30 < Stemby> in quanto non avevamo capito perché venivano restituiti dei valori strani 00:06:36 < Stemby> invece di True o False 00:06:51 < Stemby> ora spero che sia chiaro una volta per tutte 00:06:57 < brunology> già, ora abbiamo capito 00:07:13 < Stemby> dicevo, il paragrafo 5.4 00:07:45 < Stemby> la prima tabellona l'abbiamo affrontata in dettaglio la volta scorsa 00:07:49 < Stemby> ci son dubbi? 00:07:57 < spirit> no 00:08:06 < Stemby> divisione, divisione intera, modulo, ecc. 00:08:09 < Stemby> tutto chiaro? 00:08:12 < brunology> sì 00:08:29 < Stemby> domandina: cos'è l'operatore modulo? 00:08:47 < Stemby> (e qual è, in python)? 00:08:51 < brunology> % 00:08:56 < Stemby> giusto 00:08:59 < brunology> mi dà il resto di una divisione 00:09:02 < Stemby> ok 00:09:12 < Stemby> tutti avreste saputo rispondere? 00:09:19 < Stemby> non barate... 00:09:24 < spirit> no 00:09:37 < Stemby> allora, spirit 00:09:47 < Stemby> 6 % 2 00:09:52 < Stemby> cosa significa? 00:10:05 < JumX> 6 diviso 2 00:10:06 < Stemby> intanto, si legge: "sei modulo 2" 00:10:07 < spirit> da uno 0 00:10:19 < Stemby> perché dà 0 00:10:20 < Stemby> ^ 00:10:21 < Stemby> ? 00:10:50 < spirit> lo tratta come modulo? 00:10:52 < Stemby> risposta: perché sei diviso due dà tre con resto di 0 00:10:54 < Stemby> no 00:10:59 < Stemby> è il resto 00:11:09 < spirit> che frana 00:11:15 < Stemby> sei modulo due è il resto della divisione tra 6 e 2 00:11:19 < Stemby> ovvero zero 00:11:20 < Stemby> :) 00:11:31 < Stemby> è un termine informatico 00:11:41 < Stemby> in matematica "modulo" ha un significato diverso 00:11:50 < Stemby> ovvero: valore assoluto di un numero 00:12:01 < Stemby> ovvero: quel numero senza il segno 00:12:10 < Stemby> per far questo c'è una funzione: quale? 00:12:27 < spirit> int() 00:12:39 < Stemby> come faccio ad ottenere il valore assoluto di -35.78? 00:12:40 < JumX> abs 00:12:42 < Stemby> spirit: no 00:12:44 < Stemby> JumX: sì 00:13:04 < Stemby> il valore assoluto di -35.78 è 35.78 00:13:09 < Stemby> siamo d'accordo? 00:13:17 < Stemby> provate a fare 00:13:25 < Stemby> abs(-35.78) 00:13:35 < Stemby> e verificate che dia il valore corretto 00:13:51 < Stemby> ora provate 00:13:56 < Stemby> int(-35.78) 00:13:58 < JumX> da errore 00:14:01 < Stemby> cosa restituisce? 00:14:05 < Stemby> JumX: no 00:14:11 < Stemby> che errore ti dà^ 00:14:12 < Stemby> ? 00:14:16 * |Wolf| non ha segno 00:14:34 < Stemby> JumX: non dovrebbe darti errore 00:15:08 < Stemby> da me funziona correttamente 00:15:11 < JumX> abs(-35,78) Traceback (most recent call last): 00:15:22 < Stemby> prosegui 00:15:25 < Stemby> ah!!! 00:15:28 < JumX> File "<stdin>", line 1, in <module> 00:15:35 < Stemby> attenzione al separatore decimale!!!!! 00:15:40 < JumX> TypeError: abs() takes exactly one argument (2 given) 00:15:42 < Stemby> non è la virgola 00:15:45 < Stemby> è il punto 00:15:52 < Stemby> non confondetevi!!!! 00:15:58 < JumX> porca mis.... faccio sempre lo stesso errore , per . 00:16:05 < Stemby> mettendo una virgola, stai scrivendo una tupla 00:16:17 < Stemby> ovvero una sequenza di vari oggetti 00:16:25 < Stemby> (in quel caso una sequenza di 2 interi) 00:16:28 < JumX> si 00:16:45 < Stemby> ovviamente non può trasformare 2 interi in 1 valore assoluto 00:16:50 < JumX> abs restituisce il valore 35.78 int solo 35 00:17:01 < Stemby> esatto 00:17:08 < Stemby> ripeto di nuovo 00:17:16 < Stemby> int tronca la parte decimale 00:17:17 < JumX> no 00:17:26 < Stemby> cosa n 00:17:29 < Stemby> *no? 00:17:42 < JumX> per me è chiaro abs 00:17:51 < Stemby> ok 00:17:52 < JumX> % un po meno 00:17:55 < Stemby> ok 00:18:00 < Stemby> un secondo 00:18:07 < Stemby> dicevo 00:18:15 < Stemby> int() è chiarissimo per tutti? 00:18:21 < JumX> si 00:18:21 < Stemby> tronca la parte decimale 00:18:38 < Stemby> >>> int(-35.78) 00:18:38 < Stemby> -35 00:18:44 < Stemby> non è un arrotondamento 00:18:53 < JumX> ok 00:18:58 < spirit> ok 00:18:58 < Stemby> (altrimenti avremmo dovuto avere -36) 00:19:11 < Stemby> tornando al modulo 00:19:23 < Stemby> non è altro che il RESTO di una divisione 00:19:29 < Stemby> 10 % 2 00:19:41 < Stemby> è il resto della divisione tra 10 e 2 00:19:44 < Stemby> ovvero 0 00:19:53 < Stemby> perchè 10/2 non ha resto 00:20:00 < Stemby> se invece facciamo 00:20:06 < Stemby> 5 % 3 00:20:22 < Stemby> "cinque modulo tre" 00:20:27 < spirit> 2 00:20:29 < Stemby> che cosa otteniamo? 00:20:31 < JumX> 2 00:20:35 < Stemby> spirit: perché? 00:20:42 < spirit> il resto 00:20:45 < Stemby> ovvero? 00:20:56 < spirit> la differenza 00:20:58 < JumX> 1 * 3 = 3 al 5 è 2 00:20:59 < Stemby> no 00:21:11 < JumX> cosa no 00:21:16 < Stemby> spirit: devi fare 5/3 00:21:20 < brunology> devo scappare, mi leggerò i log... grazie e a domenica 00:21:21 < Stemby> come alle elementari 00:21:23 < spirit> ah 00:21:36 < JumX> Ciao brunology notte 00:21:43 < Stemby> cinque diviso tre fa uno con resto di... 00:21:46 -!- brunology [~brunology@Azzurra=64C72B29.9-79-r.retail.telecomitalia.it] has left #debianizzati-corsi [] 00:22:12 < Stemby> spirit: ↑ 00:22:18 < Stemby> cinque diviso tre fa uno con resto di... 00:22:22 < spirit> 666 00:22:29 < spirit> 1,666 00:22:32 < Stemby> no.... 00:22:36 < Stemby> cinque diviso tre fa uno con resto di... 00:22:44 < spirit> 2 00:22:47 < Stemby> quante volte ci sta il 3 nel 5? 00:22:50 < Stemby> una volta 00:22:53 < Stemby> con che resto? 00:22:53 < Stemby> 2! 00:22:56 < Stemby> è chiaro??? 00:23:02 < spirit> ok.. 00:23:04 < Stemby> come alle elementari 00:23:07 < Stemby> non ci sono decimali 00:23:32 < Stemby> l'operatore modulo restituisce il resto di una divisione 00:23:54 < Stemby> non confondiamo il resto con la parte decimale 00:23:58 < Stemby> ora è chiaro? 00:24:03 < spirit> ok 00:24:06 < Stemby> JumX: ? 00:24:12 < JumX> si ok 00:24:45 < Stemby> purtroppo stasera non riusciamo a fare quello che avevo in mente 00:24:52 < Stemby> abbiamo allungato troppo 00:24:59 < Stemby> spero che il ripasso sia servito 00:25:10 < Stemby> solo un'ultima cosa: 00:25:23 < Stemby> diamo un'occhiata alla seconda tabella del par. 5.4 00:25:35 < Stemby> cosa vediamo? 00:25:52 < spirit> operatori 00:25:56 < Stemby> no 00:25:58 < Stemby> math.trunc(x) 00:26:11 < spirit> ah, ok 00:26:16 < Stemby> che cos'è? 00:26:42 < JumX> tratta arrotondamenti 00:26:49 < Stemby> sì 00:26:51 < JumX> se ho capito bene 00:26:59 < Stemby> ma math.trunc(x) che cos'è? 00:27:10 < JumX> tronca integralmente 00:27:13 < Stemby> una variabile? 00:27:17 < Stemby> un operatore? 00:27:20 < Stemby> una stringa? 00:27:24 < Stemby> un'espressione? 00:27:28 < spirit> un integrale 00:27:28 < Stemby> una funzione? 00:27:32 < Stemby> ???? 00:27:35 < JumX> funzione 00:27:39 < Stemby> quasi 00:27:45 < Stemby> è simile ad una funzione 00:27:54 < Stemby> infatti vedete che ci sono le parentesi 00:28:00 < Stemby> si chiama "metodo" 00:28:04 < Stemby> è un metodo 00:28:26 < Stemby> ah, no, scusate 00:28:30 < Stemby> ho sbagliato 00:28:33 < Stemby> è proprio una funzione 00:28:40 < |Wolf|> gh 00:28:46 < Stemby> mi ha confuso la sintassi punto 00:28:52 < Stemby> (e l'ora tarda) 00:28:59 < Stemby> è una funzione, come non detto 00:29:09 < Stemby> solo che non fa parte della libreria standard 00:29:21 < Stemby> ovvero: è una funzione che si trova in un modulo esterno 00:29:34 < |Wolf|> non è una funzione builtin 00:29:41 < Stemby> in particolare nel modulo math 00:29:49 < |Wolf|> quindi bisogna importare il modulo math per poterla usare 00:30:05 < |Wolf|> (e il modulo math fa parte della libreria standard di python) 00:30:17 < Stemby> ci ricordiamo come si fa a collegare nel nostro modulo gli oggetti di un modulo esterno? 00:30:27 < Stemby> |Wolf|: ah, ok 00:30:30 < spirit> import 00:30:31 < Stemby> poco cambia 00:30:33 < Stemby> spirit: bravo 00:30:53 < Stemby> quindi, per poter chiamare quella funzione, prima dobbiamo fare 00:30:56 < Stemby> import math 00:31:02 < Stemby> e poi possiamo usarla 00:31:17 < Stemby> possiamo farlo anche nell'interfaccia interattiva 00:31:18 < Stemby> proviamo 00:31:31 < Stemby> >>> import math 00:31:55 < Stemby> >>> math.trunc(17.98) 00:31:55 < Stemby> 17 00:31:58 < Stemby> fatto? 00:32:24 < Stemby> in sostanza è una funzione abbastanza inutile 00:32:25 < JumX> si 00:32:34 < Stemby> visto che possiamo ottenere la stessa cosa come? 00:32:50 < JumX> int 00:32:54 < Stemby> ovvero? 00:33:07 < JumX> int(17.98) ... 17 00:33:10 < Stemby> >>> int(17.98) 00:33:10 < Stemby> 17 00:33:12 < Stemby> esatto 00:33:33 < Stemby> passiamo alla seconda funzione 00:33:39 < Stemby> questa è più interessante 00:33:48 < JumX> round dovrebbe arrotondare in base ad una nostra scelta 00:34:02 < JumX> se vogliamo arrotondare per eccesso o per difetto 00:34:03 < Stemby> JumX: prova e facci vedere 00:34:23 < JumX> tra il dire il fare c'è di mezzo il mare ... accontentatevi della teroia 00:34:28 < Stemby> :) 00:34:41 < Stemby> allora, vedete che prende 2 parametri? 00:34:45 < JumX> *teoria 00:34:52 < Stemby> il secondo però è opzionale 00:35:03 < Stemby> iniziamo quindi a provare la funzione con un solo parametro 00:35:09 < Stemby> chi vuole iniziare? 00:35:27 < Stemby> usiamo lo stesso numero di prima, magari 00:35:43 < Stemby> inizio io, via 00:35:45 < Stemby> >>> round(17.98) 00:35:45 < Stemby> 18 00:35:49 < Stemby> oh!!! 00:35:58 < Stemby> finalmente abbiamo un arrotondamento vero 00:36:20 < Stemby> >>> round(17.39) 00:36:20 < Stemby> 17 00:36:38 < Stemby> >>> round(-17.7) 00:36:38 < Stemby> -18 00:36:41 < Stemby> ok? 00:36:48 < JumX> ok 00:36:50 < spirit> ok 00:37:07 < Stemby> attenzione: 00:37:09 < Stemby> >>> round(5.5) 00:37:09 < Stemby> 6 00:37:20 < Stemby> ok? 00:37:31 < Stemby> se il decimale è 00:37:40 < Stemby> 0 o 1 o 2 o 3 o 4 00:37:44 < Stemby> arrotonda per difetto 00:37:47 < Stemby> se è 00:37:53 < Stemby> 5 o 6 o 7 o 8 o 9 00:37:58 < Stemby> arrotonda per eccesso 00:38:07 < Stemby> chiaro? 00:38:09 < spirit> ok 00:38:17 < JumX> ok 00:38:35 < Stemby> ora cerchiamo di capire cosa fa il secondo parametro 00:38:39 < Stemby> secondo voi? 00:38:58 < Stemby> x rounded to n digits 00:39:01 < spirit> da in para 00:39:05 < spirit> ops 00:39:19 < Stemby> mi sembra chiaro... 00:39:20 < |Wolf|> >>> round(2.5) 00:39:20 < |Wolf|> 2 00:39:29 < Stemby> "digit" cos'è in inglese? 00:39:36 < |Wolf|> cifra 00:39:39 < Stemby> ok 00:39:45 < Stemby> "to round"? 00:39:56 < |Wolf|> cmq arrotonda alla cifra pari più vicina 00:39:58 < JumX> arrotonda 00:40:02 < Stemby> arrotondare 00:40:05 < Stemby> quindi 00:40:09 < Stemby> x rounded to n digits 00:40:13 < Stemby> come lo si traduce? 00:40:28 < Stemby> rounded è il p.p. di to round... 00:40:42 < Stemby> dai! 00:40:52 < Stemby> quello scarso in inglese dovrei essere io... 00:41:08 < Stemby> come si traduce in italiano "x rounded to n digits" 00:41:11 < Stemby> ??? 00:41:32 < Stemby> in italiano, qual è il participio passato di "arrotondare"? 00:41:42 < spirit> arrotondato 00:41:45 < Stemby> oh 00:41:51 < Stemby> quindi? 00:41:54 < Stemby> x → z 00:41:57 < JumX> alla cifra scelta 00:41:57 < Stemby> soddy 00:42:00 < Stemby> sorry 00:42:27 < Stemby> "x arrotondato a tot cifre" 00:42:33 < Stemby> è letterale... 00:42:47 < Stemby> chiaro? 00:43:06 < spirit> ok 00:43:10 < Stemby> >>> round(5.4234523563451345, 2) 00:43:10 < Stemby> 5.42 00:43:26 < Stemby> arrotonda a 2 cifre decimali il numero del primo parametro 00:43:57 < JumX> Ci spieghi la sintassi della doc round(x[, n]) ? 00:44:01 < Stemby> >>> round(5.4217523563451345, 3) 00:44:01 < Stemby> 5.422 00:44:09 < |Wolf|> le cose tra [] sono opzionali 00:44:15 < Stemby> arrotonda a 3 cifre decimali il numero precedente 00:44:22 < Stemby> JumX: esatto 00:44:27 < |Wolf|> quindi puoi fare sia round(x) che round(x, n) 00:44:35 < |Wolf|> la n è opzionale 00:44:53 < Stemby> JumX: chiaro? 00:44:54 < spirit> chiaro 00:45:11 < JumX> come l'acqua che sto benvendo :) 00:45:22 < Stemby> è una funzione che prende come argomento 2 parametri; il secondo è opzionale 00:45:31 < |Wolf|> cmq adesso nella doc si cerca di usare round(x, n=0) 00:46:07 < Stemby> sì, che è equivalente 00:46:24 < Stemby> ma chiarisce che il secondo parametro è 0 per default 00:47:00 < |Wolf|> sì, che se non lo specifichi usa il valore di default che in questo caso è 0 (cioè 0 decimali) 00:47:05 < Stemby> quindi, se non si inserisce il secondo parametro, questi assume per default valore 0 00:47:13 < Stemby> esatto 00:47:28 < Stemby> chiaro per tutti? 00:47:45 < JumX> si 00:47:49 < spirit> si ma io..vado,'notte e grazie 00:47:49 < Stemby> >>> round(5.4217523563451345, 0) 00:47:49 < Stemby> 5.0 00:47:54 < Stemby> ok 00:48:05 < Stemby> le ultime due funzioni le vediamo la prossima volta 00:48:09 < JumX> ok 00:48:10 -!- spirit [~spirit@Azzurra-C3C291C.104-82-b.business.telecomitalia.it] has quit [Quit: leaving] 00:48:12 < Stemby> notte 00:48:18 < |Wolf|> quali sono? 00:48:23 < JumX> le accenniamo ? 00:48:30 < |Wolf|> (e quand'è la prossima volta?) 00:48:37 < Stemby> http://docs.python.org/release/3.1.3/library/stdtypes.html#numeric-types-int-float-complex 00:48:44 < JumX> Domenica 00:48:45 < Stemby> seconda tabella 00:49:00 < Stemby> |Wolf|: sempre mercoledì e domenica 00:49:05 < JumX> floor e ceil 00:49:16 < Stemby> non le conosco 00:49:23 < Stemby> e la doc non mi chiarisce molto... 00:49:27 < Stemby> adesso le provo 00:49:37 < |Wolf|> arrotondano per eccesso e difetto 00:49:44 < JumX> floor <= x ceil >= x 00:50:00 < |Wolf|> cmq round normale su py3 arrotanda alla cifra pari 00:50:04 < |Wolf|> tonda* 00:50:26 < |Wolf|> >>> round(1.5) 00:50:26 < |Wolf|> 2 00:50:26 < |Wolf|> >>> round(2.5) 00:50:26 < |Wolf|> 2 00:50:50 < Stemby> >>> math.floor(5.4217523563451345) 00:50:50 < Stemby> 5 00:50:50 < Stemby> >>> math.floor(5.7217523563451345) 00:50:50 < Stemby> 5 00:50:54 < Stemby> chiaro 00:51:13 < |Wolf|> floor e ceil infatti vogliono dire pavimento e soffitto 00:51:15 < Stemby> >>> math.ceil(5.7217523563451345) 00:51:15 < Stemby> 6 00:51:15 < Stemby> >>> math.ceil(5.1217523563451345) 00:51:15 < Stemby> 6 00:51:21 < Stemby> chiarissimo 00:51:26 < |Wolf|> floor sempre verso il basso, ceil verso l'alto 00:51:29 < Stemby> ok 00:51:47 < JumX> ok 00:52:18 < Stemby> bon, buona notte 00:52:24 < JumX> Ora credo che possiamo andare a nanna ... che ditre? 00:52:28 < Stemby> ah, JumX 00:52:39 < Stemby> ovviamente bisogna prima importare math 00:52:46 < |Wolf|> a me sono esplosi i test e devo sistemarli 00:52:50 < Stemby> ma se l'hai già fatto, è già fatto 00:52:55 < JumX> si l'avevo capito 00:53:02 < JumX> facendo le prove 00:53:10 < Stemby> ok 00:53:19 < Stemby> notte 00:53:25 < JumX> inizialmente non mi funzionava poi con import math tutto ok 00:53:27 < Stemby> aspetta 00:53:36 < Stemby> i compiti per la prossima volta... 00:53:44 < Stemby> va beh, son scappati tutti 00:53:48 < JumX> tu tu tu tu è caduta la linea 00:53:55 < Stemby> niente 00:53:57 < JumX> dai dimmi 00:54:10 < Stemby> chi non l'ha ancora fatto, che legga i 2 capitoli iniziali del libro 00:54:36 < Stemby> e magari quelle slide sugli algoritmi e sui diagrammi di flusso 00:54:39 < JumX> li ho già letti ma non dicono molto di nuovo o sbaglio? 00:54:45 < Stemby> non sbagli 00:55:01 < Stemby> solo che per leggere il cap. 3 volevo prima introdurre un argomento 00:55:07 < JumX> Quindi ripetizione .. :) 00:55:09 < Stemby> solo che oggi non abbiamo fatto in tempo 00:55:25 < Stemby> già, mi spiace 00:55:33 < Stemby> un po' ho fatto tardi io 00:55:36 < risca> buona sera