Python. Valerio Perticone



Похожие документы
Laboratorio di Informatica

Fondamenti di Programmazione

Calcolare il massimo di una lista

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Introduzione allo Scilab Parte 1: numeri, variabili ed operatori elementari

Introduzione al MATLAB c Parte 2

4 3 4 = 4 x x x 10 0 aaa

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

La selezione binaria

Introduzione al Python

Funzioni in C. Violetta Lonati

Richiesta pagina PHP (es: index.php)

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Introduzione alla programmazione in C

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

1) Dati in ingresso 2 numeri, l algoritmo calcola e stampa a video la loro somma

Codifica: dal diagramma a blocchi al linguaggio C++

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Esercitazione Informatica I AA Nicola Paoletti

Usare Python in Linux

L utility Unix awk [Aho-Weinberger-Kernighan]

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

Arduino: Programmazione

Strutture di controllo del flusso di esecuzione

Verifica della correttezza formale del numero di partita IVA

PYTHON CHEAT SHEET. Rapido documentazione di consultazione per istruzioni, funzioni e tipi in Python. #stampa le variabili x e y

FORMULE: Operatori matematici

Alessandro Pellegrini

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

SISTEMI DI NUMERAZIONE DECIMALE E BINARIO

Matlab: Strutture di Controllo. Informatica B

SCHEDA DI RECUPERO SUI NUMERI RELATIVI

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 18 31/03/2014

APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL

Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione

1. Le macro in Access 2000/2003

Struttura di un programma Java

Esercizi di JavaScript

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

ISTRUZIONI VELOCI DI PYTHON Versione (manuale realizzato con Google Documenti)

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a settembre 2011

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software:

ci sono più problemi che programmi esiste un problema che non si può risolvere con un programma

Alcune regole di base per scrivere un programma in linguaggio C

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Matematica in laboratorio

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C

Raggruppamenti Conti Movimenti

Aritmetica dei Calcolatori 2

I file di dati. Unità didattica D1 1

INFORMATICA 1 L. Mezzalira

Algebra Booleana ed Espressioni Booleane

regola(1,[e,f],b) regola(2,[m,f],e) regola(3,[m],f) regola(4,[b,f],g) regola(5,[b,g],c) regola(6,[g,q],a)

Appunti di Sistemi Elettronici

Le stringhe. Le stringhe

jt - joetex - percorsi didattici

Registratori di Cassa

10 - Programmare con gli Array

Connessione ad internet

= 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

3. La sintassi di Java

LUdeS Informatica 2 EXCEL. Seconda parte AA 2013/2014

E possibile modificare la lingua dei testi dell interfaccia utente, se in inglese o in italiano, dal menu [Tools

Convertitori numerici in Excel

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE

Sviluppata da: Lo Russo - Porcelli Pag. 1 di 6 6FRSR utilizzare il DBMS Postgresql per imparare il linguaggio SQL.

Esercizi di programmazione in C

Programmare in Java. Olga Scotti

Descrizione di un algoritmo

Introduzione al Foglio Elettronico

Programmare script e Add-Ons per Blender 3D 2.5

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete

Introduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali

Le query. Lezione 6 a cura di Maria Novella Mosciatti

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

+ / operatori di confronto (espressioni logiche/predicati) / = > < Pseudo codice. Pseudo codice

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)

GESTIONE INFORMATICA DEI DATI AZIENDALI

Le variabili. Olga Scotti

Note sull uso di R per l Algebra Lineare

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

Uso di base delle funzioni in Microsoft Excel

Uso delle basi di dati. Informazione e dato. Cos è un database. Tabelle. Esempi di database

Java: Compilatore e Interprete

ALGEBRA DELLE PROPOSIZIONI

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

NOZIONI BASE SHELL E SCRIPT LINUX

Транскрипт:

Python Valerio Perticone

Python Python è un linguaggio di programmazione molto semplice e conciso Ha il vantaggio di essere semplice da imparare e di poter essere eseguito su diversi sistemi operativi (portabilità) È utilizzato da grandi aziende (Google, Dropbox, NASA) e presente in numerosi software

Documentazione python.it - sito ufficiale della comunità italiana contiene tutorial, guide, riferimenti a siti e libri, python.org - in inglese Numerosi libri (online e cartacei): in italiano: http://www.python.it/doc/libri/ in inglese: https://wiki.python.org/moin/ IntroductoryBooks

Playground Oltre alla possibilità di scaricare un interprete Python sulla propria macchina, esistono numerosi siti che danno la possibilità di esercitarsi ed apprendere il linguaggio: python.org (PythonAnywhere) pythontutor.com (Visualize) trinket.io

Python Per imparare Python spesso si utilizza una shell interattiva La shell si presenta con alcuni caratteri seguiti da un cursore lampeggiante (prompt): >>> È possibile digitare istruzioni del linguaggio Python e osservare il risultato dopo premuto Invio

Esempi >>> 2 + 2 4 >>> 2 + 3 * 6 20 >>> (2 + 3) * 6 30 >>> (5-1) * ((7 + 1) / (3-1))?

Tipi >>> (5-1) * ((7 + 1) / (3-1)) 16.0 Perché? Python è tipizzato >>> type(16) int >>> type(16.0) float

Tipi Tre tipi comuni: int (numeri interi): 42, 0, -2, float (numeri decimali): -1.25, 0.75, 16.0, str (stringhe): 'casa', 'pippo', '16',

Assegnamento >>> spam = 42 >>> x = 3 >>> y = 2 + 2 >>> z = x + y >>> print(z) 7

Assegnamento >>> spam = 'Hello' >>> spam = 'Goodbye' >>> print(spam)

Stringhe Sulle stringhe si posso effettuare operazioni analoghe a quelle numeriche: >>> 'Hello' + 'World' HelloWorld >>> 'Hello' * 3 HelloHelloHello È possibile richiedere all utente di inserire una stringa usando la funzione input: >>> testo = input()

Attenzione agli errori! >>> 'Hello' + 'Hello' + ^ SyntaxError: invalid syntax Che significa? Abbiamo commesso un errore nel scrivere e il computer non comprende l istruzione!

Alcuni errori comuni A questo punto, eseguendo alcune istruzioni sullo stile degli esempi potremmo ottenere i seguenti errori SyntaxError: invalid syntax l istruzione è incompleta (manca un operando o abbiamo dimenticato una parentesi) SyntaxError: EOL while scanning string literal abbiamo dimenticato di chiudere una stringa tra due virgolette

Altri errori comuni NameError: name 'Hello' is not defined abbiamo dimenticato entrambe le virgolette attorno alla stringa 'Hello' (e non esiste una variabile con quel nome) TypeError: Can't convert 'int' object to str implicitly abbiamo provato a concatenare una stringa ad un numero intero un errore simile (TypeError) si ottiene se proviamo a moltiplicare stringhe tra loro o usando un float

Programmi Sebbene la shell possa essere utile per imparare, i programmi in genere vengono salvati in file di testo Nei file di testo si scrivono più istruzioni una dopo l altra senza prompt. Esempio: print('come ti chiami?') # richiedi il nome Nome = input() print('piacere di conoscerti, ' + Nome) (il # indica la presenza di un commento)

Valori booleani Due particolari valori non possono essere utilizzati come nome di variabile: True e False Corrispondono ai valori booleani vero e falso Sono scritti in maiuscolo Vengono restituiti quando si effettuano operazioni logiche (confronto, eguaglianza, connettivi)

Operatori == uguaglianza!= non uguaglianza > strettamente maggiore >= maggiore o uguale <= minore o uguale < strettamente minore

Alcuni connettivi logici True and True True True and False False True or False True False or False False not True False not False True

Controllo del flusso In Python i gruppi di istruzioni sono raggruppati in blocchi, che si distinguono grazie all indentazione L indentazione è composta da un certo numero di spazi (o tabulazioni) In Python l indentazione è obbligatoria poiché permette di comprendere il flusso del programma Eventuali errori di indentazione sono indicati con IndentationError

Esempio name = 'Mary' password = 'swordfish' if name == 'Mary': print('hello Mary') if password == 'swordfish': print('access granted.') else: print('wrong password.') In questo codice è possibile notare che, dopo le prime due assegnazioni, verrà eseguito il blocco all interno dell if. Una volta incontrato il secondo if, verrà eseguito solamente il blocco con l istruzione print('access granted'.)

Alternativa Nell esempio precedente abbiamo visto l uso dell if La sua struttura è: if (parola chiave) condizione da verificare : (due punti) blocco indentato di istruzioni l eventuale else va indentato nella stessa colonna dell'if

Ciclo La sintassi del costrutto iterazione è simile a quella del costrutto alternativa La struttura del ciclo è: while (parola chiave) condizione da verificare : (due punti) blocco indentato di istruzioni Per uscire da un ciclo si utilizza la parola chiave break

Esempio password = 'swordfish' while True: print('what is the password?') guess = input() if guess == password: print('access granted.') break else: print('wrong password.')

Funzioni Abbiamo già visto le funzioni print e input che gestiscono le stringhe Ma ce ne sono molte altre già incluse in Python Esempi: >>> abs(-12) >>> pow(5, 2) >>> round(16.75)

Possibili errori Utilizzando le funzioni è possibile riscontrare alcuni dei seguenti errori TypeError: bad operand type for abs(): 'str' abbiamo utilizzato una stringa come operando della funzione abs TypeError: abs() takes exactly one argument (2 given) abbiamo passato troppi argomenti (due) ad una funzione che ne richiede solamente uno TypeError: pow expected at least 2 arguments, got 1 abbiamo passato un solo argomento ad una funzione che ne richiedeva due

Dichiarazione La struttura della dichiarazione di una funzione è: def (parola chiave) nome della funzione parametri d ingresso tra parentesi : (due punti) blocco di codice (corpo della funzione)

Esempio def somma3(a, b, c): return a + b + c x = somma3(2, 3, 8) # effettua l'addizione y = somma3(2.5, 3, 1.5) z = somma3('a', 'b', 'c') # effettua la concatenazione Questo comportamento è noto come duck typing «Se sembra un'anatra, nuota come un'anatra e starnazza come un'anatra, allora probabilmente è un anatra.» (ragionamento induttivo) Se è possibile effettuare l istruzione la eseguo, altrimenti restituisco un errore

Import Non tutte le funzioni sono immediatamente disponibili, alcune necessitano di essere importate esplicitamente da librerie esterne Ad esempio, se vogliamo generare numeri casuali abbiamo bisogno del modulo random L importazione del modulo si effettua utilizzando la parola chiave import >>> import random

Moduli Possiamo utilizzare le funzioni presenti in un modulo utilizzando la notazione punto: modulo.funzione Ad esempio, se vogliamo generare numeri interi casuali nell intervallo [a, b] utilizziamo la funzione randint(a, b) contenuta nel modulo random La sua invocazione è la seguente: import random x = random.randint(1, 10) # genera un numero intero da 1 a 10

Errori con i moduli Se dimentichiamo di importare un modulo, otterremo un NameError Se tentiamo di utilizzare una funzione non presente in quel modulo (in questo caso "funzione") l errore sarà simile al seguente: AttributeError: 'module' object has no attribute 'funzione'

Math Nel modulo math sono contenute alcune utili funzioni matematiche tra cui exp, log, sqrt Sono presenti anche funzioni trigonometriche: sin, cos, tan Il modulo fornisce inoltre due costanti matematiche: math.pi math.e

Liste Le liste sono un esempio di variabile non scalare in Python >>> [1, 2, 3] >>> ['cat', 'bat', 'rat', 'elephant'] Le liste possono contenere elementi appartenenti a tipi diversi: >>> ['hello', 3.1415, True, 42]

Liste Le liste si comportano come i vettori >>> spam = ['cat', 'bat', 'rat', 'elephant'] >>> spam[0] 'cat' >>> spam[2] 'rat'

Indici Gli indici delle liste devono essere numeri interi (altrimenti si ottiene un TypeError) Possono essere anche interi negativi: poiché 0 indica primo elemento e tutti gli altri sono a seguire in ordine crescente, un numero negativo corrisponde a scorrere la lista nel senso opposto l ultimo elemento della lista ha quindi indice -1, il penultimo -2 e così via >>> spam[-1] 'elephant' Se eccediamo con l indice la lunghezza della lista otteniamo l errore IndexError: list index out of range

Manipolazione Possiamo utilizzare gli indici per estrarre o mutare i valori della lista >>> l = [1, 2, 4] >>> l[0] = 6 >>> l[1] = l[2] >>> l[2] += 1

Slices È possibile estrarre slices (letteramente fette ) di una lista usando :. >>> spam[1:3] # restituisce gli elementi di indice compreso tra 1 (incluso) e 3 (escluso) >>> spam[:2] # restituisce gli elementi dall indice 0 (omesso) all indice 2 (escluso) >>> spam[:] # restituisce tutti gli elementi della lista >>> spam[:-1:2] # restituisce gli elementi dal primo al penultimo di posto pari >>> spam[::-1] # restituisce una lista con gli elementi in ordine inverso