py t1 python-intro

51
LINGUAGGI DINAMICI LINGUAGGI DINAMICI PARTE 2 IL LINGUAGGIO PYTHON IL LINGUAGGIO PYTHON Linguaggi dinamici – A.A. 2009/2010 1

Upload: majong-devjfu

Post on 29-Nov-2014

1.384 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Py t1 python-intro

LINGUAGGI DINAMICILINGUAGGI DINAMICIPARTE 2

IL LINGUAGGIO PYTHONIL LINGUAGGIO PYTHON

Linguaggi dinamici – A.A. 2009/20101

Page 2: Py t1 python-intro

Parte 2

Introduzione al Pythony

Linguaggi dinamici – A.A. 2009/20102

Page 3: Py t1 python-intro

Un po’ di storia

� Python: nasce nel 1990, quale strumento di aiuto per il sistema distribuito Amoebaaiuto per il sistema distribuito Amoeba(Andrew S. Tanenbaum)

� Il nome prende ispirazione dal gruppo teatrale� Il nome prende ispirazione dal gruppo teatrale inglese dei Monty Python

Autore: Guido Van Rossum� Autore: Guido Van Rossum

� 2009: V2.6 (stabile)

� Python è il linguaggio dinamico di riferimento per la piattaforma dei servizi offerti da Google

� di cui Van Rossum è dipendente dal 2005

Linguaggi dinamici – A.A. 2009/20103

Page 4: Py t1 python-intro

Caratteristiche

� Sintassi estremamente concisa

Motto del Python: “There should be one (and� Motto del Python: “There should be one (and preferably only one) obvious way to do it”

S t ll t il l l di t ib it� Supporto eccellente per il calcolo distribuito

� Poco liberale nei costrutti e nella tipizzazione

� Archivio di moduli ridotto, ma consistente e stabile (http://docs.python.org/modindex.html)( p py g )

� Portabile

Linguaggi dinamici – A.A. 2009/20104

Page 5: Py t1 python-intro

EsecuzioneÆESEMPIhello_world.py

� L'esecuzione avviene attraverso l'interprete python presente in forma pacchettizzata inpython, presente in forma pacchettizzata in tutte le distribuzioni di software moderne

� GNU/Linux (Debian): sudo apt-get install python� GNU/Linux (Debian): sudo apt-get install python

� Windows: http://www python org/download/windows/http://www.python.org/download/windows/

� Si esegue un programma passandolo come t ll'i t targomento all'interprete:

� python filename

� python -c 'statement '

� python (shell interattiva)

Linguaggi dinamici – A.A. 2009/20105

py ( )

Page 6: Py t1 python-intro

Documentazione

� Il Python fornisce il proprio strumento di documentazione analogo alle man pagedocumentazione, analogo alle man page

� Comando pydoc (incluso nel pacchetto python)python)

� Incluso nel pacchetto python

� pydoc pydoc

� Usi comuni:

� pydoc argomento: invoca la man page di argomento (deve essere un nome esatto)g ( )

� pydoc -k parola_chiave: ricerca la parola chiave nella sinossi dei moduli

Linguaggi dinamici – A.A. 2009/20106

Page 7: Py t1 python-intro

Blocchi di codice, statement, commenti

� Il singolo statement può essere concluso opzionalmente da un punto e virgolaopzionalmente da un punto e virgola

� print “Hello world\n”; print “Ciao mondo”;

U t t t ò t iù i h� Uno statement può essere spezzato su più righe con una sequenza di escape (\)

Il bl di di è tt i t d ll� Il blocco di codice è caratterizzato dalla sua indentazione

while b < 10:

print b

a, b = b, a+b

� Il carattere # rappresenta l'inizio di un

Linguaggi dinamici – A.A. 2009/20107

ppcommento

Page 8: Py t1 python-intro

Scheletro di un programma Python

#!/usr/bin/python

<Direttive di importazione moduli esterni>

<Sequenza di statement>

Linguaggi dinamici – A.A. 2009/20108

Page 9: Py t1 python-intro

Direttive di importazione moduli

� Una direttiva di importazione moduli è uno statement che importa uno dei moduli delstatement che importa uno dei moduli del Python

Tali moduli arricchiscono le funzionalità� Tali moduli arricchiscono le funzionalità esterne offerte

GUI d t b t i th d fil� GUI, database, rete, processi, thread, file

� Il formato di una direttiva di importazione è il seguente:

� import Path.To.NameSpace.Module

� Il modulo è identificato dal suo nome completo (inclusivo di namespace)

Linguaggi dinamici – A.A. 2009/20109

Page 10: Py t1 python-intro

Variabili

� In Python, esiste un unico tipo di variabile: l'oggettol oggetto

� Tramite gli oggetti, sono definiti i seguenti tipi di dato builtin (nell'interprete)di dato builtin (nell interprete)

� Numerics: valori numerici (int, float, long, l )complex)

� Iterator: iteratori su insiemi

� Sequence: sequenze di oggetti (str, unicode, list, tuple, buffer, xrange)

� Set: insiemi (set, frozenset)

� Per maggiori informazioni:

Linguaggi dinamici – A.A. 2009/201010

gghttp://docs.python.org/library/stdtypes.html

Page 11: Py t1 python-intro

Variabili

� Attenzione: in Python, non vengono utilizzati caratteri speciali per distinguere il tipo dicaratteri speciali per distinguere il tipo di variabile!

Se si utilizza lo stesso nome per una nuova� Se si utilizza lo stesso nome per una nuova variabile, viene sovrascritto il contenuto della variabile precedente!variabile precedente!

� Il tipo di dato non deve essere dichiarato li it tesplicitamente

� Assegnamento: si usa l'operatore =

Linguaggi dinamici – A.A. 2009/201011

Page 12: Py t1 python-intro

Nomi delle variabili

� Tutte le variabili sono identificate con un nome ossia una combinazione arbitrariamentenome, ossia una combinazione arbitrariamente lunga di lettere, digit ed underscore (_)

Esempi di nomi di variabile leciti:� Esempi di nomi di variabile leciti:

� foo

f bl h� foo_blah

� x100y200z

� HiDave

� Very Descriptive Namey_ p _

Linguaggi dinamici – A.A. 2009/201012

Page 13: Py t1 python-intro

Operatori di confronto

� Il Python mette a disposizione operatori di confronto unici per tutti gli oggetticonfronto unici per tutti gli oggetti

� Cosa è considerato falso?

L t t N ( l i t t )� La costante None (valore non esistente)

� La costante False (valore falso logicamente)

� La costante 0 di ogni tipo numerico: 0, 0L, 0.0, 0j

� Ogni sequenza vuota: ' ', ( ), [ ]

� Qualunque classe il cui metodo len ritorni 0 q __ __o False

� Tutto il resto è considerato vero

Linguaggi dinamici – A.A. 2009/201013

� Tutto il resto è considerato vero

Page 14: Py t1 python-intro

Operatori booleani

� Gli operatori booleani (builtin) hanno la stessa sintassi del linguaggio Csintassi del linguaggio C

� Operatore or logico or:

S il i d è F l it il d� Se il primo operando è False, ritorna il secondo

� Altrimenti, ritorna il primo operando

� Operatore and logico and:

� Se il primo operando è Falso, lo ritornap p ,

� Altrimenti, ritorna il secondo operando

Operatore di negazione logica not:� Operatore di negazione logica not:

� Se l'operando è False, ritorna True

S èLinguaggi dinamici – A.A. 2009/2010

14

� Se l'operando è True, ritorna False

Page 15: Py t1 python-intro

Operatori booleani

� Gli operatori booleani hanno la stessa sintassi del linguaggio Cdel linguaggio C

� Operatore or bit a bit |:

Rit il i lt t d ll' bit bit� Ritorna il risultato dell'or bit a bit

� 1 | 4 = 5

� Operatore and bit a bit &:

� Ritorna il risultato dell'and bit a bit

� 1 & 3 = 1

Linguaggi dinamici – A.A. 2009/201015

Page 16: Py t1 python-intro

Operatori di confronto

Confronto Operatore

Uguale

Diverso

==

!=Diverso

Minore di

Maggiore di

!

<

>Maggiore di

Minore o uguale di

>

<=

Maggiore o uguale di >=

Linguaggi dinamici – A.A. 2009/201016

Page 17: Py t1 python-intro

Variabili numeric

� La variabile numeric (o, più semplicemente, un numeric) implementa i tipi di dato numericinumeric) implementa i tipi di dato numerici

� Numeri interi

N i i t i l hi� Numeri interi lunghi

� Numeri float

� Numeri complessi

Linguaggi dinamici – A.A. 2009/201017

Page 18: Py t1 python-intro

Numeri interi ed interi lunghi

� I numeri interi sono implementati tramite il tipo di dato long del Cdi dato long del C

� Precisione di almeno 32 bit

Li iti t bili t it il d l� Limiti: stampabili tramite il modulo sys(variabile sys.maxint)

S di di it� Sequenza di digit

� Gli interi lunghi hanno precisione illimitata

� Sequenza di digit terminata da l o L: 120000L, 100000000000L

� L’interprete alloca la memoria necessaria

Linguaggi dinamici – A.A. 2009/201018

Page 19: Py t1 python-intro

Numeri float e complex

� I numeri float sono implementati tramite il tipo di dato double del Cdi dato double del C

� Precisione dipende dall'architettura

S t t i t /d i l� Separatore parte intera/decimale: .

� I numeri complex hanno una parte reale ed una i i i t bi di ti d blimmaginaria, entrambi di tipo double

� Numero reale + numero reale con suffisso j:10 20j 4j10 + 20j, -4j

� z.real: parte reale

� z.imag: parte immaginaria

Linguaggi dinamici – A.A. 2009/201019

Page 20: Py t1 python-intro

Operazioni sulle variabili numeric

� Operazioni aritmetiche standard: +, -, *, /

Divisione intera: //� Divisione intera: //

� / tra interi restituisce il quoziente; // è per reali

� Resto divisione intera: %

� Valore assoluto: abs()()

� Conversione ad altri tipi: int(), long(), float()

Numero complesso coniugato: conjugate()� Numero complesso coniugato: conjugate()

� Elevamento a potenza: pow(), **

� Arrotondamento: math.trunc(), round(), math.floor(), math.ceil()

Linguaggi dinamici – A.A. 2009/201020

Page 21: Py t1 python-intro

Operazioni sulle variabili numericÆESEMPI

numeric.pyconfronto.py

� Or bit a bit: |

Or esclusivo bit a bit: ^� Or esclusivo bit a bit: ^

� And esclusivo bit a bit: &

� Shift logico a sinistra di n bit: << n

� Shift logico a destra di n bit: >> n� Shift logico a destra di n bit: n

� Negazione dei bit: ~

Linguaggi dinamici – A.A. 2009/201021

Page 22: Py t1 python-intro

Variabili iterator

� La variabile iterator (o, più semplicemente, un iterator) implementa il concetto di iterazione suiterator) implementa il concetto di iterazione su un insieme

� Una variabile iterator è un oggetto che ha un� Una variabile iterator è un oggetto che ha un metodo next() che ritorna l'elemento successivo dall'insiemedall insieme

Linguaggi dinamici – A.A. 2009/201022

Page 23: Py t1 python-intro

Variabili iteratorÆESEMPI

iterator.py

� Ogni classe può ritornare un iteratore, basta che definisca il metodo iter ()che definisca il metodo __iter__()

� Se la classe stessa ha un metodo next(), it () ò it lf (l’ tt t )__iter__() può ritornare self (l’oggetto stesso)

� In generale, la funzione iter() applicata su un oggetto restituisce un appropriato iteratoregg pp p

� Esempio: sum(i*i for i in range(10))

Qui l'elenco dei numeri da 0 a 9 è unito ad un� Qui, l elenco dei numeri da 0 a 9 è unito ad un oggetto di iterazione

Linguaggi dinamici – A.A. 2009/201023

Page 24: Py t1 python-intro

Variabili sequence

� La variabile sequence (o, più semplicemente, una sequence) implementa il concetto diuna sequence) implementa il concetto di sequenza di elementi

� Stringhe� Stringhe

� Liste

T l� Tuple

� Buffer

� Xrange

Linguaggi dinamici – A.A. 2009/201024

Page 25: Py t1 python-intro

Stringhe

� Le variabili contenenti una stringa devono essere racchiuse fra singole quote ('') oppureessere racchiuse fra singole quote ( ) oppure fra doppie quote (“”)

In Python non vi è differenza alcuna fra� In Python, non vi è differenza alcuna fra singole quote e doppie quote

O i t è i tili l t� Ovviamente, è necessario utilizzare lo stesso tipo di quote per l'apertura e la chiusura della stringastringa

� Se si usa un quote, non è necessario effettuare l'escape dell'altro tipo di quotel escape dell altro tipo di quote

� '”Prova”', “'Prova'”, '\'Prova\''

Linguaggi dinamici – A.A. 2009/201025

Page 26: Py t1 python-intro

Quoting e backslash

� All'interno di una stringa quotata, il carattere backslash (\) introduce le sequenze specialibackslash (\) introduce le sequenze speciali

� \n: newline

\ i t� \r: carriage return

� \t: tabulazione

� \\: un singolo carattere backslash \

� \”: un singolo carattere di virgolette “

� Una ‘r’ prima delle quote significa una stringa raw, che non viene interpretata quando si raw, che non viene interpretata quando si stampa

Linguaggi dinamici – A.A. 2009/201026

Page 27: Py t1 python-intro

Esempi di stringhe

Espressione:

“Hello\n”

Risultato visivo:

Hello Newline“Hello\n”

r“Hello\n”

Hello

Hello\n

Newline

No newline

“12\t6\t3”

r“12\t6\t3”

12 6 3

12\t6\t3r 12\t6\t3

'He said ”Hi”'

'He said \\”Hi\\”'

12\t6\t3

He said ”Hi”

He said \”Hi\”'He said \\”Hi\\”' He said \”Hi\”

Linguaggi dinamici – A.A. 2009/201027

Page 28: Py t1 python-intro

Interpolazione di variabili

� In Python, l'interpolazione avviene traducendo una variabile in stringa ed attaccando iluna variabile in stringa ed attaccando il risultato ad un'altra stringa

num = 13num = 13

foo = “The number is “ + str(num) + “\n”

print foo

The number is 13

Linguaggi dinamici – A.A. 2009/201028

Page 29: Py t1 python-intro

Operatori stringa

� Il Python mette a disposizione l'operatore di concatenazione di stringhe (+)concatenazione di stringhe (+)

� Esempi

"D " " " "H lli "myname = "Dave" + " " + "Hollinger"

myname = first + blank + last

� Attenzione, non è possibile concatenare stringhe con numeri, come invece avviene in g ,Java

Linguaggi dinamici – A.A. 2009/201029

Page 30: Py t1 python-intro

Operatori stringa

� Il Python mette a disposizione l'operatore di ripetizione di stringhe (*)ripetizione di stringhe ( )

Espressione:

“M” * 4

Valore:

'MMMM'M 4

“Hello” * 2

MMMM

'HelloHello'

“Joe” * (5 - 2) 'JoeJoeJoe'

Linguaggi dinamici – A.A. 2009/201030

Page 31: Py t1 python-intro

Metodi definiti sulle stringheÆESEMPI

string.py

� s.capitalize(): ritorna una copia della stringa con la prima lettera maiuscolacon la prima lettera maiuscola

� s.count(): ritorna il numero di occorrenze di una sottostringauna sottostringa

� s.find(): ritorna l'indice di occorrenza di una tt t isottostringa

� s.join(): ritorna la concatenazione in stringa degli elementi di una lista, separati da s

� [ ]: si accede ad un singolo carattere[ ] g

� E tantissimi altri; per ulteriori informazioni:http://docs python org/library/stdtypes html

Linguaggi dinamici – A.A. 2009/201031

http://docs.python.org/library/stdtypes.html

Page 32: Py t1 python-intro

Liste

� Le liste sono contenitori generici di oggetti qualunque senza dichiarazione esplicitaqualunque, senza dichiarazione esplicita (dynamic typing)

� Intero� Intero

� Floating point

Stringa� Stringa

� Sono costruite in maniera analoga al Perl

� Esempio: lista = [1, 2, 3]

� Una lista può contenere un'altra lista!p

Linguaggi dinamici – A.A. 2009/201032

Page 33: Py t1 python-intro

Assegnazione lista

� Si utilizza l'operatore =

wt = [1 2 3 4]wt = [1, 2, 3, 4]

wt = [1, “ciao”, 2]

wt = [1, [2, 3], 4] qui, il secondo elemento è un array

wt = [ ][ ]

Linguaggi dinamici – A.A. 2009/201033

Page 34: Py t1 python-intro

Accesso elementi di una listaÆESEMPI

� Ciascun elemento di un array è una variabile oggetto rappresentante un dato qualunqueoggetto rappresentante un dato qualunque

� Per il resto, la sintassi è simile al C

Gli i di i di t d 0� Gli indici di un array partono da 0

wt = [1, 2, 3, 4]

print wt[2] Stampa 3

� Si possono usare indici negativi; -1 è l'ultimo elemento 2 il penultimo e così viaelemento, -2 il penultimo, e così via

Linguaggi dinamici – A.A. 2009/201034

Page 35: Py t1 python-intro

Array multidimensionali

� Gli array multidimensionali sono dichiarati e gestiti come nel linguaggio Cgestiti come nel linguaggio C

� Si definisce un array di array

Si lt li i i di i f t i d� Si usano molteplici indici fra parentesi quadre per l'accesso

wt = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]

print wt[0][0]Stampa 1

p [ ][ ]Stampa 1

Linguaggi dinamici – A.A. 2009/201035

Page 36: Py t1 python-intro

Liste e code

� La lista può essere gestita come una coda

Metodo append dell'oggetto lista:� Metodo append dell'oggetto lista:

� lista.append(oggetto): appende l'oggetto alla lista

� Metodo pop dell'oggetto lista:

� lista.pop(indice): estrae l'oggetto in posizione indice dalla lista

� lista.pop(0): estrae il primo elemento della lista

Linguaggi dinamici – A.A. 2009/201036

Page 37: Py t1 python-intro

Liste e stack

� La lista può essere gestita come uno stack

Metodo append dell'oggetto lista:� Metodo append dell'oggetto lista:

� lista.append(oggetto): appende l'oggetto alla lista

� Metodo pop dell'oggetto lista:

� lista.pop(): estrae l'oggetto in coda alla lista

Linguaggi dinamici – A.A. 2009/201037

Page 38: Py t1 python-intro

Slicing delle liste

� Il Python permette la gestione diretta di porzioni di array (slicing)porzioni di array (slicing)

� Operatore di range : permette di specificare un intervallo contiguo di indici di una listaun intervallo contiguo di indici di una lista

wt = [1, 2, 3, 4, 5]

wt_slice = wt[1:3] start stop

wt slice = wt[1:5:2] start stop increment_ [ ] p

Linguaggi dinamici – A.A. 2009/201038

Page 39: Py t1 python-intro

Metodi definiti sulle listeÆESEMPI

liste.py

� Funzione enumerate(lista): ritorna coppie del tipo (indice valore) utilizzabili in un ciclotipo (indice, valore) utilizzabili in un ciclo

for index, item in enumerate(L):

i t i d itprint index, item

� Funzione len(lista): ritorna il numero di elementi contenuti in una lista

� Metodo lista.sort(): ordina gli oggetti () g ggcontenuti in una lista

� Metodo lista reverse(lista): capovolge la� Metodo lista.reverse(lista): capovolge la sequenza degli oggetti contenuti in una lista

Linguaggi dinamici – A.A. 2009/201039

Page 40: Py t1 python-intro

Variabili xrange

� La variabile xrange (o, più semplicemente, un xrange) implementa il concetto di sequenzaxrange) implementa il concetto di sequenza non modificabile durante una iterazione

Una variabile xrange è un oggetto che:� Una variabile xrange è un oggetto che:

� ha un meccanismo per l'indicizzazione degli l tielementi

� ha un meccanismo per le iterazioni

� implementa il metodo len() che fornisce la lunghezza dell'insieme su cui si itera

Linguaggi dinamici – A.A. 2009/201040

Page 41: Py t1 python-intro

Variabili setÆESEMPI

set.py

� La variabile set (o, più semplicemente, un set) implementa il concetto di insieme costruito aimplementa il concetto di insieme, costruito a partire da un oggetto iteratore

S = set(range(10))� S = set(range(10))

� Alcuni metodi a disposizione dei set

� Cardinalità: len(S)

� Appartenenza all'insieme: x in S, x not in Spp ,

� Disgiunzione: isdisjoint(S2)

Unione: union(S2)� Unione: union(S2)

� Intersezione: intersection(S2)

Linguaggi dinamici – A.A. 2009/201041

� Differenza: difference(S2)

Page 42: Py t1 python-intro

Variabili mapping

� La variabile dictionary (o, più semplicemente, un dictionary) rappresenta l'astrazione di unaun dictionary) rappresenta l astrazione di una lista associativa

� Può contenere più di un valore� Può contenere più di un valore

� Il valore può essere un oggetto qualunque, senza dichiarazione esplicita (dynamic typing)senza dichiarazione esplicita (dynamic typing)

� Intero

Fl ti i t� Floating point

� Stringa

� Altro...

Linguaggi dinamici – A.A. 2009/201042

Page 43: Py t1 python-intro

Assegnamento dictionary

� Si utilizza l'operatore = per l'assegnamento del dictionary ad una variabiledel dictionary ad una variabile

� Si può inizializzare un dictionary in due modi distinti:distinti:

� Sequenza di coppie key: value separate da i l fi t i t i ffvirgola e confinate in parentesi graffe

� Uso del costruttore dict()

wt = dict( one=1, two=2)

wt = dict( { 'one': 1, 'two': 2 } )( { , } )

wt = {}

Linguaggi dinamici – A.A. 2009/201043

Page 44: Py t1 python-intro

Accesso elementi di un dictionary

� Ciascun elemento di un dictionary è un oggettooggetto

� La chiave di accesso può essere anche una listalista

print wt['one'] Stampa 1

Linguaggi dinamici – A.A. 2009/201044

Page 45: Py t1 python-intro

Esistenza chiavi dictionary

� Si utilizza la funzione in per controllare se una chiave esiste in un dictionarychiave esiste in un dictionary

� key in dictionary: ritorna True se il dictionary ha la chiave key False altrimentiha la chiave key, False altrimenti

� key not in dictionary: equivalente dinot key in dictionarynot key in dictionary

� La funzione in è utilizzabile anche sulle liste!

Linguaggi dinamici – A.A. 2009/201045

Page 46: Py t1 python-intro

Distruzione chiavi dictionary

� Si utilizza la funzione del per distruggere una chiave ed il suo contenutochiave ed il suo contenuto

del wt['one']

d l() f i h li ( i� del() funziona anche con gli array (si usa l'indice al posto della chiave)

� Se si cancella l'ultimo elemento dell'array, l'operazione è equivalente ad una pop

� Se si cancella un elemento interno, esso viene rimosso

Linguaggi dinamici – A.A. 2009/201046

Page 47: Py t1 python-intro

Accesso a chiavi e valoriÆESEMPI

dictionary.py

� Viene messo a disposizione un metodo molto comod per gestire in blocco l'intero insiemecomod per gestire in blocco l intero insieme delle chiavi e dei valori di un hash

iter (dictionary):� iter (dictionary):

� Ritorna un oggetto iteratore sulle chiavi del dictionary utilizzabile nei ciclidictionary, utilizzabile nei cicli

for k in iter(wt):

print k, wt[k]

Linguaggi dinamici – A.A. 2009/201047

Page 48: Py t1 python-intro

ScopeÆESEMPI

global.pyglobal2.py

� Il modello di scoping del Python è unico e statico (determinato a tempo di compilazione)statico (determinato a tempo di compilazione)

� Se una variabile non è definita nel blocco attuale viene cercata in tutti i blocchi che loattuale, viene cercata in tutti i blocchi che lo contengono

S i bil è d fi it i bl è� Se una variabile è definita in un blocco, è locale per quel blocco

� Se una variabile è definita al di fuori delle funzioni, è considerata globale per un modulo

� Parola chiave global: permette di riferirsi alla variabile nel blocco top-level del file

Linguaggi dinamici – A.A. 2009/201048

p

Page 49: Py t1 python-intro

Costrutti condizionali

� Costrutto if-elif-else: simile al linguaggio C

If condizione:If condizione:

statement

elif condizione:

statement

. . .

else:else:

statement

Linguaggi dinamici – A.A. 2009/201049

Page 50: Py t1 python-intro

Costrutti iterativi

� Costrutto while: identico al linguaggio C

while condizione:while condizione:

statement

� Costrutto for: simile al linguaggio C

for variabile in lista:

statement

� Funzione range(): costruisce un intervallo di� Funzione range(): costruisce un intervallo di interi

Linguaggi dinamici – A.A. 2009/201050

Page 51: Py t1 python-intro

Comandi di salto

� Comando break:

Interrompe un ciclo for/while� Interrompe un ciclo for/while

� Comando continue:

� Salta all'iterazione for/while successiva

� Clausola else:

� Può essere inserita alla fine di un blocco relativo ad un ciclo

� Viene eseguita se un ciclo termina tutte le sue iterazioniiterazioni

� Non viene eseguita in caso di break

Linguaggi dinamici – A.A. 2009/201051