appunti3s:funzioni_in_python
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
appunti3s:funzioni_in_python [2018/04/25 07:55] – external edit 127.0.0.1 | appunti3s:funzioni_in_python [2020/06/08 22:19] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Le funzioni in Python ====== | ||
+ | >> indice: [[appunti3s: | ||
+ | |||
+ | * **Quiz**: Avete mai usato una funzione matematica? Per che cosa sono utili le funzioni matematiche? | ||
+ | * **Quiz**: In che modo si può rappresentare una funzione matematica per descriverla agli altri? | ||
+ | |||
+ | ===== Prerequisiti ===== | ||
+ | |||
+ | |||
+ | ===== Cosa faremo? ===== | ||
+ | |||
+ | ===== Introduzione ===== | ||
+ | |||
+ | Per capire cosa sia una funzione in un programma basta pensare ad una funzione matematica, dove c'è la variabile indipendente //x// e quella dipendente //y//. Quest' | ||
+ | |||
+ | In informatica, | ||
+ | |||
+ | Ad ogni funzione viene affidata l' | ||
+ | * **Quiz**: Per inserire dati dalla tastiera si è già usata una funzione, quale? | ||
+ | |||
+ | ===== Funzioni built-in ===== | ||
+ | ==== len() ==== | ||
+ | |||
+ | La funzione // | ||
+ | |||
+ | <file python 10.py> | ||
+ | parola = raw_input(" | ||
+ | numero = len(parola) # assegnazione che contenente una chiamata di funzione | ||
+ | print "I caratteri che compongono la parola che hai inserito sono", numero | ||
+ | </ | ||
+ | |||
+ | * elenco delle funzioni built-in http:// | ||
+ | |||
+ | Quando nel programma si incontra il nome di una funzione, è come se si trova un comando. Scrivere il nome di una funzione serve a chiedere di eseguire quella funzione, perciò la presenza del nome della funzione viene definita **chiamata** della funzione. | ||
+ | In quel momento, l' | ||
+ | Nell' | ||
+ | In termini tecnici si dice che len() // | ||
+ | |||
+ | * A chi viene restituito questo risultato? (Chi ne aveva bisogno?) | ||
+ | ==== round() ==== | ||
+ | |||
+ | Nel prossimo esempio si vuole calcolare la media di due voti e arrotondare il valore se c' | ||
+ | In questo esempio il risultato prodotto dalla funzione //round()// non viene memorizzato ma solo mostrato con //print//. | ||
+ | |||
+ | <file python 11.py> | ||
+ | numero1 = input(" | ||
+ | numero2 = input(" | ||
+ | media=(numero1+numero2)/ | ||
+ | print "la media vale", media | ||
+ | print " | ||
+ | </ | ||
+ | |||
+ | ==== type() ==== | ||
+ | |||
+ | Un altro esempio dimostra l'uso di //type()//, usata per conoscere il tipo di dato (numerico o testuale) contenuto in una variabile. Per creare una variabile che contiene testo (alfanumerico) useremo raw_input(). Non importa il contenuto. Può essere testuale, numerico o misto... | ||
+ | |||
+ | <file python 12.py> | ||
+ | numero1 = raw_input(" | ||
+ | numero2 = input(" | ||
+ | print "Le variabili usate si chiamano: numero1 numero2" | ||
+ | print "I VALORI contenuti nelle variabili sono:", | ||
+ | print "I TIPI DI DATO delle variabili sono:", | ||
+ | </ | ||
+ | |||
+ | Dal risultato si capisce che usando // | ||
+ | |||
+ | ==== int() ==== | ||
+ | |||
+ | Nel prossimo esempio risolveremo il problema che avevamo precedentemente incontrato nella lettura dei numeri dalla tastiera, usando una funzione che **trasforma** le variabili di tipo ' | ||
+ | La funzione si chiama //int()// e restituisce sempre una variabile intera | ||
+ | |||
+ | <file python 13.py> | ||
+ | numero1 = raw_input(" | ||
+ | numero2 = int(numero1) | ||
+ | print "Le variabili usate si chiamano: numero1 numero2" | ||
+ | print "I VALORI contenuti nelle variabili sono:", | ||
+ | print "I TIPI DI DATO delle variabili sono:", | ||
+ | </ | ||
+ | |||
+ | Dal risultato si capisce che numero1 e numero2 appaiono simili nel contenuto, ma diverse nel tipo di dato: numero1 non è una variabile adatta a fare i calcoli mentre numero2 lo è. | ||
+ | |||
+ | ==== Programmatori e sviluppatori ==== | ||
+ | |||
+ | I professionisti della programmazione potrebbero essere divisi in due grandi categorie: | ||
+ | * **gli sviluppatori di nuove funzioni**, che creano funzioni o librerie di funzioni; | ||
+ | * **i programmatori di applicazioni**, | ||
+ | |||
+ | * **Quiz:** Tu a quale categoria pensi di appartenere? | ||
+ | |||
+ | >> Ovviamente questa suddivisione non va presa alla lettera perché esiste anche chi fa entrambe le cose, ma probabilmente, | ||
+ | |||
+ | ===== Funzione di funzione ===== | ||
+ | La funzione len() potrebbe essere chiamata anche in un altro modo. | ||
+ | |||
+ | <file python 10bis.py> | ||
+ | numero = len(raw_input(" | ||
+ | print "I caratteri che compongono la parola che hai inserito sono", numero | ||
+ | </ | ||
+ | |||
+ | Confrontare questa versione con la precedente versione (file 10.py). | ||
+ | |||
+ | Nella seconda versione le parentesi sono all' | ||
+ | |||
+ | In quest' | ||
+ | |||
+ | * **Esercizio**: | ||
+ | ===== Altre funzioni ===== | ||
+ | |||
+ | Non tutte le funzioni sono sempre disponibili. Se la funzione non è bulti-in vuol dire che si trova in un **modulo** esterno che, prima di poter essere usato, deve essere " | ||
+ | |||
+ | ==== math.sqrt() ==== | ||
+ | |||
+ | Attenzione a: | ||
+ | - aggiungere //import//, | ||
+ | - aggiungere il nome del modulo davanti al nome della funzione. | ||
+ | |||
+ | <file python 14.py> | ||
+ | import math | ||
+ | numero = int(raw_input(" | ||
+ | print math.sqrt(numero) | ||
+ | </ | ||
+ | * **Esercizio** tradurre con le proprie parole il significato dell' | ||
+ | * **Esercizio**: | ||
+ | * **Esercizio**: | ||
+ | * < | ||
+ | >>> | ||
+ | |||
+ | ==== math.pow() ==== | ||
+ | |||
+ | Le funzioni possono avere anche più di un argomento tra parentesi. Ad esempio, la funzione che calcola l' | ||
+ | |||
+ | <file python 15.py> | ||
+ | import math | ||
+ | base = int(raw_input(" | ||
+ | esponente = int(raw_input(" | ||
+ | print "il risultato di", base, " | ||
+ | </ | ||
+ | |||
+ | * **Esercizio**: | ||
+ | ===== Vantaggi ===== | ||
+ | Perché il programmatore usa le funzioni? | ||
+ | |||
+ | Sarebbe più facile scrivere da soli un programma che calcola l' | ||
+ | ==== Application Programming Interface ==== | ||
+ | Come può un programmatore di applicazioni imparare ad usare funzioni che non conosce? | ||
+ | |||
+ | Ogni volta che si desidera imparare ad usare un nuovo gruppo di funzioni si deve cercare la cosiddetta API (Application Programming Interface) che descrive le funzioni utilizzabili da un programmatore. In particolare, | ||
+ | |||
+ | * **Quiz:** Per usare un nuovo strumento, come un motorino, devo sapere come funziona oppure come l' | ||
+ | |||
+ | |||
+ | ===== Convenzioni ===== | ||
+ | |||
+ | D'ora in avanti gli identificatori delle funzioni e delle variabili costituiti da più parole si riconosceranno dall' | ||
+ | |||
+ | una_variabile=3 | ||
+ | |||
+ | una_funzione() | ||
+ | |||
+ | ===== Esercizi ===== | ||
+ | |||
+ | riepilogare i nomi delle funzioni usate in questo capitolo in una tabella e spiegare a cosa servono | ||
+ | |||
+ | esempi con | ||
+ | |||
+ | math.pow() | ||
+ | |||
+ | math.floor() | ||
+ | |||