laboratorio di python
|
|
|
- Giuseppa Baldi
- 7 anni fa
- Visualizzazioni
Transcript
1 laboratorio di python definizioni di booleani, selezione ed uso degli input 13 Marzo /32
2 Correzione esercizi per oggi
3 esercizio 1 per casa Scrivere una funzione che non ha nessun parametro, non restituisce nulla, ma stampa a video il valore (approssimato) di e (radice quadrata del numero di Nepero). 2/32
4 esercizio 1 per casa Scrivere una funzione che non ha nessun parametro, non restituisce nulla, ma stampa a video il valore (approssimato) di e (radice quadrata del numero di Nepero). 1 import math 2 def radicedie ( ) : 3 Funzione che stampa l a radice quadrata del numero di Nepero 4 p r i n t ( math. s q r t ( math. e ) ) 2/32
5 esercizio 2 per casa Sia C il capitale iniziale di un investimento. Sia r il tasso di interesse (espresso come decimale, es 0.03), sia n il numero di volte che gli interessi vengono calcolati ogni anno e sia t il numero di anni. Il capitale finale M si calcola allora come: ( M = C 1 + r ) nt n Scrivere una funzione che ha come parametri C, r, n, t e restituisce il valore di M, ma non stampa nulla. Nello stesso file scrivere poi un esempio che, usando la funzione, stampa: Capitale finale per investimento di , calcolo mensile, tasso 8%, per 2 anni: /32
6 esercizio 2 per casa 1 def c a l c o l a C a p i t a l e F i n a l e ( C, r, n, t ) : 2 Funzione che c a l c o l a i l c a p i t a l e f i n a l e di un investimento. 3 C = c a p i t a l e i n i z i a l e, 4 r = tasso di i n t e r e s s e decimale 5 n = numero di c a l c o l i d e l l ' i n t e r e s s e 6 t = numero di anni 7 8 M = C * ( 1 + ( r /n ) ) ** (n * t ) 9 return M Mf = c a l c o l a C a p i t a l e F i n a l e (10000, , 1 2, 2 ) 12 p r i n t ( C a p i t a l e f i n a l e per investimento di , c a l c o l o mensile, tasso 8%, per 2 anni :, Mf ) 4/32
7 Booleani e Selezione if else elif
8 if valutazione di una condizione 1 i f ( condizione ) : 2 istruzioni interne all if istruzioni interne all if 5 istruzioni fuori dalla selezione La condizione (espressione booleana, B = {True, False}) viene valutata. Solo se l espressione booleana vale True allora si eseguono le istruzioni all interno del costrutto di selezione if (notare l indentazione). Se la condizione vale False, le istruzioni interne all if non sono eseguite, si passa alle istruzioni fuori dalla selezione. 5/32
9 esempio di funzione con condizione 1 def sconto ( age ) : 2 i f ( age >= 60) : 3 return Sconto pensionati Una condizione viene espressa con un operatore booleano, che può essere un operatore relazionale e/o un operatore logico. 6/32
10 operatori relazionali Indicano uguaglianza, disuguaglianza o relazioni d ordine: x==y (x uguale a y) x!=y (x diverso da y) x>y x<y x>=y (x y) x<=y (x y) La valutazione di tali espressioni restituisce un booleano. x==2 è una valida espressione di confronto 3==x è una valida espressione di confronto 4=x NON è una valida espressione di confronto e NON restituisce un booleano! Perchè? 7/32
11 operatori logici (a and b) vale True se e solo se sia a che b valgono True (a or b) vale True se e solo se almeno uno tra a e b vale True (not a) vale True se a vale False, e viceversa. N.B. Ogni valore diverso da 0 viene considerato True e lo 0 è considerato False. 8/32
12 if... else... 1 i f ( condizione ) : 2 istruzioni interne all if istruzioni interne all if 5 else : 6 istruzioni interne all else istruzioni interne all else 9 istruzioni fuori dalla selezione La condizione viene valutata. Se l espressione booleana vale True allora si eseguono solo le istruzioni interne all if Altrimenti (cioè se la condizione vale False), si eseguono solo le istruzioni interne all else. In ogni caso si passa poi alle istruzioni fuori dalla selezione 9/32
13 esempio 1 def sconto ( age ) : 2 i f ( age >= 60) : 3 return Sconto pensionati 4 else : 5 return B i g l i e t t o i n t e r o 10/32
14 elif... 1 i f ( condizione ) : 2 istruzioni interne all if 3 e l i f ( condizione ) : 4 istruzioni interne ad un elif e l i f ( condizione ) : 7 istruzioni interne ad un elif else : 10 istruzioni interne all else Si usano quando ci sono più di due casi Se la condizione dell if vale True allora si eseguono solo le istruzioni interne all if Altrimenti (cioè se la condizione dell if vale False), si valuta la condizione del primo elif. Se tale condizione vale True allora si eseguono solo le istruzioni interne a tale elif Se invece è falsa, si passa al successivo elif, se presente, e così via Se tutte le condizioni valutate nell ordine sono false, ed è presente un else, si eseguono solo le istruzioni interne all else. 11/32
15 esercizio Modificare la funzione sconto di modo che restituisca: Gratis se l età è minore di 6 Sconto bambini se l età è minore o uguale a 12 Biglietto intero se è compresa tra 12 e 60, estremi esclusi Sconto pensionati se l età è maggiore o uguale a 60 Gratis se l età è maggiore di 70 Ricordarsi di testare i casi limite! 12/32
16 test dei casi limiti >>> sconto(0) 'Gratis' >>> sconto(5) 'Gratis' >>> sconto(6) 'Sconto bambini' >>> sconto(12) 'Sconto bambini' >>> sconto(13) 'Biglietto intero' >>> sconto(59) 'Biglietto intero' >>> sconto(60) 'Sconto pensionati' >>> sconto(70) 'Sconto pensionati' >>> sconto(71) 'Gratis' >>> sconto(int(math.inf)) 'Gratis' 13/32
17 una delle tante possibili soluzioni... 1 def sconto ( age ) : 2 i f ( ( age < 6) or ( age > 70) ) : 3 return G r a t i s 4 e l i f ( age <= 1 2 ) : #so gia ' che e ' >=6 5 return Sconto bambini 6 e l i f ( age >= 60) : 7 return Sconto pensionati 8 else : 9 return B i g l i e t t o i n t e r o 14/32
18 il valore none Qual è il valore di una funzione che non restituisce valori? 1 def f ( ) : 2 x = p r i n t ( f ( ) ) None è il valore delle espressioni che non restituiscono valori. Il suo tipo è NoneType Un nuovo tipo: NoneType Non è possibile effettuare operazioni tra variabili NoneType. È possibile confrontare variabili NoneType: M == None vero (True) se M è None. M!= None vero (True) se M è un valore diverso da None. 15/32
19 esercizio Scrivere una funzione che prende come parametri i coefficienti a e b di un equazione di primo grado (ax + b = 0) e restituisce il valore di x che la rende un identità (cioè la risolve per x). Nel caso in cui sia indeterminata oppure impossibile, la funzione stampa un opportuno messaggio di errore e poi restituisce None. 16/32
20 soluzione 1 import math 2 def equazione_primo_grado ( a, b ) : 3 i f ( a ==0) and ( b==0) : # condizione soluzione indeterminata 4 p r i n t ( Equazione indetermin. : a e b n u l l i ) 5 return None 6 e l i f ( a ==0) : # condizione soluzione impossibile 7 p r i n t ( Equazione impossibile : a nullo ) 8 return None 9 else : # a l t r i m e n t i c a l c o l o l a soluzione 10 return b/a 17/32
21 Input
22 input da tastiera Sintassi: 1 <var > = input ( s t r i n g a d e s c r i t t i v a ) 18/32
23 input da tastiera Sintassi: 1 <var > = input ( s t r i n g a d e s c r i t t i v a ) Esempio: 1 nome = input ( come t i chiami? ) 18/32
24 input da tastiera Sintassi: 1 <var > = input ( s t r i n g a d e s c r i t t i v a ) Esempio: 1 nome = input ( come t i chiami? ) All utente viene visualizzato il messaggio: come ti chiami? Il programma attende che l utente risponda e prema Invio La risposta viene interpretata come una stringa di testo, e diventa il valore assegnato alla variable nome 18/32
25 input da tastiera Sintassi: 1 <var > = input ( s t r i n g a d e s c r i t t i v a ) Esempio: 1 nome = input ( come t i chiami? ) All utente viene visualizzato il messaggio: come ti chiami? Il programma attende che l utente risponda e prema Invio La risposta viene interpretata come una stringa di testo, e diventa il valore assegnato alla variable nome 1 nome = input ( come t i chiami? ) 2 p r i n t ( Ciao, nome,! ) 18/32
26 input da tastiera 1 r i s p o s t a = input ( Quanti anni hai? ) 2 i f ( r i s p o s t a < 1 8 ) : 3 p r i n t ( Non puoi ancora votare! ) 4 else : 5 p r i n t ( Vota con g i u d i z i o ) Questo codice è corretto? 19/32
27 input da tastiera 1 r i s p o s t a = input ( Quanti anni hai? ) 2 i f ( r i s p o s t a < 1 8 ) : 3 p r i n t ( Non puoi ancora votare! ) 4 else : 5 p r i n t ( Vota con g i u d i z i o ) Questo codice è corretto?... if (risposta < 18): TypeError: unorderable types: str() < int() Cosa significano le ultime due righe dell errore? 19/32
28 input da tastiera di interi Abbiamo detto che il risultato di input è memorizzato come stringa. A noi però serve come intero. Dobbiamo convertirlo esplicitamente con la funzione int() 1 r i s p o s t a = i n t ( input ( Quanti anni hai? ) ) 2 i f ( r i s p o s t a < 1 8 ) : 3 p r i n t ( Non puoi ancora votare! ) 4 else : 5 p r i n t ( Vota con g i u d i z i o ) Lo stesso vale per altri tipi, es float, complex... 20/32
29 input e output vs parametri della funzione Fare attenzione a non confondere il comando input con la definizione di una funzione che prenda dei parametri di ingresso Fare attenzione alla differenza tra return e print. 21/32
30 esempio 1 import primogrado # i l nome del f i l e in cui avevamo s c r i t t o l a funzione 2 3 p r i n t ( Programma che r i s o l v e l e equazioni ax+b=0 ) 4 p r i n t ( ) 5 a = f l o a t ( input ( s c r i v i i l valore di a : ) ) 6 b = f l o a t ( input ( s c r i v i i l valore di b : ) ) 7 p r i n t ( primogrado. equazione_primo_grado ( a, b ) ) 22/32
31 esercizio Scrivere un programma che chiede il nome e l età di una persona, poi stampa un messaggio in cui la saluta cordialmente e le dice di che tipologia di biglietto può usufruire (usando la funzione sconto) 23/32
32 soluzione 1 import b i g l i e t t o 2 nome = input ( Come s i chiama? ) 3 eta = i n t ( input ( Quanti anni ha? ) ) 4 p r i n t ( Salve, nome) 5 p r i n t ( La sua t i p o l o g i a di b i g l i e t t o e ' :, b i g l i e t t o. sconto ( eta ) ) 24/32
33 esercizi Scrivere una funzione che preso come parametro un intero restituisca True se questo è pari e False altrimenti. Non stampare nulla. Scrivere un programma che, importando il file precedente e usandone la funzione, chieda all utente di inserire un numero, e comunichi (stampando) all utente se il numero è pari o dispari. 25/32
34 soluzioni 1 def i s P a r i ( n ) : 2 Funzione che dice se un numero e ' p a r i 3 i f n % 2 == 0 : 4 return True 5 else : 6 return False 1 import p a r i 2 3 numero = i n t ( input ( I n s e r i s c i un numero i n t e r o : ) ) 4 i f p a r i. i s P a r i ( numero ) : 5 p r i n t ( I l numero e ' p a r i ) 6 else : 7 p r i n t ( I l numero e ' d i s p a r i ) 26/32
35 esercizio Scrivere una funzione retta_passante_per che presi quattro parametri x0, y0, x1, y1 stampa l equazione della retta passante per (x 0, y 0 ) e (x 1, y 1 ), se esiste, oppure stampa un opportuno messaggio di errore. La funzione non restituisce nulla. N.B. È possibile costruire un output elegante, analogo all esempio seguente: >>> retta_passante_per(1,3,2,4) La retta passante per (1,3) e (2,4) ha equazione y = 1.0x /32
36 soluzione 1 import math 2 def retta_passante_per ( x0, y0, x1, y1 ) : 3 i f ( x0 == x1 ) and ( y0 == y1 ) : 4 p r i n t ( I punti sono sovrapposti ) 5 else : 6 m = ( y0 y1 ) /( x0 x1 ) 7 q = y0 m * x0 8 p r i n t ( La r e t t a passante per (, x0,,, y0, ) e (, x1,,, y1, ) ha equazione y =,m, x +, q, sep= ) Notare l uso di sep=, che setta come stringa vuota il separatore tra i diversi parametri della print (altrimenti sarebbe uno spazio, di default) 28/32
37 Esercizi per casa
38 esercizi per casa Scrivere una funzione che prende tre valori float a, b, c come parametri e che restituisca la/le soluzione/ i dell equazione ax 2 + bx + c = 0, oppure stampi gli opportuni messaggi nei casi in cui l equazione sia impossibile o indeterminata e restituisca None in tali casi (fare attenzione a considerarli tutti!). 29/32
39 esercizi per casa Scrivere una funzione che, presi tre valori come parametri, li stampi in ordine decrescente. Nello stesso file, scrivere un test per la funzione che chieda i 3 valori come input e li legga come float. 30/32
40 esercizi per casa La tabella seguente riporta in euro le tariffe per il noleggio di uno scooter. Scooter 24 ore 2 giorni 3 giorni 4 giorni Ogni giorno extra Euro 45,00 80,00 120,00 160,00 40,00 Scrivere una funzione che prenda come parametro il numero di giorni di noleggio e ne calcoli il costo totale. La funzione restituisce sempre un float (se giorno < 1, restituisce 0.0). Nello stesso file, scrivere un test per la funzione che chieda in input il numero di giorni e stampi il costo totale di noleggio. 31/32
41 esercizi per casa Dato l anno, calcolare giorno e mese della Pasqua. La funzione prende come parametro x (l anno) Valore.....da dividere per risultati utili Quoziente intero Resto 1 x 100 b c 2 5b + c 19 - a 3 3(b + 25) 4 r s 4 8(b + 11) 25 t a + r t 30 - h 6 a + 11h 319 g (5 s) + c 4 j k 8 2j k h + g 7 - m 9 h g + m n (mese) q 10 q + 5 n 32 - p (giorno) e restituisce p e n, che rappresentano giorno e mese della Pasqua nell anno x. 32/32
Laboratorio di Python
Istruzione di condizione, Input da tastiera, Università di Bologna 6 e 8 marzo 2013 Sommario 1 Tipi di errore e Debugging 2 3 4 Outline Tipi di errore e Debugging 1 Tipi di errore e Debugging 2 3 4 Esercizio
Laboratorio di Python
, Input da tastiera, Iterazione incondizionata 7 marzo 2014 Sommario 1 2 3 Outline 1 2 3 Definizione di funzione import modulo Si importa il modulo specificato def nome_f(par 1,, par n ) : Si definiscono
Laboratorio di Python
, Istruzione di condizione 3 marzo 2015 Sommario 1 Outline 1 Scrivere uno script 1 Aprire IDLE di Python. 2 Dal menù del programma aprire un nuovo file. 3 Scrivere la funzione. 4 Salvare ed eseguire il
Laboratorio di Python
Iterazione determinata, 12 marzo 2015 Sommario 1 2 3 Sintassi ed Esempi 4 Input da tastiera Sintassi = raw_input('stringa descrittiva') #versione 2.* = input('stringa descrittiva') #versione
Programmazione in Python. Moreno Marzolla
Programmazione in Python Moreno Marzolla http://www.moreno.marzolla.name/ Copyright 2011, Moreno Marzolla (http://www.moreno.marzolla.name/teaching/labinf2011/) This work is licensed under the Creative
Istruzione if/else. Espressioni booleane
Istruzione if/else Espressioni booleane Espressioni booleane Possono assumere solo due valori: VERO (TRUE, per il C qualunque valore diverso da 0) FALSO (FALSE, il valore 0) Programmazione 2015/16 Introduzione
laboratorio di python
laboratorio di python iterazione in python 22 Marzo 2019 1/31 Correzione esercizi per oggi esercizio 1 per casa Scrivere una funzione che restituisce True se una stringa passata come parametro è palindroma
Logica booleana, Costrutto IF
Logica booleana, Costrutto IF Informatica@SEFA 207/208 - Lezione 4 Massimo Lauria http://massimolauria.net/courses/infosefa207/ Mercoledì, 4 Ottobre 207 La logica booleana 2
2 Operatori matematici e costrutto if
Questa dispensa propone esercizi sulla scrittura di algoritmi, in linguaggio C, utili alla comprensione delle operazioni tra numeri e del costrutto condizionale if. Si introducono anche le due funzioni
Laboratorio di Python
Laboratorio di Python Variabili e Funzioni Lab02 1 Marzo 2017 Outline Variabili modificabili Teoria Esempi ed esercizi Funzioni Teoria Esempi ed esercizi Esercizi per casa Outline Variabili modificabili
Fasi di creazione di un programma
Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo Sviluppo di programmi Per la costruzione di un programma
Sviluppo di programmi
Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla
Laboratorio di Python (con Linux)
Indeterminata,,,... Università di Bologna 14, 16 marzo 2012 Sommario 1 2 3 4 5 Modularità Quando si deve fare un programma complicato è meglio suddividerlo in più parti. Per ridurre la complessità (più
Costrutto if. Come utilizzare il costrutto condizionale if
Costrutto if Come utilizzare il costrutto condizionale if Costrutto if (1/2) Il costrutto if permette di effettuare azioni diverse a seconda del valore di una certa condizione booleana. if (condizione)
Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro
Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]
Matematica con Python
Matematica con Python e-mail: [email protected] Versione provvisoria. Dicembre 2016. 1 Lezione n. 3 Numeri primi fino a 1000. Indice 1 Funzioni 2 1.1 Trasformazione di un intervallo di tempo da
Programmazione Funzionale
1/9 Programmazione Funzionale Esercizio sulle variabili locali Davide Mottin - Themis Palpanas March 12, 2014 OCaml Funzioni preparatorie Sommario 2/9 Funzioni preparatorie Costruire una funzione val even
PROGRAMMAZIONE: La selezione
PROGRAMMAZIONE: La selezione Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l altra, riga per
Laboratorio di Python
Laboratorio di Python Matrici con Liste Lab09 5 Aprile 2017 Outline Correzione esercizi per oggi Matrici Teoria Esercizi Esercizi per casa Esercizio 1 per casa Scrivere una funzione che verifica se una
Laboratorio di Informatica
Laboratorio di Informatica Seconda lezione a Python Dottore Paolo Parisen Toldin - [email protected] Dottoressa Sara Zuppiroli - [email protected] L'importanza di capire Perché non dobbiamo dichiarare
Elementi di Base. Introduzione a Python.
Elementi di Base Introduzione a Python http://www.dia.uniroma3.it/~roselli/ [email protected] Credits Materiale a cura del Prof. Franco Milicchio Panoramica Elementi di base della sintassi (struttura,
Programmazione web lato client con JavaScript. Marco Camurri 1
Programmazione web lato client con JavaScript Marco Camurri 1 JavaScript E' un LINGUAGGIO DI PROGRAMMAZIONE che consente di inserire codice in una pagina web Sintassi simile a Java (e al C), ma NON E'
Java SE 7. Strutture di programmazione (2)
Java SE 7 Strutture di programmazione (2) [email protected] [email protected] Casting (1) E' l'operazione che realizza la conversione di tipo tra oggetti e tra tipi primitivi. E' un'operazione
Tutorato di Fondamenti di Informatica TUTOR: DAVIDE GHIANI, GIULIA ORRU
Tutorato di Fondamenti di Informatica PROFESSORE: GIAN LUCA MARCIALIS TUTOR: DAVIDE GHIANI, GIULIA ORRU Organizzazione Informazioni di contatto: [email protected] Davide Ghiani Giulia Orrù
Istruzioni Condizionali in C
Concetti chiave Istruzioni Condizionali in C Tipi di Istruzioni Condizionali Espressioni Blocchi d istruzioni Istruzioni Condizionali: if-else Istruzioni Condizionali: switch-case Istruzione break Istruzioni
5 - Istruzioni condizionali
5 - Istruzioni condizionali Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it
PROGRAMMAZIONE: Le strutture di controllo
PROGRAMMAZIONE: Le strutture di controllo Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l
Fondamenti di Informatica T-1
Fondamenti di Informatica T-1 Introduzione al linguaggio Java - Input/Output, Variabili, Tipi Tutor: Allegra De Filippo [email protected] a.a. 2015/2016 Fondamenti di Informatica T-1 Allegra De
Laboratorio di Calcolo Numerico
Laboratorio di Calcolo Numerico Lezione 3 Padova, April 4th 2016 F. Piazzon Department of Mathematics. Doctoral School in Mathematical Sciences, Applied Mathematics Area Outline Lab. 3-2 of 16 1 Costrutti
Laboratorio di Python
Problem solving, Ricorsione, 14 marzo 2014 Sommario 1 2 3 4 Sintassi ed Esempi Esercizi Lunedì il numero di studenti che avevano consegnato gli esercizi era 13. Martedì il numero di esercizi ricevuti,
L AMBIENTE CODE BLOCKS E L IO
L AMBIENTE CODE BLOCKS E L IO Il primo programma in C++ #include using namespace std; main() { cout
Qualsiasi programma in C++ segue lo schema:
Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni
Caratteristiche generali del linguaggio Visual Basic
Caratteristiche generali del linguaggio Visual Basic Per ottenere un aiuto contestuale dall help di Visual Basic sulla sintassi di funzioni o, oppure su proprietà, eventi o metodi, basta selezionare la
Esercizi in Laboratorio
Esercizi in Laboratorio Informatica@SEFA 2017/2018 - Laboratorio 2 Massimo Lauria http://massimolauria.net/courses/infosefa2017/ Lunedì, 9 Ottobre 2017 1 Errata corrige (tuple
Laboratorio di Python
Laboratorio di Python Esercizi di debug Lab07 27 Marzo 2018 Outline Correzione esercizi per oggi Debug Strategia Esercizi di debug Esercizi per casa Outline Correzione esercizi per oggi Debug Strategia
Input/Output di numeri
Input/Output di numeri I/O di numeri Per utilizzare le funzioni di I/O occorre include il file di intestazione (o file header) stdio.h utilizzando all inizio del sorgente la direttiva #include
Laboratorio 04. Programmazione - CdS Matematica. Michele Donini 17 Novembre 2015
Laboratorio 04 Programmazione - CdS Matematica Michele Donini 17 Novembre 2015 Controllo del flusso Selezione: ci permette di modificare il normale flusso sequenziale di un programma a seconda della valutazione
Laboratorio di Calcolo Numerico Laboratorio 2: Primi programmi in Fortran 90
Laboratorio di Calcolo Numerico Laboratorio 2: Primi programmi in Fortran 90 Andrea Franceschini E-mail: [email protected] Dispense: http://www.math.unipd.it/ putti/teaching/calcolo ambientale/index.html
Programmazione a blocchi. Algobuild Prof. Sergio Roselli
Programmazione a blocchi Algobuild Prof. Sergio Roselli Blocchi base Inizio programma I Fine programma F Input IN A Output Esecuzione OUT A A = 5 + 1 L interprete Algobuild Algobuildpermette di trascrivere
