I tipi di dati. Il comando dir. Capitolo 4
|
|
|
- Carmelo Costa
- 10 anni fa
- Visualizzazioni
Transcript
1 Capitolo 4 I tipi di dati Dopo tante lungaggini burocratiche, entriamo finalmente nel vivo del linguaggio. Entriamo alla grande, esplorando uno degli aspetti più peculiari di Python: i suoi spettacolari tipi di dati. Cominceremo facendo rapidamente la conoscenza dei comandi dir e type, utilissimi quando si inizia a utilizzare Python, ma anche dopo! Quindi passeremo alle caratteristiche delle liste, delle stringhe, delle tuple, degli insiemi e dei dizionari (in Python sono rispettivamente i tipi list, str, tuple, set e dict), dei dati numerici. Infine daremo un occhiata anche ad alcuni tipi un po speciali: True, False e None (che in italiano vogliono dire Vero, Falso e Nulla). Nei prossimi paragrafi utilizzeremo IDLE per collaudare i vari esempi d uso delle variabili. Come vedremo, per inizializzare una variabile basta scegliere un nome e poi assegnarle un valore. Questo è vero sia nella modalità interattiva sia nella scrittura di codice sorgente. Attenzione però: anche se non siamo obbligati a dichiarare una variabile, non possiamo usarne una non ancora inizializzata. Python ci lascia la massima libertà, ma cerca sempre di ridurre al minimo ogni possibilità di errore. Il comando dir Il comando dir si utilizza per lo più in modalità interattiva. Ci permette di visualizzare un elenco degli attributi dell oggetto passato come argomento, qualunque esso sia. Vediamolo all opera con un modulo: import smtplib dir(smtplib) [ CRLF, OLDSTYLE_AUTH, SMTP, SMTPAuthenticationE rror, SMTPConnectError, SMTPDataError, SMTPException, SMTPHeloError,
2 28 Capitolo 4 SMTPRecipientsRefused, SMTPResponseException, SMTPSenderRefused, SMTPServerDisconnected, SMTP_PORT, SSLFakeFile, SSLFakeSocket, all, builtins, doc, file, name, base64, , encode_base64, hmac, quoteaddr, quotedata, re, socket, stderr ] Tutti gli elementi della lista sono funzioni o costanti del modulo smtplib (una possibilità fondamentale quando vorremo inviare un messaggio da un nostro programma; abbiamo già visto all opera questa possibilità in un esempio del Capitolo 1). Spesso, molti degli elementi restituiti da dir sono delle stringhe che presentano una sequenza di due caratteri _ all inizio e alla fine. Per ora possiamo tranquillamente ignorarli: sono metodi particolari che vengono richiamati dall interprete per le operazioni standard. Per esempio il metodo str di un dato oggetto viene richiamato da Python ogni volta che è richiesta la conversione in stringa dell oggetto o una sua rappresentazione visualizzabile dal comando print. Vediamo ora l output di dir con una stringa: s= Ciao dir(s) [ add, class, contains, delattr, doc, eq, ge, getattribute, getitem, getnewargs, getslice, gt, hash, init, le, len, lt, mod, mul, ne, new, reduce, reduce_ex, repr, rmod, rmul, setattr, str, capitalize, center, count, decode, encode, endswith, expandtabs, find, index, isalnum, isalpha, isdigit, islower, isspace, istitle, isupper, join, ljust, lower, lstrip, partition, replace, rfind, rindex, rjust, rpartition, rsplit, rstrip, split, splitlines, startswith, strip, swapcase, title, translate, upper, zfill ]
3 I tipi di dati 29 Non facciamoci spaventare da questo lungo elenco: Python è un linguaggio potente e i suoi tipi di dati non sono da meno. Nel paragrafo dedicato alle stringhe vedremo in dettaglio il funzionamento della maggior parte di questi metodi. Il comando type Il comando type visualizza il tipo dell oggetto che viene passato come argomento. Vediamo alcuni rapidi esempi: n=1 type(n) <type int > s= ciao type(s) <type str > import smtplib type(smtplib) <type module > Ogni qualvolta avremo un dubbio su un elemento restituito da dir (sarà una costante, una funzione oppure una classe?), type ci verrà in soccorso. Proviamo a vedere come ci può aiutare con alcuni degli elementi restituiti da dir per il modulo smtplib: import smtlib dir(smtplib) [ CRLF, OLDSTYLE_AUTH, SMTP, SMTPAuthenticationError, SMTPConnectError, SMTPDataError, SMTPException, SMTPHeloError, SMTPRecipientsRefused, SMTPResponseException, SMTPSenderRefused, SMTPServerDisconnected, SMTP_PORT, SSLFakeFile, SSLFakeSocket, all, builtins, doc, file, name, base64, , encode_base64, hmac, quoteaddr, quotedata, re, socket, stderr ] Cosa sarà mai l attributo CRLF? type(smtplib.crlf) <type str >
4 30 Capitolo 4 Una stringa! Va bene, era facile, ci si poteva arrivare dal nome. Infatti è la costante che contiene i codici CR e LF, che stanno per Carriage Return (ritorno carrello) e Line Feed (nuova riga). I caratteri CR e LF sono ben conosciuti a tutti coloro che hanno avuto a che fare con il trasferimento di file tra sistemi Unix e sistemi Windows. Unix utilizza come terminatore di una riga dei file di testo (e quindi anche dei file di codice sorgente) il solo codice LF, mentre Windows utilizza la sequenza CR-LF. Questo fatto può essere di per sé fonte di problemi, ma la situazione è a volte peggiorata da alcuni programmi di trasferimento file, che effettuano automaticamente questa conversione. Questa traduzione può essere utile per i file di testo, ma se viene erroneamente effettuata per i file binari (per esempio per i file compressi in formato ZIP) il risultato sarà quasi sempre un discreto mal di testa per il malcapitato che ne è vittima. SMTP che cosa rappresenta? type(smtplib.smtp) <type classobj > Una classe! Ma quali metodi conterrà questa classe? Riproviamo con dir: dir(smtplib.smtp) docmd, does_esmtp, ehlo, ehlo_resp, expn, file, getreply, has_extn, helo, helo_resp, help, login, mail, noop, putcmd, quit, rcpt, rset, send, sendmail, set_debuglevel, starttls, verify, vrfy ] A questo punto, con un po di immaginazione, possiamo intuire che sendmail è il metodo che serve per inviare un messaggio di posta elettronica. Spesso ci sarà capitato di dover consultare la documentazione di un linguaggio di programmazione per farci ricordare il nome di un metodo o di una costante: con Python, dir e type ci eviteranno un sacco di volte questa fatica...
5 I tipi di dati 31 La documentazione di Python è molto ben realizzata ma, purtroppo, è disponibile solo in inglese. Per fortuna esiste anche un sito dedicato alla traduzione in italiano della documentazione ufficiale: È probabile che non vi troverete l ultima versione tradotta, ma anche la penultima sarà più che sufficiente per risolvere la stragrande maggioranza dei dubbi. Le liste Cosa ci fa venire in mente la parola lista? Quasi certamente penseremo alla lista della spesa. Quali sono le sue caratteristiche principali? In estrema sintesi possiamo affermare che una lista è un elenco ordinato che contiene elementi eterogenei, ovvero di diverso tipo. Bene, in Python una lista è proprio questo: un elenco ordinato di elementi eterogenei. Proviamo subito a definire una semplice lista contenente qualche valore numerico scelto a caso: elenco = [23, 9, 1964] elenco [23, 9, 1964] In questo esempio dobbiamo prestare attenzione ai caratteri [ e ]. Sono proprio queste ultimi, le parentesi quadre, che indicano a Python che vogliamo creare una lista. Sì, facile; ma non avevamo detto che la lista poteva contenere elementi eterogenei? elenco = [23, 9, 1964] varie = [1, pippo, elenco] Questo esempio è un pochino più interessante: il primo elemento della lista è un numero, il secondo è una stringa e il terzo è un altra lista. Proviamo ora a visualizzare il contenuto della nuova lista: varie [1, pippo, [23, 9, 1964]] Abbiamo definito una lista che contiene un altra lista. Non male.
6 32 Capitolo 4 Non ci basta? Allora esageriamo: import smtplib varie.append(smtplib) varie [1, pippo, [23, 9, 1964], <module smtplib from C:\python25\lib\smtplib.py >] Ora la nostra lista, oltre a contenere dei valori semplici e un altra lista, contiene addirittura una libreria importata. Quello di inserire in una lista un modulo importato è un colpo a effetto (probabilmente inutile). Abbiamo però visto il funzionamento del metodo append, che aggiunge un elemento in fondo alla lista. In Python il punto separa un oggetto da un suo attributo o da un suo metodo. Bene, ora che abbiamo imparato a creare le liste, come possiamo estrarre un elemento a piacere? Semplice: elenco = [23, 9, 1964] elenco[0] 23 Per estrarre l elemento nella prima posizione abbiamo utilizzato l indice 0. Questo perchè in Python la numerazione delle posizioni all interno di una lista parte da 0: data una lista di n elementi, questi sono numerati da 0 a n - 1. Che cosa succede se specifichiamo un indice che non esiste? Viene scatenato un errore o più precisamente un eccezione, argomento al quale è dedicato un intero capitolo: elenco = [23, 9, 1964] elenco[4] Traceback (most recent call last): File <stdin>, line 1, in? IndexError: list index out of range L errore list index out of range indica proprio il fatto che l indice utilizzato si trova al di fuori della portata della lista. Come possiamo estrarre l elemento che si trova nell ultima posizione?
7 I tipi di dati 33 In questo caso abbiamo due possibilità: elenco = [23, 9, 1964] elenco[2] 1964 elenco[-1] 1964 Se conosciamo la lunghezza della lista, possiamo indicare direttamente l indice dell ultimo elemento; in alternativa possiamo, assai più comodamente, indicare l indice -1. Python sa che quando l indice è negativo deve partire dal fondo. Gli elementi di una lista di lunghezza n possono essere individuati in ordine inverso con un indice che va da -1 a n. A proposito di dimensioni, la funzione len ci permette di scoprire la lunghezza di una lista: elenco = [23, 9, 1964] len(elenco) 3 Possiamo anche estrarre più elementi in un colpo solo? Ma certo, basta specificare due indici, separati dal simbolo : : elenco = [23, 9, 1964] elenco[0:2] [23, 9] elenco[1:3] [9, 1964] Possiamo usare gli indici negativi anche con il simbolo : : elenco[1:-1] [9] elenco[0:-1] [23, 9] Possiamo perfino omettere uno dei due valori, a sinistra o a destra di : ; in tal caso Python raggiunge automaticamente il primo o l ultimo indice della lista: elenco = [23, 9, 1964] elenco[1:] [9, 1964] elenco[:2]
8 34 Capitolo 4 [23, 9] elenco[:] [23, 9, 1964] Quest ultimo esempio è da tenere a mente in quanto rappresenta il modo più comodo e veloce per duplicare una lista: elenco = [23, 9, 1964] elenco2 = elenco[:] elenco2 [23, 9, 1964] Questo particolare metodo di accesso a uno o più elementi di una lista è detto slicing (da to slice = affettare); si tratta di uno di quegli aspetti di Python che lo rendono così piacevole da utilizzare. In Python lo slicing è utilizzabile con tutti i tipi di dati che sono sequenziali. Per esempio è utilizzabile anche con le stringhe che, come vedremo nel prossimo paragrafo, possono essere considerate come una sequenza ordinata di caratteri. Lo slicing può essere usato anche per assegnare in un colpo solo più elementi di una lista: elenco = [23, 9, 1964] elenco[0:2] = [13, 8] elenco [13, 8, 1964] oppure per inserire nuovi elementi: elenco = [ a, b, c ] elenco[1:1] = [1, 2, 3] elenco [ a, 1, 2, 3, b, c ] o anche per cancellare degli elementi: elenco = [ a, 1, 2, b, c ] elenco[1:3] = [] elenco [ a, b, c ]
9 I tipi di dati 35 Abbinando fra loro questi ultimi esempi, proviamo a immaginare come sia possibile cancellare gli ultimi due elementi di una lista. Elementare, Watson: elenco = [ a, b, c, 1, 2] elenco[-2:] = [] elenco [ a, b, c ] In questo paragrafo abbiamo già visto all opera il metodo append. Ma quali altri metodi possono essere applicati a una lista? Come facciamo a scoprirlo? Ebbene sì: con il nostro vecchio amico dir: varie = [1, marco, [23, 9, 1964] ] dir(varie) [ add, class, contains, delattr, delitem, delslice, doc, eq, ge, getattribute, getitem, getslice, gt, hash, iadd, imul, init, iter, le, len, lt, mul, ne, new, reduce, reduce_ex, repr, reversed, rmul, setattr, setitem, setslice, str, append, count, extend, index, insert, pop, remove, reverse, sort ] Ignoriamo tranquillamente gli attributi che iniziano e terminano con la sequenza e vediamo in dettaglio gli altri: append, count, extend, index, insert, pop, remove, reverse e sort. Sappiamo già usare il primo, append: consente di aggiungere un nuovo elemento in fondo alla lista. insert permette di inserire un elemento nella posizione desiderata: varie = [ pluto, pippo ] varie.insert(0, nuovo ) varie [ nuovo, pluto, pippo ] Per inserire un elemento in fondo alla lista possiamo usare un numero qualsiasi, uguale o maggiore alla lunghezza della lista.
10 36 Capitolo 4 Quindi possiamo impiegare la seguente forma: varie = [ pluto, pippo ] varie.insert(2, fondo ) varie [ pluto, pippo, fondo ] ma anche: varie = [ pluto, pippo ] varie.insert(42, fondo ) varie [ pluto, pippo, fondo ] Il metodo extend accetta come parametro una seconda lista, che viene appesa in fondo alla lista principale: varie = [ pluto, pippo ] aggiunta = [ a, b, c ] varie.extend(aggiunta) varie [ pluto, pippo, a, b, c ] La differenza tra i metodi append ed extend è chiara: il primo aggiunge in fondo alla lista un elemento semplice, mentre il secondo aggiunge in fondo alla lista principale un intera lista; in pratica è un po come usare un append per tutti gli elementi della lista da aggiungere. Siete stanchi di sentir parlare di metodi che allungano la nostra lista? È comprensibile, sicuramente ci capiterà anche di dover rimuovere qualche elemento dalla lista. I metodi remove e pop servono proprio a questo. Il metodo remove è speculare rispetto a insert, in quanto rimuove l elemento corrispondente all indice passato come argomento: elenco = [ a, b, 1, c ] elenco.remove(2) elenco [ a, b, c ] Il metodo pop (onomatopeico) è molto particolare, in quanto abbina le due funzionalità di estrazione e rimozione di un elemento. Può essere usato con o senza indice; in quest ultimo caso estrae l ultimo elemento
11 I tipi di dati 37 della lista: elenco = [ a, b, c ] elenco.pop() c elenco [ a, b ] elenco.pop(0) a elenco [ b ] Il metodo count conta gli elementi della lista che sono uguali all argomento passato: varie = [1, 2, 3, 4, 1] varie.count(1) 2 varie.count(5) 0 Attenzione, perché count non esplora ricorsivamente eventuali liste presenti all interno della lista principale: varie = [1, marco, [23, 9, 1964] ] varie.count(23) 0 L elemento 23 è, sì, presente, ma solo all interno della lista che rappresenta il terzo elemento della lista principale, per questo motivo non viene trovato da count. index restituisce la posizione all interno della lista dell elemento passato come argomento: elenco = [ a, b, c ] elenco.index( b ) 1 Attenzione, perchè se l elemento non esiste viene scatenato un errore (sì, giusto, si chiama eccezione): elenco = [ a, b, c ] elenco.index( e )
12 38 Capitolo 4 Traceback (most recent call last): File <stdin>, line 1, in? ValueError: list.index(x): x not in list Il metodo reverse inverte semplicemente una lista: elenco = [ c, b, a ] elenco.reverse() elenco [ a, b, c ] Il metodo sort dispone in ordine alfabetico e/o numerico gli elementi della lista: elenco = [44, c, 1, b, a ] elenco.sort() elenco [1, 44, a, b, c ] I numeri vengono disposti in ordine all inizio della lista, quindi vengono elencati i valori alfanumerici, in ordine alfabetico. Normalmente il metodo sort dovrebbe essere applicato a liste contenenti elementi omogenei, ma nulla ci vieta di impiegarlo anche su liste di elementi eterogenei. Le stringhe Senz altro qualcuno si domanderà che cosa ci potrà mai essere di particolare e innovativo nelle stringhe Python. Effettivamente, di solito una stringa non è altro che una sequenza di caratteri. Ma attenzione: in Python tutto ciò che è una sequenza ha accesso alle potentissime funzionalità di slicing che abbiamo appena visto all opera per le liste. Inoltre una stringa, come ogni altro elemento in Python, è un oggetto, dotato di metodi che ne permettono una facile gestione. Vediamo subito qualche esempio di slicing con le stringhe in Python: s = s[:5] # I primi 5 caratteri s[-5:] # Gli ultimi 5 caratteri 56789
13 I tipi di dati 39 s[1:-1] # Tutti i caratteri tranne il primo e l ultimo In Python il carattere # indica l inizio di un commento. Inserire un commento in modalità interattiva ha senso solo quando occorre fare degli esempi; sarà invece molto più utile durante la stesura di programmi veri e propri. Lo sappiamo tutti che è utile commentare bene i propri file di codice sorgente, vero? C è ancora un tipo di slicing che non abbiamo esaminato. Possiamo utilizzare un terzo parametro che indica, oltre all inizio e alla fine della nostra fetta, ogni quanti elementi dobbiamo estrarne uno. Forse è meglio chiarire il concetto con un esempio: s = s[::2] # Prendi un carattere ogni due s[1::2] # Questa volta parti dal secondo Un importante differenza rispetto alle liste consiste nel fatto che le stringhe sono oggetti immutabili. Non possiamo assegnare un nuovo valore a una parte di una stringa: s = ab-de s[2] = c Traceback (most recent call last): File <stdin>, line 1, in <module> s[2] = c TypeError: str object does not support item assignment Per poterlo fare dobbiamo riassegnare l intera stringa: s = ab-de s = s[:2] + c + s[3:] s abcde
14 40 Capitolo 4 Possiamo delimitare una stringa con doppi apici; in tal caso la stringa può anche contenere degli apici singoli: s = Mi piace l uva Oppure possiamo utilizzare come delimitatore l apice singolo e allora all interno della stringa potremo utilizzare gli apici doppi: s = Ho visto i Monty Python : che risate! Per inserire in una stringa un carattere di a capo dobbiamo utilizzare il simbolo backslash (la barra rovesciata), seguito dal carattere n, ovvero la sequenza \n : s = 1\n2\n3\nVia! print s Via! La sequenza \n è un simbolo speciale. Ne esistono diversi altri ma quelli più importanti sono per l appunto \n Line Feed (a capo), \r Carriage Return (ritorno carrello), \b Backspace (indietro di un carattere), \t Tab (carattere di tabulazione) e \xhh che permette di inserire il simbolo il cui codice ASCII è il valore esadecimale HH. Spesso ci capiterà di dover scrivere delle stringhe su più righe, come stringhe di documentazione dei programmi. È possibile farlo utilizzando una sequenza di tre apici doppi o singoli per racchiudere una stringa multiriga. s = Facile scrivere stringhe su più righe... E posso usare apici: spam O doppi apici: egg E finisco qui. print s
15 I tipi di dati 41 Facile scrivere stringhe su più righe... E posso usare apici: spam O doppi apici: egg E finisco qui. Per concatenare tra di loro due stringhe possiamo usare il simbolo +: s = Precipite p = volissimevolmente s + p Precipitevolissimevolmente Possiamo perfino moltiplicare una stringa, usando il simbolo *: s = spam s * 5 spamspamspamspamspam Anche le stringhe offrono dei metodi che permettono di manipolarle con facilità. Sono davvero molti: capitalize, center, count, decode, encode, endswith, expandtabs, find, index, isalnum, isalpha, isdigit, islower, isspace, istitle, isupper, join, ljust, lower, lstrip, partition, replace, rfind, rindex, rjust, rpartition, rsplit, rstrip, split, splitlines, startswith, strip, swapcase, title, translate, upper, zfill. Esamineremo in dettaglio solo i principali; la documentazione di Python ci può venire in aiuto per scoprire il funzionamento degli altri metodi (ma un pizzico di intuizione e il prompt di Python spesso sarà più che sufficiente). find ricerca un carattere in una stringa: s = Troviamo la x in questa stringa s.find( x ) 12 strip rimuove gli spazi all inizio e alla fine di una stringa: s = egg s.strip() egg
16 42 Capitolo 4 replace sostituisce una sottostringa con un altra: s = Non mi piacciono i Monty Python s.replace( Non, Ma come ) Ma come mi piacciono i Monty Python split e join vanno di pari passo: il primo spezza una stringa in una lista di più parti, mentre il secondo riunisce una lista per formare un unica stringa: s = uno due tre s.split( ) [ uno, due, tre ] /.join([ 12, 10, 1492 ]) 12/10/1492 Forse l uso del metodo join ci sembrerà un po strano; in realtà, se ci pensiamo bene, è perfettamente corretto. join non può essere un metodo della lista; deve essere un metodo della stringa utilizzata per unire gli elementi della lista. Non possiamo usare split specificando come argomento una stringa vuota per separare tutti i caratteri di una stringa. Per ottenere questo risultato possiamo però usare la funzione predefinita list: s = 123 list(s) [ 1, 2, 3 ] Le tuple Le tuple sono sequenze di oggetti eterogenei (in questo senso sono simili alle liste) ma sono immutabili (e in questo senso sono simili alle stringhe). Vediamo la nostra prima tupla: t = ( basta, con, le, liste ) t ( basta, con, le, liste ) Le parentesi tonde ( e ) indicano a Python che vogliamo creare una tupla.
17 I tipi di dati 43 Anche con le tuple possiamo usare lo slicing: t = (1, 2, 3, stella ) t[:3] (1, 2, 3) t[-1] stella Ma non possiamo modificarne alcuna parte: t = (1, x, 3, stella ) t[1] = 2 Traceback (most recent call last): File <stdin>, line 1, in <module> t[1] = x TypeError: tuple object does not support item assignment Le tuple non hanno alcun metodo e l unico modo che abbiamo per sapere se un elemento è presente in una tupla consiste nell impiegare l operatore in: fibonacci = (1, 1, 2, 3, 5, 8, 13, 21) 8 in fibonacci True 9 in fibonacci False True e False sono i valori booleani vero e falso in Python: li vedremo più in dettaglio tra qualche paragrafo. Come possiamo definire una tupla contenente un solo elemento? Con questo accorgimento: singolo = (1) # No, non così... singolo 1 singolo = (1,) # Così invece sì! singolo (1,)
18 44 Capitolo 4 Qualcuno si domanderà a cosa servono le tuple, visto che non offrono niente in più delle liste ma presentano molte funzionalità in meno. È una domanda legittima: il motivo principale sta proprio nella loro immutabilità che gli permette di fungere da indici per i dizionari (argomento che verrà trattato in uno dei prossimi paragrafi). Gli insiemi I set (insiemi) sono un potente tipo di dati che possiamo usare quando dobbiamo gestire gruppi di elementi non ordinati e senza duplicati. A differenza dei tipi di dati che abbiamo visto fino a questo momento, per creare un set dobbiamo usare una parola chiave specifica invece che una carattere speciale: insieme = set([ pippo, pluto, paperino ]) insieme set([ pippo, paperino, pluto ]) La parola chiave da impiegare per creare un insieme è proprio set. L argomento può essere una sequenza qualsiasi. Quindi possiamo impiegare una lista come nell esempio precedente, ma anche una tupla o una stringa: lettere = set( hello ) lettere set([ h, e, l, o ]) Potete notare come la stringa hello, pur contenendo 5 caratteri ha generato un insieme di soli quattro caratteri (il carattere l appare una volta sola nell insieme): gli insiemi non possono contenere elementi duplicati. Le operazioni che possiamo effettuare sugli insiemi sono tutte quelle classiche dell insiemistica tradizionale. L insieme unione, con il carattere (la barra verticale): piccoli = set([ topo, mosca ]) grandi = set([ orso, balena ]) piccoli grandi set([ topo, orso, mosca, balena ])
19 I tipi di dati 45 L insieme differenza, con il carattere - (il meno): piccoli = set([ topo, mosca ]) bianchi = set([ colomba, topo ]) piccoli - bianchi set([ mosca ]) L insieme intersezione, con il carattere & (la e commerciale): piccoli = set([ topo, mosca ]) bianchi = set([ colomba, topo ]) piccoli & bianchi set([ topo ]) L insieme differenza simmetrica, meglio noto come xor, costituito da tutti gli elementi che sono presenti solo in uno dei due insiemi ma non in entrambi, con il carattere ^ (l accento circonflesso): piccoli = set([ topo, mosca ]) bianchi = set([ colomba, topo ]) piccoli ^ grandi set([ colomba, mosca ] I dizionari Se possiamo eleggere il tipo di dati di Python di cui sentiamo di più la mancanza quando (purtroppo) abbiamo a che fare con un altro linguaggio di programmazione che ne è privo, questo è proprio il dictionary (dizionario). La definizione ufficiale di un dizionario è array associativo. Ma come quasi tutte le definizioni belle e pompose, non ci dice molto. Per renderci conto di che cosa stiamo parlando, possiamo esaminare un esempio: dobbiamo creare un dizionario e assegnargli qualche valore: rubrica = dict() rubrica[ marco ] = rubrica[ lucia ] = Proviamo a visualizzare il dizionario che abbiamo appena creato: rubrica { marco : , lucia : }
20 46 Capitolo 4 Ora estraiamo un valore dal dizionario: rubrica[ marco ] Quindi proviamo ad aggiungere un nuovo valore: rubrica[ difra ] = Adesso cominciamo ad afferrare il concetto? Un dizionario è un insieme di oggetti che possiamo estrarre attraverso una chiave. La chiave in questione è quella che abbiamo utilizzato in fase di assegnamento. Per elencare tutte le chiavi di un dizionario possiamo utilizzare il metodo keys: rubrica.keys() [ difra, marco, lucia ] Come possiamo sapere se una determinata chiave è presente nel dizionario? Il metodo has_key fa al caso nostro: rubrica.has_key( silvio ) False rubrica.has_key( marco ) True Ovviamente possiamo anche cancellare un elemento dal dizionario; basta specificare la sua chiave con il comando del: del rubrica[ difra ] rubrica { marco : , lucia : } Che cosa possiamo assegnare a un elemento di un dizionario? Qualsiasi oggetto Python, perfino una funzione o una classe (anche se non abbiamo ancora visto come si usano). E che cosa possiamo utilizzare come chiave di un elemento? Qualsiasi oggetto immutabile, quindi una stringa, un intero ma anche una tupla.
21 I tipi di dati 47 Una tupla può essere utilizzata come chiave in un dizionario solo se non contiene, direttamente o indirettamente, altri oggetti modificabili. Una tupla che contiene una lista non può quindi essere usata come chiave di un dizionario. Non si può usare neppure un insieme, perché è un oggetto modificabile. Esiste però una versione immutabile che si chiama frozenset (letteralmente insieme congelato ) che è per i set quello che le tuple sono per le liste; è immutabile e quindi può essere usato come chiave di un dizionario. Anche i dizionari hanno vari metodi (nessuno ne dubitava): clear, copy, fromkeys, get, has_key, items, iteritems, iterkeys, itervalues, keys, pop, popitem, setdefault, update, values. Alcuni di essi (come keys e has_key) sono già stati brevemente introdotti negli esempi precedenti. Tra tutti gli altri esamineremo solo i più utili. clear cancella tutti gli elementi di un dizionario. biblio = { bibbia : 0, peopleware : 42 } biblio { peopleware : 42, bibbia : 0} biblio.clear() biblio {} Un dizionario può essere inizializzato con le parentesi graffe. Un dizionario vuoto è indicato da due parentesi graffe vuote. get permette di estrarre un valore di default qualora la chiave specificata non sia presente: sport = { corsa : 10, basket : 13 } sport.get( corsa, 0) 10 sport.get( tennis, 0) 0
22 48 Capitolo 4 setdefault permette di estrarre un valore di default, ma aggiungendolo al dizionario qualora la chiave specificata non esista: ricetta = { uova : 2, farina : 100, burro : 30 } ricetta.setdefault( zucchero, 200) 200 ricetta { zucchero : 200, burro : 30, farina : 100, uova : 2} values è il gemello speculare di keys: invece delle chiavi estrae tutti gli elementi: azioni = { fiat : 2, link : 99, oracle : 3} azioni.values() [2, 3, 99] Infine items è la somma di keys e values, infatti restituisce la lista delle coppie chiave/valore del dizionario (sotto forma di tuple): frutta = { mele : 123, banane : 5} frutta.items() [( banane, 5), ( mele, 123)] I numeri Cosa mai potrà aggiungere Python a un tipo di dati così comune come i dati numerici? Cominciamo dagli interi e proviamo a calcolare la decimillesima potenza di 2: 2 ** Nella Figura 4.1 possiamo vedere il risultato dell operazione. Proprio così: non c è limite alle dimensioni di un numero intero. O meglio, il limite è solo quello fisico della memoria del computer su cui stiamo utilizzando Python.
23 I tipi di dati 49 Figura 4.1 Un numero intero decisamente inusuale. Ovviamente possiamo utilizzare anche i numeri in virgola mobile (attenzione però, in questo caso il limite c è e dipende dalla piattaforma che stiamo utilizzando): / Per i palati più esigenti esistono anche i numeri complessi, identificati dal suffisso j o J: a = -1j # unità immaginaria a.real
24 50 Capitolo a.imag -1.0 a ** 0.5 # radice quadrata di -1 ( j) True, False e None Anche Python, come ogni linguaggio che si rispetti, ha i suoi valori booleani vero e falso, che corrispondo alle stringhe True e False. numeri_pari = (2, 4, 6, 8) x = 1 in numeri_pari x False y = 4 in numeri_pari y True Se vogliamo inizializzare un valore booleano dobbiamo ricordarci di non usare gli apici come per le stringhe, quindi: flag1 = True # Così va bene flag2 = False # Così non ci siamo proprio Ed eccoci finalmente arrivati alla degna conclusione di questa lunga passeggiata tra i tipi di dati di Python: il nulla. Il tipo di dati None (nulla) può assumere un solo valore, uguale proprio a None. Viene utilizzato in tutte le situazioni in cui intendiamo indicare la mancanza di un valore definito. Per esempio possiamo utilizzarlo per inizializzare il valore di alcune variabili che devono esistere ma non hanno alcun valore iniziale. Quando parleremo dei parametri opzionali delle funzioni vedremo come il tipo di dati None può essere utilizzato per inizializzarli in maniera pulita. Per definire None, come per True e False, non dobbiamo mai usare gli apici: nulla = None # Così va bene qualcosa = None # Questo non è un vero None
25 I tipi di dati 51 Conversioni Sicuramente ci capiterà di dover trasformare un valore da un tipo di dati a un altro; per esempio potremmo dover trasformare una lista in una tupla o un intero in una stringa e così via. Per fare questo dobbiamo utilizzare le funzioni predefinite str, list, tuple, int. Vediamo qualche esempio: t = ( a, b, c ) # Una tupla l = [1, 2, 3] # Una lista s = ciao # Una stringa i = 42 # Un intero str(i) # Da intero a stringa 42 tuple(l) # Da lista a tupla (1, 2, 3) list(t) # Da tupla a lista [ a, b, c ] int( 1997 ) # Da stringa a intero 1997 int( FF, 16) # Da esadecimale a intero 255
4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0
Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice
Funzioni in C. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni
CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS
CONTENUTI: CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS Creazione database vuoto Creazione tabella Inserimento dati A) Creazione di un database vuoto Avviamo il programma Microsoft Access. Dal menu
Il calendario di Windows Vista
Il calendario di Windows Vista Una delle novità introdotte in Windows Vista è il Calendario di Windows, un programma utilissimo per la gestione degli appuntamenti, delle ricorrenze e delle attività lavorative
I file di dati. Unità didattica D1 1
I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità
Convertitori numerici in Excel
ISTITUTO DI ISTRUZIONE SUPERIORE G. M. ANGIOY CARBONIA Convertitori numerici in Excel Prof. G. Ciaschetti Come attività di laboratorio, vogliamo realizzare dei convertitori numerici con Microsoft Excel
Richiesta pagina PHP (es: index.php)
PHP PHP = personal home page SERVER Richiesta pagina PHP (es: index.php) Server Web (Apache) in ascolto sulla porta 80, si accorge che la pagina richiesta è una pagina PHP in base all'estensione o con
Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.
DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti
WORD 97 SCRIVERE UNA TESI DI LAUREA
WORD 97 SCRIVERE UNA TESI DI LAUREA PASSO 1 Per prima cosa pensiamo al formato generale della pagina: i margini richiesti da una tesi sono quasi sempre più ampi di quelli di un testo normale. Apriamo ora
GESGOLF SMS ONLINE. Manuale per l utente
GESGOLF SMS ONLINE Manuale per l utente Procedura di registrazione 1 Accesso al servizio 3 Personalizzazione della propria base dati 4 Gestione dei contatti 6 Ricerca dei contatti 6 Modifica di un nominativo
Programmazione C Massimo Callisto De Donato [email protected] www.cs.unicam.it/massimo.callisto
Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato [email protected] www.cs.unicam.it/massimo.callisto LEZIONE
Esercizi su. Funzioni
Esercizi su Funzioni ๒ Varie Tracce extra Sul sito del corso ๓ Esercizi funz_max.cc funz_fattoriale.cc ๔ Documentazione Il codice va documentato (commentato) Leggibilità Riduzione degli errori Manutenibilità
f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da
Data una funzione reale f di variabile reale x, definita su un sottoinsieme proprio D f di R (con questo voglio dire che il dominio di f è un sottoinsieme di R che non coincide con tutto R), ci si chiede
2 Fortino Lugi. Figura Errore. Nel documento non esiste testo dello stile specificato.-3 -- Finestra attiva o nuovo documento
1 Fortino Lugi STAMPA UNIONE OFFICE 2000 Vi sarà capitato sicuramente di ricevere lettere pubblicitarie indirizzate personalmente a voi; ovviamente quelle missive non sono state scritte a mano, ma utilizzando
Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti
Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta
Guida all uso di Java Diagrammi ER
Guida all uso di Java Diagrammi ER Ver. 1.1 Alessandro Ballini 16/5/2004 Questa guida ha lo scopo di mostrare gli aspetti fondamentali dell utilizzo dell applicazione Java Diagrammi ER. Inizieremo con
Uso di base delle funzioni in Microsoft Excel
Uso di base delle funzioni in Microsoft Excel Le funzioni Una funzione è un operatore che applicato a uno o più argomenti (valori, siano essi numeri con virgola, numeri interi, stringhe di caratteri) restituisce
Introduzione al Python
Andrea Passerini [email protected] Informatica Caratteristiche procedurale si specifica la procedura da eseguire sui dati strutturato concetto di visibililtà delle variabili orientato agli oggetti
Laboratorio di Informatica
Laboratorio di Informatica Introduzione a Python Dottore Paolo Parisen Toldin - [email protected] Argomenti trattati Che cosa è python Variabili Assegnazione Condizionale Iterazione in una lista di
lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000
Capittol lo 2 Visualizzazione 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Nel primo capitolo sono state analizzate le diverse componenti della finestra di Word 2000: barra del titolo, barra dei menu,
Gestione Risorse Umane Web
La gestione delle risorse umane Gestione Risorse Umane Web Generazione attestati di partecipazione ai corsi di formazione (Versione V03) Premessa... 2 Configurazione del sistema... 3 Estrattore dati...
Cominciamo dalla barra multifunzione, ossia la struttura a schede che ha sostituito la barra dei menu e la barra delle icone (Figura 1).
La barra multifunzione La barra multifunzione e il pulsante Microsoft Office Se avete lavorato per tanti anni con la suite da ufficio Office, questa nuova versione 2007 può disorientarvi davvero molto.
Università per Stranieri di Siena Livello A1
Unità 20 Come scegliere il gestore telefonico CHIAVI In questa unità imparerai: a capire testi che danno informazioni sulla scelta del gestore telefonico parole relative alla scelta del gestore telefonico
4.1.1.1 APRIRE UN PROGRAMMA DI FOGLIO ELETTRONICO
4.1 PER INIZIARE 4.1.1 PRIMI PASSI COL FOGLIO ELETTRONICO 4.1.1.1 APRIRE UN PROGRAMMA DI FOGLIO ELETTRONICO L icona del vostro programma Excel può trovarsi sul desktop come in figura. In questo caso basta
MANUALE EDICOLA 04.05
MANUALE EDICOLA 04.05 Questo è il video che si presenta avviando il programma di Gestione Edicola. Questo primo video è relativo alle operazioni di carico. CARICO Nello schermo di carico, in alto a sinistra
EXCEL FUNZIONI PRINCIPALI
EXCEL FUNZIONI PRINCIPALI Funzione SE() Sintassi: SE(VERIFICA, VALORE SE VERO, VALORE SE FALSO): verifica un valore e ritorna una risposta in base al risultato vero/falso Esempio: =SE(A2=15; "OK"; "NO")
Innanzitutto andiamo sul sito http://www.dropbox.com/ ed eseguiamo il download del programma cliccando su Download Dropbox.
Oggi parlerò di qualcosa che ha a che fare relativamente con la tecnica fotografica, ma che ci può dare una mano nella gestione dei nostri archivi digitali, soprattutto nel rapporto professionale con altre
APPUNTI SU PROBLEMI CON CALCOLO PERCENTUALE
APPUNTI SU PROBLEMI CON CALCOLO PERCENTUALE 1. Proporzionalità diretta e proporzionalità inversa Analizziamo le seguenti formule Peso Lordo = Peso Netto + Tara Ricavo = Utile + Costo Rata = Importo + Interesse
Dispense di Informatica per l ITG Valadier
La notazione binaria Dispense di Informatica per l ITG Valadier Le informazioni dentro il computer All interno di un calcolatore tutte le informazioni sono memorizzate sottoforma di lunghe sequenze di
risulta (x) = 1 se x < 0.
Questo file si pone come obiettivo quello di mostrarvi come lo studio di una funzione reale di una variabile reale, nella cui espressione compare un qualche valore assoluto, possa essere svolto senza necessariamente
Capitolo 2. Operazione di limite
Capitolo 2 Operazione di ite In questo capitolo vogliamo occuparci dell operazione di ite, strumento indispensabile per scoprire molte proprietà delle funzioni. D ora in avanti riguarderemo i domini A
Algoritmi e strutture dati. Codici di Huffman
Algoritmi e strutture dati Codici di Huffman Memorizzazione dei dati Quando un file viene memorizzato, esso va memorizzato in qualche formato binario Modo più semplice: memorizzare il codice ASCII per
[MANUALE VISUAL BASIC SCUOLA24ORE PROF.SSA PATRIZIA TARANTINO] 14 dicembre 2008
Se devo memorizzare più valori che sono in qualche modo parenti dal punto di vista logico, posso usare il concetto di vettore di variabili (array). Ad esempio, se devo memorizzare le temperature di tutti
Calcolare il massimo di una lista
Calcolare il massimo di una lista Ieri abbiamo imparato a calcolare il massimo di una lista predefinita: lista = [4,24,-89,81,3,0,-12,31] max = lista[0] # questo e' un commento: primo elemento di lista
Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli
CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per
IL MIO PRIMO SITO: NEWS
Pagina 1 IL MIO PRIMO SITO: NEWS Sommario IL MIO PRIMO SITO: NEWS...1 Introduzione...2 I Contenitori...2 Creo un Contenitore...3 I Tracciati...4 Creo le Notizie...6 Inserisco il Testo...6 Inserisco un
Dimensione di uno Spazio vettoriale
Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione
Plate Locator Riconoscimento Automatico di Targhe
Progetto per Laboratorio di Informatica 3 - Rimotti Daniele, Santinelli Gabriele Plate Locator Riconoscimento Automatico di Targhe Il programma plate_locator.m prende come input: l immagine della targa
Appunti sulla Macchina di Turing. Macchina di Turing
Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso
BRC CAR SERVICE CRM Manuale operativo
BRC CAR SERVICE CRM Manuale operativo CONTENUTO 1. LOGIN PAGE 1 2. PAGINA DI BENVENUTO 2 3. MESSAGGI 3 4. ELENCO ORDINI 4 5. INSERIMENTO/MODIFICA ORDINE 5 SCELTA DELL AUTOFFICINA 5 FASE 1 SCELTA DEI PRODOTTI
Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno
Rappresentazione di numeri Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno Un numero e un entità teorica,
Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012
Fondamenti di informatica Oggetti e Java ottobre 2012 1 JUnit JUnit è uno strumento per assistere il programmatore Java nel testing JUnit consente di scrivere test di oggetti e classi Java i test sono
Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};
ESERCIZI 2 LABORATORIO Problema 1 Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; Chiede all'utente un numero e, tramite ricerca
UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA
UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA Tutti gli anni, affrontando l argomento della divisibilità, trovavo utile far lavorare gli alunni sul Crivello di Eratostene. Presentavo ai ragazzi una
Funzioni funzione dominio codominio legge argomento variabile indipendente variabile dipendente
Funzioni In matematica, una funzione f da X in Y consiste in: 1. un insieme X detto dominio di f 2. un insieme Y detto codominio di f 3. una legge che ad ogni elemento x in X associa uno ed un solo elemento
NUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT.
NUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT. Con l utilizzo delle procedure di iscrizione on line la società organizzatrice ha a disposizione tutti
Uso dei modelli/template
Uso dei modelli/template Il modello (o template, in inglese) non è altro che un normale file di disegno, generalmente vuoto, cioè senza alcuna geometria disegnata al suo interno, salvato con l estensione.dwt.
LUdeS Informatica 2 EXCEL. Seconda parte AA 2013/2014
LUdeS Informatica 2 EXCEL Seconda parte AA 2013/2014 STAMPA Quando si esegue il comando FILE STAMPA, Excel manda alla stampante tutte le celle del foglio di lavoro corrente che hanno un contenuto. Il numero
Introduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale
Manuale servizio Webmail. Introduzione alle Webmail...2 Webmail classica (SquirrelMail)...3 Webmail nuova (RoundCube)...8
Manuale servizio Webmail Introduzione alle Webmail...2 Webmail classica (SquirrelMail)...3 Webmail nuova (RoundCube)...8 Introduzione alle Webmail Una Webmail è un sistema molto comodo per consultare la
Word è un elaboratore di testi in grado di combinare il testo con immagini, fogli di lavoro e
Word è un elaboratore di testi in grado di combinare il testo con immagini, fogli di lavoro e grafici, tutto nello stesso file di documento. Durante il lavoro testo e illustrazioni appaiono sullo schermo
Corrispondenze e funzioni
Corrispondenze e funzioni L attività fondamentale della mente umana consiste nello stabilire corrispondenze e relazioni tra oggetti; è anche per questo motivo che il concetto di corrispondenza è uno dei
Statistica e biometria. D. Bertacchi. Variabili aleatorie. V.a. discrete e continue. La densità di una v.a. discreta. Esempi.
Iniziamo con definizione (capiremo fra poco la sua utilità): DEFINIZIONE DI VARIABILE ALEATORIA Una variabile aleatoria (in breve v.a.) X è funzione che ha come dominio Ω e come codominio R. In formule:
Strutturazione logica dei dati: i file
Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer
Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda
Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda Premessa Con l analisi di sensitività il perito valutatore elabora un range di valori invece di un dato
1.0 GUIDA PER L UTENTE
1.0 GUIDA PER L UTENTE COMINCIA FACILE Una volta effettuato il login vi troverete nella pagina Amministrazione in cui potrete creare e modificare le vostre liste. Una lista è semplicemnte un contenitore
5. Fondamenti di navigazione e ricerca di informazioni sul Web
5. Fondamenti di navigazione e ricerca di informazioni sul Web EIPASS Junior SCUOLA PRIMARIA Pagina 43 di 47 In questo modulo sono trattati gli argomenti principali dell universo di Internet, con particolare
L interfaccia utente di Office 2010
L interfaccia utente di Office 2010 Personalizza la barra multifunzione Pagine: 3 di 4 Autore: Alessandra Salvaggio - Tratto da: Office 2010 la tua prima guida - Edizioni FAG Milano Ridurre la barra multifunzione
Office 2007 Lezione 08
Word: gli stili veloci e i temi Da questa lezione, iniziamo ad occuparci delle innovazioni che riguardano specificamente Word. Cominceremo parlando di stili e temi. Nella filosofia di questo nuovo Word,
Office 2007 Lezione 02. Le operazioni più
Le operazioni più comuni Le operazioni più comuni Personalizzare l interfaccia Creare un nuovo file Ieri ci siamo occupati di descrivere l interfaccia del nuovo Office, ma non abbiamo ancora spiegato come
Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...
Modulo A Programmiamo in Pascal Unità didattiche 1. Installiamo il Dev-Pascal 2. Il programma e le variabili 3. Input dei dati 4. Utilizziamo gli operatori matematici e commentiamo il codice COSA IMPAREREMO...
Biblioteca di Cervia NOZIONI BASE DI INFORMATICA
Biblioteca di Cervia NOZIONI BASE DI INFORMATICA NOZIONI DI INFORMATICA Il PC è composto solitamente di tre parti principali: - Il Case, ovvero il contenitore del cuore del computer, da qui si accende
PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)
PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0) (Da effettuare non prima del 01/01/2011) Le istruzioni si basano su un azienda che ha circa 1000 articoli, che utilizza l ultimo
Questa guida vi illustrerà i principali passaggi da eseguire per l'inserimento dei Bandi di gara.
Piccolo Manuale Manuale Pt 1ª Registrazione (Login) Questa guida vi illustrerà i principali passaggi da eseguire per l'inserimento dei Bandi di gara. Riceverete una email contenente: Link della vostra
5.2.1 RELAZIONI TRA TABELLE 1. 5.2.4.1 Creare una relazione uno-a-uno, uno-a-molti tra tabelle 9
5.2.1 RELAZIONI TRA TABELLE 1 5.2.4.1 Creare una relazione uno-a-uno, uno-a-molti tra tabelle 9 Il grado di un verso di un associazione indica quanti record della tabella di partenza si associano ad un
Calcolo del Valore Attuale Netto (VAN)
Calcolo del Valore Attuale Netto (VAN) Il calcolo del valore attuale netto (VAN) serve per determinare la redditività di un investimento. Si tratta di utilizzare un procedimento che può consentirci di
www.filoweb.it STAMPA UNIONE DI WORD
STAMPA UNIONE DI WORD Molte volte abbiamo bisogno di stampare più volte lo stesso documento cambiando solo alcuni dati. Potremmo farlo manualmente e perdere un sacco di tempo, oppure possiamo ricorrere
Database 1 biblioteca universitaria. Testo del quesito
Database 1 biblioteca universitaria Testo del quesito Una biblioteca universitaria acquista testi didattici su indicazione dei professori e cura il prestito dei testi agli studenti. La biblioteca vuole
RISOLUTORE AUTOMATICO PER SUDOKU
RISOLUTORE AUTOMATICO PER SUDOKU Progetto Prolog - Pierluigi Tresoldi 609618 INDICE 1.STORIA DEL SUDOKU 2.REGOLE DEL GIOCO 3.PROGRAMMAZIONE CON VINCOLI 4.COMANDI DEL PROGRAMMA 5.ESEMPI 1. STORIA DEL SUDOKU
LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1
LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1 I CODICI 1 IL CODICE BCD 1 Somma in BCD 2 Sottrazione BCD 5 IL CODICE ECCESSO 3 20 La trasmissione delle informazioni Quarta Parte I codici Il codice BCD
Le basi della Partita Doppia in 1.000 parole Facile e comprensibile. Ovviamente gratis.
Le basi della Partita Doppia in 1.000 parole Facile e comprensibile. Ovviamente gratis. Qual è la differenza tra Dare e Avere? E tra Stato Patrimoniale e Conto Economico? In 1.000 parole riuscirete a comprendere
Modulo 4: Ereditarietà, interfacce e clonazione
Modulo 4: Ereditarietà, interfacce e clonazione Argomenti Trattati: Classi, Superclassi e Sottoclassi Ereditarietà Ereditarietà ed Attributi Privati Override super Ereditarietà e Costruttori Polimorfismo
APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI
APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI Indice 1 Le frazioni algebriche 1.1 Il minimo comune multiplo e il Massimo Comun Divisore fra polinomi........ 1. Le frazioni algebriche....................................
Excel. A cura di Luigi Labonia. e-mail: [email protected]
Excel A cura di Luigi Labonia e-mail: [email protected] Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo
MOCA. Modulo Candidatura. http://www.federscacchi.it/moca. [email protected]. [Manuale versione 1.0 marzo 2013]
MOCA Modulo Candidatura http://www.federscacchi.it/moca [email protected] [Manuale versione 1.0 marzo 2013] 1/12 MOCA in breve MOCA è una funzionalità del sito web della FSI che permette di inserire
I sistemi di numerazione
I sistemi di numerazione 01-INFORMAZIONE E SUA RAPPRESENTAZIONE Sia dato un insieme finito di caratteri distinti, che chiameremo alfabeto. Utilizzando anche ripetutamente caratteri di un alfabeto, si possono
File, Modifica, Visualizza, Strumenti, Messaggio
Guida installare account in Outlook Express Introduzione Questa guida riguarda di sicuro uno dei programmi maggiormente usati oggi: il client di posta elettronica. Tutti, ormai, siamo abituati a ricevere
PULSANTI E PAGINE Sommario PULSANTI E PAGINE...1
Pagina 1 Sommario...1 Apertura...2 Visualizzazioni...2 Elenco...2 Testo sul pulsante e altre informazioni...3 Comandi...3 Informazioni...4 Flow chart...5 Comandi...6 Pulsanti Principali e Pulsanti Dipendenti...6
Login. Gestione contenuto. www.sitofaidate.it
www.sitofaidate.it Questa guida è stata scritta per utenti di basso/medio livello, guida pratica per chi vede per la prima volta l editor di testo jce i cui riferimenti delle icone sono visibili cliccando
La posta elettronica (mail)
Sindacato Pensionati Corsi di Informatica per Anziane e Anziani La posta elettronica (mail) V1.0, 09/11/2012 Bruno Boni Castagnetti, Nicoletta Giorda, Franco Marra Obiettivi della lezione Spiegare i concetti
Introduzione al MATLAB c Parte 2
Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione
Codifica: dal diagramma a blocchi al linguaggio C++
Codifica: dal diagramma a blocchi al linguaggio C++ E necessario chiarire inizialmente alcuni concetti. La compilazione Il dispositivo del computer addetto all esecuzione dei programmi è la CPU La CPU
Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione
Automatizzare i compiti ripetitivi I file batch Anno accademico 2000-01 1 Spesso capita di dover eseguire ripetutatmente una data sequenza di comandi Introdurli uno a uno da tastiera è un processo lento
STAMPA DI UNA PAGINA SEMPLICE
Pagina 11 copiati nel proprio sistema (disco fisso o floppy). Questa operazione è detta download o scaricamento. Il modo più semplice per effettuare un download di un file (a meno che non sia specificato
Da dove nasce l idea dei video
Da dove nasce l idea dei video Per anni abbiamo incontrato i potenziali clienti presso le loro sedi, come la tradizione commerciale vuole. L incontro nasce con una telefonata che il consulente fa a chi
ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi terza
ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi terza vers.3 in lavorazione Docente SAFFI FABIO Contenuti 01.Esercizi generici sul diagramma di flusso - flow chart... 2
11010010 = 1*2^7 + 1*2^6 + 0*2^5 + 1*2^4 + 0*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 210
Il sistema BINARIO e quello ESADECIMALE. Il sistema di numerazione binario è particolarmente legato ai calcolatori in quanto essi possono riconoscere solo segnali aventi due valori: uno alto e uno basso;
3. Installare Wamp Server
E107 WEB SYSTEM Corso on line di progettazione siti dinamici: livello base R E A L I Z Z A Z I O N E D I 3. Installare Wamp Server By e107 Italian Team Sito web:http://www.e107italia.org Contatto: [email protected]
ISTRUZIONI PER LA GESTIONE BUDGET
ISTRUZIONI PER LA GESTIONE BUDGET 1) OPERAZIONI PRELIMINARI PER LA GESTIONE BUDGET...1 2) INSERIMENTO E GESTIONE BUDGET PER LA PREVISIONE...4 3) STAMPA DIFFERENZE CAPITOLI/BUDGET.10 4) ANNULLAMENTO BUDGET
Esercizio data base "Biblioteca"
Rocco Sergi Esercizio data base "Biblioteca" Database 2: Biblioteca Testo dell esercizio Si vuole realizzare una base dati per la gestione di una biblioteca. La base dati conterrà tutte le informazioni
Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione
4 LEZIONE: Programmazione su Carta a Quadretti Tempo della lezione: 45-60 Minuti. Tempo di preparazione: 10 Minuti Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione SOMMARIO:
Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6
Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...
IL MIO PRIMO SITO NEWS USANDO GLI SCHEDARI
Pagina 1 UN SISTEMA DI NEWS Sommario UN SISTEMA DI NEWS...1 Introduzione...2 Scelgo l'area su cui operare...3 Un minimo di teoria...3 Creo le Pagine...4 Definizione dello Schedario Novità...6 Compilo la
Compilatore risorse display grafico LCD serie IEC-line
Compilatore risorse display grafico LCD serie IEC-line aggiornamento: 22-11-2012 IEC-line by OVERDIGIT overdigit.com 1. Il display grafico LCD I PLC della serie IPC-line possono disporre opzionalmente
