Introduzione A Python
Introduzione A Python
1
Python
È un linguaggio di programmazione:
ad alto livello
semplice da imparare e usare
potente e produttivo
ottimo anche come primo linguaggio (molto simile
allo pseudocodice)
Estensibile
Tipizzazione forte e dinamica
Inoltre è
open source (www.python.org)
multipiattaforma
facilmente integrabile con C/C++ e Java
2
Python
Python è nato alla fine degli anni ‘80.
Ideato dall’informatico olandese Guido
van Rossum, definito «Benevolo Dittatore
a Vita" (Benevolent Dictator for Life), nel
senso che continua a seguire il processo di
sviluppo di Python, prendendo decisioni
ovunque necessarie.
Laureato all’Università di Amsterdam e
grande appassionato del Monthy Python's
Flying Circus (Il Circo Volante dei Monthy
Python), l'innovativa e fortunata serie
comica trasmessa dalla BBC tra il 1969 e
il 1974, che fu il trampolino di lancio del
gruppo comico britannico Monthy Python.
5
Compilare e interpretare
Molti linguaggi richiedono di compilare (tradurre) il programma in
una forma che possa essere compresa dalla macchina.
Python è interpretato.
Il programma viene interpretato ed immediatamente eseguito
istruzione per istruzione. Non viene generato né il formato
intermedio (oggetto) né l’eseguibile.
6
Il linguaggio Pyhton
È molto diffuso:
RedHat
anaconda (installazione), tool di configurazione
grafici, log viewer
NASA
www.google.com
Industrial Light and Magic
quelli che fanno gli effetti speciali per Star Wars...
E molti altri …
È incluso anche in Paint Shop Pro
Ha centinaia di moduli (librerie) per ogni
occorrenza
7
Anaconda
Anaconda è una piattaforma Python particolarmente diffusa
per l’analisi dei dati e per il calcolo scientifico
8
Installazione di Anaconda
Scaricare il pacchetto “Python 3.x version” dal sito
di Anaconda
https://www.anaconda.com/download/;
Eseguire il programma di installazione scaricato;
Impostare l’installazione di Anaconda solamente
per l’utente corrente (Just Me) e lasciare il percorso
di installazione invariato;
Nelle opzioni avanzate scegliere di registrare
Anaconda come l’installazione di Python di sistema
e deselezionare l’opzione relativa all’aggiunta di
Anaconda al PATH;
9
Installazione di Anaconda
10
Verificare l’installazione di
Anaconda
Eseguire “Anaconda Navigator”
11
Se Anaconda è stato installato
correttamente allora Jupyter dovrebbe
essere già presente tra i tool pre-
installati.
Aprire Anaconda Navigator. Nella prima
schermata sono presenti una serie di tile
associate ai tool comunemente utilizzati
con Anaconda. Jupyter dovrebbe essere
uno di questi. Premete Launch per
verificarne il funzionamento.
Se non appare “Launch” significa che
Modalità interattiva
$$ python
>> a=3+5
message=“Hello world”
a=5
x=2.34
>>type(message)
<type ‘str’>
Variabili, Tipi, Espressioni
Anche i numeri complessi vengono supportati
Per contrassegnare i numeri immaginari si usa il suffisso ‘j’ o ‘J’.
I numeri complessi con una componente reale non nulla
vengono indicati come ‘(real+imagj)’, o possono essere creati
con la funzione ‘complex(real, imag)’.
>>> 1j * 1J
(-1+0j)
>>> 1j * complex(0,1)
(-1+0j)
>>> 3+1j*3
(3+3j)
>>> (3+1j)*3
(9+3j)
>>> (1+2j)/(1+1j)
(1.5+0.5j)
Variabili, Tipi, Espressioni
In modo interattivo, l’ultima espressione stampata è assegnata alla
variabile _. Questo facilita i calcoli in successione quando si sta usando
Python come calcolatrice da tavolo, ad esempio:
Questa variabile deve essere trattata dall’utente come di sola lettura. Non
le si deve assegnare esplicitamente un valore, si creerebbe una variabile
locale indipendente con lo stesso nome che maschererebbe la variabile
built-in ed il suo comportamento particolare.
Espressioni
Operatori logici: and or not
Operatori di confronto: >, <, >=, <=
Operatori matematici: + - / * // ** %
Assegnazione di valore: =
Costanti Booleane: True False
Operatori matematici
18
Esempi di espressioni
Esempio:
1 + 4 * 3
42
Operatori aritmetici:
+ - * / somma, sottrazione/negazione, moltiplicazione, divisione
% modulo, resto della divisione intera
** elevazione ad esponente
(1 + 3) * 4 è 16
19
Funzioni matematiche
In Python sono definite urili funzioni matematiche.
Nome comando Descrizione Costanti Descrizione
abs(valore) valore assoluto e 2.7182818...
ceil(valore) approssima all’intero superiore pi 3.1415926...
cos(valore) coseno, in radianti
floor(valore) approssima all’intero inferiore
log(valore) logaritmo naturale (base e)
log10(valore) logaritmo base 10
max(valore1, valore2) il più grande di due valori
min(valore1, valore2) il più piccolo di due valori
round(valore) l’intero piu vicino
sin(valore) seno, in radianti
sqrt(valore) radice quadrata
Assegnezione di valore.
sintassi:
nome = valore
Esempi: x = 5
gpa = 3.14
x 5 gpa 3.14
Sintassi:
print("Messaggio“)
print(Espressione)
Stampa un messaggio di testo o il valore di un’espressione sulla
console, e sposta il cursore sulla linea successiva.
Esempi:
print("Hello, world!“)
age = 45
print(“You have”, 65 - age, “years until retirement”)
Output:
Hello, world!
You have 20 years until retirement 22
input
input : Legge un numero dall’input dell’utente.
Esempio:
age = input("How old are you? ")
print ( "Your age is", age)
print "You have", 65 - age, "years until retirement"
Output:
Output:
1 squared is 1
2 squared is 4
3 squared is 9
4 squared is 16
5 squared is 25
24
Indentazione e Blocchi
Python utilizza l’indentazione (e non le parentesi graffe) per
distinguere l’inizio e la fine di un blocco (es. Il codice da
eseguire all’interno di un ciclo).
Per questo motivo, indentare bene il codice è fondamentale!
DIVERSO!!
range
The funzione range specifica un range di interi:
range(start, stop) - gli interi tra start (incluso) e stop (escluso)
Può anche accettare un terzo valore che indica la variazione tra due valori
consecutvi.
range(start, stop, step) - gli interi tra start (incluso) e stop
(escluso) con passo step
Esempio:
for x in range(5, 0, -1):
print (x)
print "Blastoff!"
Output:
5
4
3
2
1
Blastoff!
26
Somma cumulativa
sum = 0
for i in range(1, 11):
sum = sum + (i * i)
print ("sum of first 10 squares is", sum)
Output:
sum of first 10 squares is 385
27
if
if statement: Esegue un gruppo di istruzioni solo se una
certa condizione è verificata, altrimenti le istruzioni sono
saltate.
Sintassi:
if condition:
statements
Exsempio:
gpa = 3.4
if gpa > 2.0:
print ("Your application is accepted.“)
28
if/else
if/else statement:
Sintassi:
if condition:
statements
else:
statements
Esempio:
gpa = 1.4
if gpa > 2.0:
print ("Welcome to Parthenope University!“)
else:
print ("Your application is denied.“)
Syntax:
while condition:
statements
Example:
number = 1
while number < 200:
print number,
number = number * 2
Output:
1 2 4 8 16 32 64 128
30
Operazioni logiche
Molte espressioni logiche usano operatori relazionali:
Operator Meaning Example Result
== equals 1 + 1 == 2 True
!= does not equal 3.2 != 2.5 True
< less than 10 < 5 False
> greater than 10 > 5 True
<= less than or equal to 126 <= 100 False
>= greater than or equal to 5.0 >= 5.0 True
31
Liste
Il tipo lista può essere scritto come un elenco di valori separati
da virgole e compresi tra parentesi quadre. Gli elementi della
lista non devono essere necessariamente tutti dello stesso tipo.
>>> a = [’spam’, ’eggs’, 100, 1234]
>>> a
[’spam’, ’eggs’, 100, 1234]
>>> a=1.5+0.5j
>>> a.real
1.5
>>> a.imag
0.5
Liste di Elementi
Come con le stringhe:
[] per accedere ad un elemento della lista
in verifica la presenza di un elemento in una lista
len restituisce la lunghezza della lista
+ concatena due liste
* ripete una lista un dato numero di volte
Dichiarazione di Funzioni
Keyword def per identificare l’inizio di una funzione
>> print(factorial(4))
24
Parametri e Funzioni
Python consente di definire funzioni con parametri
opzionali; se la funzione è chiamata senza argomento,
l’argomento prende il valore predefinito (indicato nella
signature della funzione).
def power(a,b=2):
return a**b
>> power(4,3)
64
>> power(4)
16
Librerie
Librerie di maggiore interesse :
41
Array
Array
import array as arr
a = arr.array('d', [1, 3.5, "Hello"]) // Error
42
Array
43
Array
44
Array: Esempi
>>> a = np.array([[1, 2, 3], [4, 5, 6]], float)
>>> a
array([[ 1., 2., 3.], [ 4., 5., 6.]])
>>> a[:,2]
array([ 3., 6.])
>>> a[-1:,-2:]
array([[ 5., 6.]])
46
Moltiplicazione tra arrays
Negli array multidimensionali, la moltiplicazione rimane
ancora elemento per elemento
47
Funzioni standard su array
Numpy definisce tutta una serie di funzioni
standard
abs(), sign(), sqrt(), log(), log10(), exp(),
>>> np.sqrt(a)
array([ 1., 2., 3.])
48
Python rispetto al Matlab
Vantaggi di usare il MATLAB
• é un software ben assestato
• Simulink non ha reali alternative
• funzioni matematiche molto veloci per matrici e vettori, un
buon debugger e una sintassi che facilita l’analisi numerica:
• parti di un vettore : A(:,5:10) = 33;
• creazione di sequenze: B = [1:3:30];
• concatenazione di vettori: Brepeat = [B, B, B]; C = [B;
B*2; B.*B]
• GUI (Graphical User Interface) tools come SPTool (per
visualizzazione e filtraggio di segnali) or FDATool (per la
progettazione di filtri digitali)
• Progettazione a livello professionale di sitemi di controllo
49
Python rispetto al Matlab
Svantaggi di usare il MATLAB
50
Python rispetto al Matlab
Svantaggi di usare il MATLAB
51
,
Esercizio
52
Esercizio
import numpy as np
import matplotlib.pyplot as plt
plt.figure(1)
t = np.linspace(-0.02, 0.05, 100)
plt.plot(t, 325*np.sin(2*np.pi*50*t))
plt.xlabel('t')
plt.ylabel('x(t)')
plt.title('Plot of CT signal x(t)=325 sin(2 pi 50 t)')
plt.xlim([-0.02, 0.05])
53