Programmazione in Python. Moreno Marzolla

Похожие документы
Il problema dello zaino

Programmazione web lato client con JavaScript. Marco Camurri 1

PROGRAMMAZIONE: Le strutture di controllo

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA

Il linguaggio Python

Esercizi di Algoritmi e Strutture Dati

5 - Istruzioni condizionali

Laboratorio di programmazione

Programmazione Orientata agli Oggetti in Linguaggio Java

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Appunti di informatica. Lezione 10 anno accademico Mario Verdicchio

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Laboratorio di Python (con Linux)

Programmazione in Java (I modulo)

Input/Output di numeri

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da:

Programmazione Procedurale in Linguaggio C++

Le strutture di controllo in C++

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

Matlab : le basi. Vediamo ora un esercizio di calcolo: Il volume di una sfera è dato da V=4*π*r 3 /3 dove r è il raggio.

Istruzioni iterative (o cicliche)

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

Sviluppo di programmi

I sistemi di numerazione. Informatica - Classe 3ª, Modulo 1

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO

28/02/2014 Copyright V. Moriggia

Esercitazione 3. Oggi sono stati effettuati semplici esercizi in C utilizzando le seguenti istruzioni: if...else, while, printf, scanf

Struttura dei programmi C

Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive La Programmazione Strutturata (3 p) Giovedì 21 Ottobre 2010

Espressione di chiamata di funzione

Istruzioni Condizionali in C

Espressioni ed operatori in C

Espressioni logiche. Espressioni logiche. Operatori logici. Operatori logici. Operatori logici. Espressioni Logiche e Istruzione di Test

Linguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Matlab. Istruzioni condizionali, cicli for e cicli while.

Algoritmi e basi del C Struttura di un programma

Linguaggio C Espressioni e operatori

Esercizi di programmazione in linguaggio C - Costrutto iterazione

Costrutti condizionali e iterativi

Codice binario. Codice. Codifica - numeri naturali. Codifica - numeri naturali. Alfabeto binario: costituito da due simboli

APPUNTI DI INFORMATICA

Espressione composta da: Operatori Operandi (costanti, variabili, )

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

PROGRAMMAZIONE STRUTTURATA

Variabili e Istruzioni

Realizzare un programma che legga da input tre numeri interi e stampi a video la loro somma e la media.

LINGUAGGI DI PROGRAMMAZIONE!

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Lettura da tastiera e scrittura su monitor

Moltiplicazione. Divisione. Multipli e divisori

Informatica e Bioinformatica: AND, OR, NOT

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

Laboratorio con DERIVE

Esercizi Programmazione I

Rappresentazione dei dati in memoria

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C

Algebra di Boole. Andrea Passerini Informatica. Algebra di Boole

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN

Istruzioni Condizionali

La codifica binaria. Informatica B. Daniele Loiacono

Транскрипт:

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 Commons Attribution-ShareAlike License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA. Laboratorio di Informatica 2

Python Linguaggio di programmazione interpretato Inventato negli anni '80 da Guido van Rossum Versione attuale del linguaggio: 3.x Laboratorio di Informatica 3

Chi usa Python? Google NASA Borsa di New York Industrial Light & Magic (quelli che fanno gli effetti speciali di Star Wars) Yahoo! (Yahoo mail e gruppi) RealNetworks (usato per il testing del sistema) RedHat (strumenti per l'installazione di Linux) LLNL, Fermilab (controllo di applicazioni scientifiche)... Laboratorio di Informatica 4

Python (versione 3) Si può utilizzare Python in modalità interattiva o mediante file di programmi Modalità interattiva È possibile scrivere espressioni che vengono valutate quando si preme il tasto <Invio> L'interprete mostra subito il risultato delle espressioni File di programmi Si scrivono dei file di testo contenenti un programma Python costituito da una sequenza di istruzioni L'interprete esegue l'intero programma, leggendo le istruzioni una dopo l'altra dal file Laboratorio di Informatica 5

Valori numerici 42 (intero, decimale) 0x2A (intero, esadecimale) 0.15 (numero reale) 1.7e2 (numero reale, notazione scientifica) Laboratorio di Informatica 6

Le nostre prime espressioni L'espressione più semplice è quella composta da un valore numerico. Python risponde visualizzando il numero che abbiamo inserito >>> 42 42 >>> 13.7 13.7 Laboratorio di Informatica 7

Le nostre prime espressioni Possiamo scrivere espressioni più complesse, e Python risponde visualizzandone il valore >>> 2+2 4 >>> 13+7*2 27 >>> 7/2 3.5 >>> 7 // 2 Divisione intera 3 >>> 7 % 2 Resto della Divisione intera 1 Laboratorio di Informatica 8

Stringhe Oltre a dati di tipo numerico, possiamo anche usare dati di tipo stringa >>> pippo 'pippo' L'operatore somma (+) concatena due stringhe >>> pippo + pluto 'pippopluto' Non è possibile applicare l'operatore somma ad una stringa e ad un numero >>> "pippo"+1 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: cannot concatenate 'str' and 'int' objects Laboratorio di Informatica 9

Stringhe Per concatenare una stringa e un numero, occorre trasformare il numero in stringa mediante la funzione str() >>> pippo +str(1) 'pippo1' >>> pippo +str(135.2) 'pippo135.2' Laboratorio di Informatica 10

Operazioni su stringhe...invece è possibile applicare l'operatore prodotto (*) ad una stringa e ad un numero, e viceversa >>> "pippo"*2 'pippopippo' >>> 2*"pippo" 'pippopippo' Possiamo scrivere espressioni più complicate che coinvolgono stringhe >>> (2*"pippo")+ pluto 'pippopippopluto' >>> ( + pippo *2 + ) '(pippopippo)' Laboratorio di Informatica 11

Operazioni su stringhe È possibile usare la funzione int() per convertire una stringa in un intero, e la funzione float() per convertire una stringa in un numero reale >>> int( 123 ) 123 >>> int( -13 ) -13 >>> int( 13.2 ) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: invalid literal for int() with base 10: '13.2' >>> float( 13.2 ) 13.2 >>> float( -1 ) -1.0 Laboratorio di Informatica 12

Operatori aritmetici e logici Python supporta i valori logici True e False Nota: 0, 0.0, equivalgono a False Operatori aritmetici Le quattro operazioni: a+b, a-b, a*b, a/b Elevamento a potenza: a**b calcola a elevato alla b a%b è il resto della divisione intera a/b Operatori di confronto a < b, a > b, a <= b, a >= b a == b, a!= b Operatori booleani a or b (vero se a è vero OPPURE b è vero) a and b (vero se a e b sono ENTRAMBI veri) not a (vero se a è falso) Laboratorio di Informatica 13

Variabili Una variabile è una etichetta (nome) a cui è assegnato un valore Una variabile non può essere utilizzata prima che le venga assegnato un valore I nomi delle variabili possono essere composti da lettere, numeri e dal carattere underscore (_) Il primo carattere non può essere un numero Esempi di nomi validi x ciao x13 x1_y ciao12 Esempi di nomi non validi 1x x-y $a però Laboratorio di Informatica 14

Assegnamenti In generale è possibile scrivere cose come: >>> base=12 >>> altezza=3 >>> area=(base*altezza)/2 >>> area 18 Questo viene valutato come segue: Prima si valuta l'espressione a destra dell'operatore di assegnamento (il simbolo '=') Il risultato diventa il valore della variabile il cui nome è sinistra del simbolo '=' Le istruzioni sopra assegnano il valore 18 a area Laboratorio di Informatica 15

Attenzione Quanto vale: >>> x = 10 >>> x = x + 1 x=x+1, vista come equazione aritmetica, non è risolvibile......ma questo è Python! Prima si valuta la parte destra (x+1 vale 10+1=11) Poi si assegna tale valore alla parte sinistra Dopo l'assegnamento, il nuovo valore di x è 11 Laboratorio di Informatica 16

Attenzione Quanto vale Valgono le solite regole di precedenza degli operatori Il prodotto ha precedenza maggiore della somma x*(2+y) 7*x = 10*(2+12) - 7*2 = 10*14 7*2 = 140-14 = 126 >>> x = 10 >>> y = 12 >>> z = 2 >>> risultato = x*(2 + y) - 7*z; Laboratorio di Informatica 17

Istruzione condizionale if-else False Azione2... condizione True Azione1... Python if condizione: Azione1... else: Azione2... x=10 y=5 if x >= y: print(x, maggiore o uguale a, y) else: print(x, minore di, y) Laboratorio di Informatica 18

Istruzione condizionale if-else condizione False True Azione1... Python if condizione: Azione1... if 0: print( aaa ) print( bbb ) Laboratorio di Informatica 19

Istruzione condizionale if-else False Azione3 False cond1 cond1 True Azione2 True Azione1 Python if cond1: Azione1... elif cond2: Azione2... else: Azione3... Nota: ci possono essere tanti elif quanti si vuole Azione1, Azione2 ecc. possono essere composte da più righe di codice, purché siano tutte indentate allo stesso livello Laboratorio di Informatica 20

Esempio x = int(input( Scrivi un numero )) if x>0: print(x, e' positivo ) elif x == 0: print(x, e' zero ) else: print(x, e' negativo ) Laboratorio di Informatica 21

Esercizio Leggere da tastiera tre numeri interi da assegnare ad altrettante variabili diverse Scrivere a video il valore più grande tra quelli inseriti Esempio: Digita un numero: 3 Digita un numero: 2 Digita un numero: 7 Il valore massimo e' 7 Laboratorio di Informatica 22

Ciclo while condizione True azione... False Python while condizione: azione... x=1 while x<4: print(x**2) x=x+1 print( Fine ) 1 4 9 Fine L'output generato Laboratorio di Informatica 23

Esercizio Chiedere all'utente un intero N>0 Chiedere all'utente N numero interi Stampare la somma di tutti gli N valori inseriti dall'utente Digita N 3 Digita un valore 1 Digita un valore 31 Digita un valore -2 La somma dei valori inseriti e' 30 Laboratorio di Informatica 24

Possibile soluzione N=int(input("Digita N ")) somma=0 while N>0: a=int(input("digita un valore ")) somma = somma + a N = N - 1 print("la somma dei valori inseriti e'", somma) Laboratorio di Informatica 25

Errore da evitare Se la condizione di un ciclo while rimane sempre vera, il ciclo non termina mai! Quindi è importante assicurarsi che prima o poi la condizione diventi falsa Esempio x=1 while x == 1: print( ciao ) questo programma continua a stampare ciao finché non lo si interrompe con Ctrl+C Laboratorio di Informatica 26

Esercizi Scrivere un programma Python che calcola il prodotto di due interi positivi x e y utilizzando la somma Cioè, x*y deve essere calcolato come x+x+... + x (y volte) Scrivere un programma Python che chiede in input un intero positivo N e stampa a video i numeri pari compresi tra 1 e N (estremi inclusi) Es: se N=13, stampa i numeri 2, 4, 6, 8, 10 e 12 Es: se N=1 non stampa nulla Modificare l'esercizio precedente per stampare tutti i numeri dispari compresi tra 1 e N (estremi inclusi) Laboratorio di Informatica 27