Python. Valerio Perticone

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Python. Valerio Perticone"

Transcript

1 Python Valerio Perticone

2 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

3

4 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: in inglese: https://wiki.python.org/moin/ IntroductoryBooks

5 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

6 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

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

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

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

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

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

12 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()

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

14 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

15 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

16 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)

17 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)

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

19 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

20 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

21 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'.)

22 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

23 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

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

25 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)

26 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

27 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)

28 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

29 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

30 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

31 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'

32 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

33 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', , True, 42]

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

35 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

36 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

37 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

Laboratorio di Informatica

Laboratorio di Informatica Laboratorio di Informatica Introduzione a Python Dottore Paolo Parisen Toldin - parisent@cs.unibo.it Argomenti trattati Che cosa è python Variabili Assegnazione Condizionale Iterazione in una lista di

Dettagli

Fondamenti di Programmazione

Fondamenti di Programmazione Fondamenti di Programmazione Capitolo 2 Variabili, Espressioni e Comandi Prof. Mauro Gaspari: gaspari@cs.unibo.it Valori e Tipi Un valore (= value) è una delle entità fondamentali che i programmi sono

Dettagli

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

ISTRUZIONI VELOCI DI PYTHON Versione 1.0 - (manuale realizzato con Google Documenti) ISTRUZIONI VELOCI DI PYTHON Versione 1.0 - (manuale realizzato con Google Documenti) Realizzato da NiktorTheNat e diffuso in rete da: 8thPHLOOR Iniziato il giorno 8 febbraio 2010 - terminato il giorno

Dettagli

Calcolare il massimo di una lista

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

Dettagli

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

PYTHON CHEAT SHEET. Rapido documentazione di consultazione per istruzioni, funzioni e tipi in Python. #stampa le variabili x e y PYTHON CHEAT SHEET Rapido documentazione di consultazione per istruzioni, funzioni e tipi in Python OUTPUT print Ciao print x,y #stampa una stringa #stampa le variabili x e y print %s... %s %(x,y) #stampa

Dettagli

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

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti Nascita di Java L uscita di Java, verso la metà degli anni novanta, fu accolta con molto entusiasmo dalla comunità dei programmatori e dei provider di servizi internet perché permetteva agli utenti del

Dettagli

Introduzione al Python

Introduzione al Python Andrea Passerini passerini@disi.unitn.it Informatica Caratteristiche procedurale si specifica la procedura da eseguire sui dati strutturato concetto di visibililtà delle variabili orientato agli oggetti

Dettagli

Rudimenti di Python. senza rodimenti di Python

Rudimenti di Python. senza rodimenti di Python Rudimenti di Python senza rodimenti di Python Contatti _ Enrico Marino _ Federico Spini _ mail: _ (marino spini)@dia.uniroma3.it! _ sito: _ dia.uniroma3.it/~(marino spini)/python! Eventi _ Possibili date

Dettagli

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Algebra Booleana ed Espressioni Booleane

Algebra Booleana ed Espressioni Booleane Algebra Booleana ed Espressioni Booleane Che cosa è un Algebra? Dato un insieme E di elementi (qualsiasi, non necessariamente numerico) ed una o più operazioni definite sugli elementi appartenenti a tale

Dettagli

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

Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione basata sul campo d utilizzo. I principali package sono:

Dettagli

L utility Unix awk [Aho-Weinberger-Kernighan]

L utility Unix awk [Aho-Weinberger-Kernighan] L utility Unix awk [Aho-Weinberger-Kernighan] L utility awk serve per processare file di testo secondo un programma specificato dall utente. L utility awk legge riga per riga i file ed esegue una o più

Dettagli

Richiesta pagina PHP (es: index.php)

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

Dettagli

La selezione binaria

La selezione binaria Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione L esecuzione di tutte le istruzioni in sequenza può non è sufficiente per

Dettagli

Strutture di controllo del flusso di esecuzione

Strutture di controllo del flusso di esecuzione Università degli Studi di Milano Laurea Specialistica in Genomica Funzionale e Bioinformatica Corso di Linguaggi di Programmazione per la Bioinformatica Strutture di controllo del flusso di esecuzione

Dettagli

Connessione ad internet

Connessione ad internet Introduzione al C++ Connessione ad internet Istruzioni per la connessione internet: - una volta connessi, aprire un browser (firefox) - in Modifica/preferenze/avanzate/rete/impostazioni - attivare la modalità

Dettagli

JAVASCRIPT. Tale file è associato alla pagina web mediante il tag