vuoi
o PayPal
tutte le volte che vuoi
FUNZIONI
Una funzione è un insieme di istruzioni (con un nome) che svolge un compito (task) particolare (è codice che qualcuno ha già scritto per noi!).
L'argomento di una funzione è tutto quello che si trova tra le parentesi tonde.
La maggior parte delle funzioni restituisce un valore.
FUNZIONI COME SCATOLE NERE:
- Una funzione è una sequenza di istruzioni a cui viene dato un nome
- Si passa alla funzione ciò che le serve per eseguire il suo compito
- Si ottiene il risultato
GLI ARGOMENTI DELLE FUNZIONI:
- I valori in "input" che la funzione riceve sono detti ARGOMENTI
- Non sono necessariamente input forniti dall'utente umano
- Sono i valori per i quali si vuole che la funzione calcoli il proprio risultato
- Le funzioni possono ricevere diversi argomenti
- È anche possibile avere funzioni senza argomenti
LE FUNZIONI RESTITUISCONO VALORI:
L'output è il valore restituito
- La funzione restituisce un solo valore: - Se volessi più valori, potrei aggirare la limitazione restituendo una lista o una tupla
- Alcune funzioni non hanno bisogno di restituire alcun valore → REALIZZARE E COLLAUDARE LE FUNZIONI: (vedi Settimana 6 >> file: 3_creare funzione volCube)
- Cosa le serve per il suo compito? (input) Con che cosa risponderà? (output)
- Per definire una funzione:
- Scegliere un nome per la funzione #es. cubeVolume
- Dichiarare una variabile per ogni argomento #es. sideLenght --> lista di variabili parametro
- Mettere assieme tutte queste informazioni con la parola riservata def per formare la prima riga della definizione della funzione (intestazione) #es. def cubeVolume(sideLenght): --> intestazione
- Implementare la funzione (slide 45) - l'istruzione def apre un nuovo blocco all'interno del quale scriveremo le istruzioni che compongono il corpo della funzione
- All'interno del corpo si possono utilizzare le variabili parametro,
come se fossero normali variabili- Con la parola return dichiaro l'output #es. return volume- Istruzione return mancante: la funzione restituisce 'None'- Dentro def di una funzione:- global variabile -> per usare dentro il def di una funzione una variabile inizializzata fuori da defESEMPI DI FUNZIONE:- abs(...) --> valore assoluto- round(x) --> arrotondamento (lo arrotonda a numero intero)- round(x,n) --> arrotondamento (lo arrotonda al enne-simo numero decimale)- max(x1,...,xn) --> valore maggiore tra quelli presenti come argomenti- min(x1,...,xn) --> valore minimo tra quelli presenti come argomenti- str(..) --> trasformo ciò che c'è all'interno della parentesi in stringa (vedi Sett. 2 >> 2.2_variabili.py)- float(...) --> trasformare una variabile in float- int(...) --> trasformare una variabile in un intero- sqrt(x) --> radice quadrata di x (bisogna aggiungere all'inizio del programma: from math import
from -nome modulo- import -nome funzione-
(vedi Settimana 2 >> file: 3.1_aritmetica)
→ Per importare tutto:
- from math import *
- import math
(però poi prima della funzione bisogna mettere math.
)
#esempio: y=math.sin(x)
(vedi Settimana 2 >> file3.2_aritmetica→MODULO math: --> from math import ... <--(per tutte queste funzioni va inserito!!)- sqrt(x) : radice quadrata- trunc(x) : tronca il valore di x in virgola mobile, restituendo il numero intero- cos(x) : coseno di x, in radianti- sin(x) : seno di x, in radianti- tan(x) : tangente di x, in radianti- exp(x) : e^x- degreees(x): converte x da radianti a gradi (cioè x*180/pigreco)- radians(x) : converte x da gradi a radianti (cioè x*pigreco/180)- log(x) : logaritmo naturale di x (in base e)- log(x,b) : logaritmo di x in base b- pi : pi greco (variabile di math)→ Scrivendo il nome del modulo e punto Python mostra tutte le variabili e funzioni del moduloDIFFERENZA FUNZIONI E METODI:- Python è un linguaggio orientato agli oggetti (object-oriented) e tutti i valori sono OGGETTI- Ogni oggetto può avere METODI, ovvero funzioni che possono essere chiamate su quegli oggetti specifici, usando la sintassi object.method()#esempio: tutte lestringhe hanno il metodo upper()
che restituisce una nuova stringa con i caratteri maiuscoli
name = "John Smith" (vedi Settimana 2 >> file 4_stringhe)
uppercaseName = name.upper()
INPUT e OUTPUT: → Puoi leggere una Stringa dalla console con la funzione input()
#esempio: name = input("Inserisci il tuo nome") (vedi Settimana 3 >> file 1.1_input - output)
→ Se serve un input numerico (invece che stringa), si deve convertire la stringa
#esempio: eta = int(input("Inserisci la tua età"))
LOGICA BOOLEANA
→ Variabili Booleane: possono essere solo VERE o FALSE
- failed = True o failed = False (con la prima lettera maiuscola)
- Una variabile booleana è spesso utilizzata come indicatore (flag) proprio perché può essere solo vera o falsa
- La condizione di un'istruzione if è un valore Booleano
→ Ci sono tre diversi OPERATORI Booleani: and, or, not
- and: entrambe le condizioni in un and devono essere vere
affinché il risultato sia vero (slide 76 unità P3)- or: una delle due condizioni deve essere vera affinché il risultato sia vero (slide 80 unità P3)- not: si utilizza quando c'è bisogno di invertire una variabile booleana o il risultato di un confronto(A = True -> not A = False) (slide 82 unità P3)
CICLI:
- I cicli sono utilizzati per ripetere diverse volte lo stesso blocco di istruzioni
- ... con valori diversi delle variabili
- ... fino a che una "condizione di uscita" diventa VERACasi d'uso:
- calcolare un interesse composto
- Simulazioni, programmi controllati da eventi
- Analisi di dati simili→ CICLO WHILE: (Settimana 4 >> 1.1_ciclo while.py) while i < 100:
- Devo mettere i due punti al fondo!!! …i += 1
- Tutto il blocco del ciclo va indentato
- Finché ‘….’ Esegui…→ CICLO FOR: (for ... in ... :) Ricorda i due punti alla fine (Settimana 4 >> 3.1_ciclo for)- Il
ciclo while controllato da un contatore- si può partire anche da un numero diverso da 0: range(x, N): stampa i numeri interi da x a N-1- (Settimana 4 >> file: 3.2_range)
VALORI SENTINELLA:- Quando si legge una sequenza di input, è spesso necessario un metodo per indicare la fine della sequenza- Quando non si sa quanti elementi ci sono in una lista, si può utilizzare un carattere o un valore speciale per identificare l'ultimo della lista:- Questo valore si chiama "sentinella"- Per input di numeri positivi si può ad esempio usare 0 o -1- Una sentinella identifica la fine dei dati ma NON FA PARTE DEI DATI STESSI- (Settimana 4 >> 2_sentinella)
LISTE:(contenitori di elementi)→ Una lista è una struttura dati versatile e dinamica, che contiene un numero variabile di elementi, di qualunque tipo, a cui si può avere accesso tramite la loro posizione (indice)→ CREARE UNA LISTA:- Assegnare ad una variabile una nuova lista
con l'operatore di indicizzazione [ ]-#Esempio:moreValues = [] --> crea una lista vuota
values = [32, 64, 67, 3, 29, 80, 113] --> crea una lista con valori iniziali- Per accedere ad un elemento si usano le parentesi quadre, riportando l'indice dell'elementovalues[i] = 0
element = values[i]- L'indice delle liste parte da 0 #es. valori[0, 1, 2, 3, ...]
Primo valore: posizione 0, i = 0→ Le liste vengono stampate tra parentesi quadre []→ OPERAZIONI CON LE LISTE:- lista.append(x)
--> aggiunge l'elemento x alla lista- lista.insert(p, x)
--> inserisce l'elemento x in posizione p (le posizioni partono da 0!)- lista.index(k)
--> trova l'indice (la posizione) dell'elemento k nella lista --> se l'elemento non è presente nella lista da errore! Meglio controllare che k sia nella lista- lista.pop(i)
--> Rimuove l'elemento in posizione i dalla lista e gli altri elementi scalano di posizione- lista.remove(x)
--> xelemento --> Rimuove l'elemento x dalla lista
len(lista) --> conta gli elementi della lista
x in lista --> restituisce vero se l'elemento x è presente nella lista
lista.sort() --> ordina gli elementi in ordine crescente o alfabetico (dando precedenza alle lettere maiuscole)
lista.sort(reverse=True) --> per fare il contrario, ovvero in ordine decrescente (Settimana 8 >> file 1_operazioni liste)
CONCATENAZIONE DI LISTE: '+' (Vedi settimana 8 > file 1_operazioni liste)
L'ordine degli elementi rimane invariato
Nella lista in cui concateno altre liste ci sono tutti gli elementi della lista
REPLICAZIONE: '*' (Vedi settimana 8 > file 1_operazioni liste)
La replicazione si può usare per creare una lista con un numero