Data Science Lab
Introduzione
Il computer è una macchina in grado di compiere azioni elementari su oggetti, producendone di nuovi. Queste azioni vengono eseguite in base a delle istruzioni, date in un qualche linguaggio di programmazione.
Un algoritmo è una sequenza finita di azioni, da compiere su un certo insieme di oggetti, che risolve in un tempo finito una classe di problemi.
Ogni linguaggio di programmazione è composto da:
- Sintassi: simboli, parole e “regole grammaticali”.
- Semantica: significato di simboli e parole.
Un programma è un testo scritto secondo la sintassi e la semantica di un linguaggio.
Oggetti e classi
Tutti i tipi sono classi.
Le classi sono costrutti che rappresentano un tipo di dato astratto, è definita da delle caratteristiche e dal comportamento degli oggetti che ne fanno parte.
Esistono alcuni tipi built-in (int, str, bool, float…), e godono di una sintassi agevolata.
Per creare una classe altrimenti, bisogna definirne attributi ed eventuali metodi possibili.
Tutte le variabili sono oggetti.
Un oggetto non è quindi che un’istanza di una classe, ha quindi accesso ad attributi e metodi di ogni classe.
La classe quindi da sola non fa niente, è un “contenitore” di oggetti, ogni oggetto ha a disposizione i metodi e gli attributi della sua classe e tutti gli attributi e metodi ereditati dalle classi “superiori”, questo permette a diverse classi di avere la stessa interfaccia, oltre che rendere molto più efficiente l’esecuzione.
Python
Python è un linguaggio di programmazione di alto livello creato nel ’91 da un programmatore olandese, è caratterizzato da alcuni aspetti, tra i quali, l’essere un linguaggio:
- Semplice: sintassi pulita e snella.
- Di alto livello: vengono astratti i dettagli di funzionamento di un computer.
- Con tipizzazione dinamica.
- Pseudocompilato: interpretato.
- Open source.
- In continua e forte espansione.
- Disponibile di un archivio di moduli introduttivi vasto e stabile (documentazione).
Un programma Python è un file di testo con l’estensione ‘.py’, la struttura è semplice: prima direttiva sui moduli esterni da importare (eventualmente), e poi sequenza di istruzioni.
Un codice Python viene eseguito da un interprete, che esegue il codice riga per riga, nel momento in cui non vi fossero errori di sintassi.
Python è un linguaggio orientato agli oggetti.
Variabili
Una variabile ha due elementi fondamentali: un nome ed un valore, si definisce con la seguente sintassi:
<nome>=<valore>
Oppure si può dichiarare, dandole semplicemente un nome e nessun valore:
<nome>=None
Per poi assegnarle il valore in seguito:
<nome>=<valore>
Nome
Il nome della variabile deve iniziare con una lettera o un underscore, può contenere lettere, numeri o underscores, è sensibile alle minuscole e maiuscole.
Il nome della variabile è il riferimento di memoria della variabile (ossia come il computer chiama lo spazio di memoria dove è salvato il valore della variabile).
Scope e tempo di vita
Per tempo di vita si intende il tempo in cui la variabile esiste.
Ogni variabile ha inoltre uno “scope”, ossia un range di visibilità della variabile all’interno del programma.
Tipi di datotipo di dato
Per si intende l’insieme di valori che una variabile può assumere.
I valori possono avere vari tipi, ad esempio possono essere int (numeri interi), float (numeri decimali), str (stringhe), bool (valori logici), o appartenere ad una classe definita dall’utente, le operazioni che si possono fare tra variabili dipendono dal loro tipo, le principali sono quelle aritmetiche, quelle logiche e quelle di confronto.
I tipi di dato possono essere di vario tipo:
- Semplici o atomici.
- Complessi o derivati.
- Predefiniti o definiti.
Tipizzazione
Per tipizzazione si intende il meccanismo di analisi semantica che classifica una porzione del codice in base ad indicazioni esplicite o valori che essa contiene o calcola.
La tipizzazione ha effetto sul processo di assegnazione del tipo alle variabili, e quindi su come è possibile utilizzarle, in particolare:
- Evita operazioni sbagliate o illecite.
- Definisce la dimensione in memoria.
- Definisce lo scope o il tempo di vita.
Più formalmente si può dire che gli obiettivi della tipizzazione sono:
- Safety: permette di scoprire codice privo di senso/illecito.
- Ottimizzazione: alcune operazioni possono essere eseguite in maniera più efficiente, e per farlo serve che il compilatore conosca il tipo di dato.
- Astrazione: la tipizzazione è utile anche al programmatore in quanto
-
Appunti Data Science for Marketing
-
Appunti riassuntivi secondo parziale Optimization and data science for management
-
Appunti Optimization and data science for management (primo parziale, parte 2)
-
Appunti Optimization and data science for management (primo parziale, parte 1)