Laboratorio di Python

Размер: px
Начинать показ со страницы:

Download "Laboratorio di Python"

Транскрипт

1 , Esercizi su dizionari Università di Bologna 24 aprile e 3 maggio 2013

2 Sommario 1 2 3

3 Estrazione senza reinserimento Estrarre 10 carte da un mazzo di 40 senza reinserirle nel mazzo def estrazione(): mazzo=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18, 19,20,21,22,23,24,25,26,27,28,29,30,31,32, 33, 34,35,36,37,38,39,40] e=random.sample(s,10) #estraggo senza reinserimento come fa return e #codesto metodo Restituisce errore perché?

4 Estrazione senza reinserimento Estrarre 10 carte da un mazzo di 40 senza reinserirle nel mazzo def estrazione_briscola_noreinserimento(): Semi=["Bastoni", "Coppe", "Denara", "Spade"] Numeri=["Asso",2,3,4,5,6,7,"Fante","Cavallo","Re"] result=[] while len(result)<10:#compie 10 estrazioni S1=random.choice(Numeri)#scelta casuale numeri S2=random.choice(Semi)#scelta casuale semi final=str(s1)+ " di " +S2 if final not in result: #se c'e' gia' non la prende e quindi continua #ad iterare. se non c'e' allora aggiunge a result. result.append(final) return result Cos é sbagliato? Che tipo di errore é questo?

5 Domande Quando viene definita una frase viene detto che é delimitata da qualsiasi segno di punteggiatura: quindi tutti i segni li elencati come punteggiatura? anche l a-capo e la virgola per quanto riguarda i segni di punteggiatura: nel testo ne sono elencati solo alcuni, ma per esempio i segni come > e <, che di solito aprono un discorso diretto, vanno da considerarsi come limiti di frasi? Suddivisione delle frasi: Pippo, pluto. paperino; /n Paperone. Quante frasi sono? Quando si dice numero di lettere si intende lettere dell alfabeto solamente o anche cifre e punteggiatura?

6 Domande Per quanto riguarda tutti i caratteri speciali come (&, %, Û, ecc..) sono da considerarsi tra segni di punteggiatura o segni alfabetici? Quando si legge un file, se in esso vi sono dei tab o altri comandi simili vengono trasformati in t ecc. a seconda dei casi oppure si deve ripulire il testo da questi in modo che non vi sia un conteggio errato delle lettere?

7 Definizione e Inizializzazione I dizionari sono sequenze mutabile. I dizionari hanno un indice chiamato chiave. La chiave é definibile da un qualunque tipo immutabile. Per inzializzare un dizionario d si usa il comando: d = {}

8 Definizione e Assegnazione d = {chiave : val, chiave2 : val, } chiave puó essere di tipo stringa, intero, tupla, ecc... qualsiasi tipo immutabile Val puó essere definito qualsiasi tipo anche un dizionario stesso Ad esempio: d = { vocali : ( a, e, i, o, u ), consonanti : ( b, c,...), punteggiatura : ( :, ; )} chiavi del nostro dizionario sono: vocali, consonanti, punteggiatura valori referenziati dalle rispettive chiavi sono ( a, e, i, o, u ); ( b, c,...); (,, ; )

9 Operazioni sui dizionari Modifica : d[ vocali ] = ( a, e, i, o, u, A, E, I, O, U ) modifica la chiave giá presente con i valori a destra dell uguale Assegnazione : d[ alfabeto ]=( a, b,... ) associa alla variabile d una nuova chiave con i valori a destra dell uguale Cancellazione : del d[ consonanti ] cancella da d la chiave e i valori ad essa associati Numero di coppie chiave valore len(d) conta il numero di coppie chiave valore presenti nel dizionario d

10 Metodi dei dizionari versione 2.x keys : d.keys ritorna la lista delle sue chiavi values d.values ritorna la lista dei valori in un dizionario has_key d.has_key( vocali ) prende come argomento una chiave e ritorna (1) se la chiave é presente nel dizionario 0 altrimenti d.clear() : metodo per cancellare tutti gli elementi da un dizionario.

11 Metodi key and values versione 3.x keys : d.keys ritorna la vista dinamica delle chiavi values d.values ritorna la vista dinamica dei valori

12 Python 3.x >>>d={'vocali': ('a','e','i','o','u'), 'consonanti': ('b','c',...)} >>> ks = d.keys() >>> kv = d.values() >>> print(ks) (['vocali', 'consonanti']) >>> print(kv) ([('a','e','i','o','u'),('b','c',...) ]) >>> d['punteggiatura'] = (':',';') >>> print(ks) ([vocali', 'consonanti' 'punteggiatura']) >>> print(kv) ([('a','e','i','o','u'),('b','c',...), (':',';')])

13 Python 2.x >>>d={'vocali': ('a','e','i','o','u'), 'consonanti': ('b','c',...)} >>> ks = d.keys() >>> kv = d.values() >>> print(ks) ['vocali', 'consonanti'] >>> print(kv) [('a','e','i','o','u'),('b','c',...) ] >>> d['punteggiatura'] = (':',';') >>> print(ks) ['vocali', 'consonanti'] >>> print(kv) [('a','e','i','o','u'),('b','c',...) ]

14 Esercizio 1 Scrivere una funzione che dato un insieme di studenti e voti ad essi associati restituisca un dizionario degli studenti e dei voti ad essi associati, suddivisi per lettera del cognome. Le chiavi sono i gruppi (a-f), (g-o), (p-z); i valori le liste degli studenti e dei voti. 2 Si definisca la funzione di inserimento e cancellazione di un dato studente nel dizionario appena creato. 3 Si definisca la funzione che inserisca a uno studente presente nel dizionario una lista di voti.

15 Esercizio 1.1 def dizionario(s): if type(s)==tuple: d={} k1=('a','f') k2=('g','o') k3=('p','z') d={k1:[],k2:[], k3:[]} itero= list(d.keys()) # versione 3.x for i in range(len(s)): for k in itero: t=str(s[i][0]) if t[0] >= k[0] and t[0]<=k[len(k)-1]: d[k].append(s[i]) return (d) Se stiamo usando la versione 2.x, il codice diventa: itero= d.keys()

16 Esercizio 1.2a def inser_studente(s,d): itero= list(d.keys()) # versione 3.x for k in itero: t=str(s[0]) if t[0] >= k[0] and t[0]<=k[len(k)-1]: d[k].append(s) return (d) Se stiamo usando la versione 2.x, il codice diventa: itero = d.keys()

17 Esercizio 1.2b def canc_studente(s,d): itero= list(d.keys()) # versione 3.x for k in itero: t=str(s[0]) if t[0] >= k[0] and t[0]<=k[len(k)-1]: ite=d[k] lung=len(ite) for l in range(lung): if t == ite[l][0]: del ite[l] d[k]=ite return (d)

18 Cerca studente def cerca_studente_n(s,d): itero= list(d.keys()) # versione 3.x for k in itero: if type(s)==list: t=str(s[0]) if t[0] >= k[0] and t[0]<=k[len(k)-1]: ite=d[k] for l in range(len(ite)): if t == ite[l][0]: return (k,l) elif type(s)==str: if s[0] >= k[0] and s[0]<=k[len(k)-1]: ite=d[k] for l in range(len(ite)): if s == ite[l][0]: return (k,l) return(none,none)

19 Esercizio 1.2b che richiama cerca_studente def canc_studente_n(s,d): k, l=cerca_studente_n(s,d) if k is not None: ite=d[k] del ite[l] d[k]=ite return (d)

20 Esercizio 1.3 def insert_voto(s,d,n): k, l=cerca_studente_n(s,d) ite=[] if k is not None: ite=d[k] if type(n) == list: for i in n: ite[l][1].append(i) d[k]=ite return d elif type(n)==int: ite[l][1].append(n) d[k]=ite return d return d

21 Esercizio 2 Si definisca una funzione che preso un dizionario di studenti e voti suddivisi per lettera, restituisca un dizionario con gli studenti suddivisi per intervalli di media di voto. Nel calcolo della media la lode permette di arrotondare all intero successivo, nel caso in cui nella lista dei voti non sia presente una lode l arrotondamento é per difetto. Esempio: Studenti=(a-f):[[ Alighieri,[24,30,26], ], [[ Boccaccio,[18,22,24]], ], ( g - o ):[[Manzoni,[30,29,30]], ], ( p, z )[[ Poe,[23,30L,26]], ] Studenti_voto_medie=(18, 23): [ Boccaccio, ], (24,27):[Alighieri, Poe, ], (28-30):[ Manzioni, ]

22 Esercizio 2- calcolo medie def media_voti_studente(l): if type(l) == list: s=0 ite=l for i in ite: s=s+i return s/len(ite) return None

23 Esercizio 2 - funzione dizionario def dizionario_media(d): if type(d)==dict: dm={} k1=(18,23) k2=(24,26) k3=(27,30) dm={k1:[],k2:[], k3:[]} itero= list(d.values()) # versione 3.x itero2=list(dm.keys()) # versione 3.x for k in itero: if len(k)>0: for i in k: t=str(i[0]) media=media_voti_studente(i[1]) if media is not None: for r in itero2: if media >= r[0] and media<=r[1]: dm[r].append(t) return (dm)

24 Matrici sparse Come rappresentare una matrice sparsa? La matrice sparsa é una matrice che ha quasi tutti i valori pari a zero.

25 Rappresentazione matrice sparsa 1 Matrice = [ [0,0,0,1,0], [0,0,0,0,0], [0,2,0,0,0], [0,0,0,0,0], [0,0,0,3,0] ] 2 Matrice = {(0, 3) : 1, (2, 1) : 2, (4, 3) : 3} quindi la chiave risulta essere l indice del valore diverso da zero e il valore é il valore diverso da zero della matrice Perché scegliere la seconda implementazione?

26 Esercizi Definiamo le funzioni che implementino le operazioni di: somma moltiplicazione indipendentemente dalla rappresentazione della matrice che é stata utilizzata.

27 Esercizi Definire una funzione che preso un dizionario di studenti con i voti ad essi associati restituisca un dizionario che abbia per chiavi 4 intervalli di medie voti tali per cui la distribuzione degli studenti in questi 4 intervalli sia costante a meno di uno studente, e per valori i cognomi degli studenti appartenenti a quella media di voto.

28 Cosa abbiamo fatto? 1 2 3

Laboratorio di Python

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

Laboratorio di Python Correzione esercizi Alcuni moduli utili, Esercizi vari Università di Bologna 9 aprile 2015 Sommario Correzione esercizi 1 Correzione esercizi 2 3 4 Correzione esercizi Scrivere e documentare le funzioni

Подробнее

Laboratorio di Python

Laboratorio di Python Correzione esercizi Alcuni moduli utili, Esercizi vari Università di Bologna 4 aprile 2014 Sommario Correzione esercizi 1 Correzione esercizi 2 3 4 Esercizi Correzione esercizi Scrivere e documentare le

Подробнее

Laboratorio di Python

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

Laboratorio di Python Correzione esercizi Alcuni moduli utili, Esercizi vari Università di Bologna 10 e 12 aprile 2013 Sommario Correzione esercizi 1 Correzione esercizi 2 3 4 Esercizi Correzione esercizi Scrivere e documentare

Подробнее

laboratorio di python

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

Подробнее

Liste, dizionari e tuple

Liste, dizionari e tuple Liste, dizionari e tuple Andrea Passerini [email protected] Informatica Liste Descrizione Una lista è una sequenza di oggetti qualunque (anche di tipo diverso, anche altre liste) >>> l = ["abc",

Подробнее

Laboratorio di Python (con Linux)

Laboratorio di Python (con Linux) 8 a lezione Università di Bologna 2, 4 maggio 2012 Sommario 1 2 3 Diversi Python 2.6 vs 2.7 v.s 3.x La versione di Python installata sulle macchine del laboratorio è la 2.6 (per l esattezza 2.6.6 ). Versioni

Подробнее

Laboratorio di Python

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

Подробнее

Laboratorio di Python

Laboratorio di Python 25 marzo 2015 Sommario 1 2 Esercizi a casa Scrivere un unico programma, che attraverso un menù di selezione restituisca i risultati delle funzioni che seguono, senza uscire dal programma se non selezionando

Подробнее

Laboratorio di Python

Laboratorio di Python Laboratorio di Python Alberi binari Lab15 12 Maggio 2017 Outline Correzione esercizi per oggi Alberi binari Teoria Esercizi Esercizi per casa Saluti Esercizio 1 per casa Scrivere una funzione palindroma(s)

Подробнее

Laboratorio di Python

Laboratorio di Python Algoritmo, sulle liste Università di Bologna 3 e 5 aprile 2013 Sommario Correzione esercizi 1 Correzione esercizi 2 3 4 Correzione Correzione esercizi scrivere e documentare un programma con un menu dove:

Подробнее

Laboratorio di Python

Laboratorio di Python Laboratorio di Python Code Lab13 28 Aprile 2017 Outline Correzione esercizi per oggi Code Teoria Esercizi Esercizi per casa Esercizio 1 per casa Scrivere una funzione che determina se uno studente può

Подробнее

Programmazione in Python per la bioinformatica

Programmazione in Python per la bioinformatica per la bioinformatica University of Verona Sommario La struttura dati Lista Lista Come si rappresenta una lista in python Reminder: Lista collezione ordinata di elementi L = a 0, a 1,, a n 1 La variabile

Подробнее

Laboratorio di Python

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

Подробнее

Laboratorio di Python

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,

Подробнее

Programmi Python: esempi (in Python 3) Prof.ssa Valeria Vittorini Prof. Roberto Canonico Corso di Programmazione I a.a

Programmi Python: esempi (in Python 3) Prof.ssa Valeria Vittorini Prof. Roberto Canonico Corso di Programmazione I a.a Programmi Python: esempi (in Python 3) Prof.ssa Valeria Vittorini Prof. Roberto Canonico Corso di Programmazione I a.a. 2018-2019 Esempio #1: calcolo numeri primi Come esempio di funzione, si riporta sotto

Подробнее

Informatica 1. Prova di recupero 21 Settembre 2001

Informatica 1. Prova di recupero 21 Settembre 2001 Informatica 1 Prova di recupero 21 Settembre 2001 Si risolvano i seguenti esercizi. Ai fini della determinazione del voto finale il loro punteggio andrà sommato al punteggio del laboratorio. Il tempo complessivo

Подробнее

Menù. Esercizio sulle liste. Esercizio sulle tuple. Esercizi sui dizionari. Esercizi su classi e dizionari. Progetti

Menù. Esercizio sulle liste. Esercizio sulle tuple. Esercizi sui dizionari. Esercizi su classi e dizionari. Progetti Menù Esercizio sulle liste Esercizio sulle tuple Esercizi sui dizionari Esercizi su classi e dizionari Progetti Esercizi sulle liste 6 di 6 Realizza una funzione per la ricerca di un numero X in una matrice

Подробнее

Elementi di Base. Introduzione a Python.

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,

Подробнее

Laboratorio di Python

Laboratorio di Python , Esercizi su alberi Università di Bologna 16 maggio 2013 Sommario 1 2 Consegna non avvenuta Meno di 10 studenti hanno inviato l esercizio svolto. Definizione ricorsiva alberi binari Un albero binario

Подробнее

Laboratorio di Python

Laboratorio di Python Problem solving, Ricorsione, Università di Bologna 13 e 15 marzo 2013 Sommario 1 2 3 4 Errore di semantica Esercizio def vocali(s): voc='' for c in s: if c in 'aeiou': voc=voc+c return voc Cerchiamo di

Подробнее

Laboratorio di Python

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

Подробнее

Esercitazione 3. Espressioni booleane I comandi if-else e while

Esercitazione 3. Espressioni booleane I comandi if-else e while Esercitazione 3 Espressioni booleane I comandi if-else e while Esercizio Si consideri la seguente istruzione: if (C1) if (C2) S1; else S2; A quali delle seguenti interpretazioni corrisponde? if (C1) if

Подробнее

Funzioni e moduli. Andrea Passerini Informatica. funzioni e moduli

Funzioni e moduli. Andrea Passerini Informatica. funzioni e moduli Funzioni e moduli Andrea Passerini [email protected] Informatica Funzioni nella programmazione Descrizione Una funzione è una sequenza di istruzioni cui viene dato un nome Questo permette di riutilizzare

Подробнее

Usare Python in Linux

Usare Python in Linux 26 Febbraio 2015 Outline 1 Struttura e programma delle lezioni 2 3 Outline Struttura e programma delle lezioni 1 Struttura e programma delle lezioni 2 3 Lezione tipo Struttura e programma delle lezioni

Подробнее

Laboratorio di Informatica

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

Подробнее

Rappresentazione binaria

Rappresentazione binaria Rappresentazione binaria Per informazione intendiamo tutto quello che viene manipolato da un calcolatore: numeri (naturali, interi, reali,... ) caratteri immagini suoni programmi... La più piccola unità

Подробнее

Corso di Linguaggi di Programmazione

Corso di Linguaggi di Programmazione Corso di Linguaggi di Programmazione Lezione 5 Alberto Ceselli [email protected] Università degli Studi di Milano 12 Marzo 2013 Le funzioni sono oggetti di prima classe in Scheme In Scheme le funzioni

Подробнее

Esercizi su Scratch. Esegui la Somma e il Prodotto dei numeri inseriti in Input fino a che non inserisco la vocale e.

Esercizi su Scratch. Esegui la Somma e il Prodotto dei numeri inseriti in Input fino a che non inserisco la vocale e. Esercizi su Scratch Esercizio 1: Indovina il numero Il computer pensa un numero compreso tra uno e 100 e tu lo devi indovinare. Prevedi un avviso che indichi se il Tuo numero è più grande o più piccolo.

Подробнее

Laboratorio di Python

Laboratorio di Python Laboratorio di Python Iterazione determinata Lab05 17 Marzo 2017 Variazione data laboratorio! Mercoledì 22 marzo ci sarà laboratorio Mercoledì 3 maggio non ci sarà laboratorio (si terrà lezione regolare)

Подробнее

Pensiero computazionale. Lezione 4 Liste

Pensiero computazionale. Lezione 4 Liste Pensiero computazionale Lezione 4 Liste Cos è una lista Una lista è una variabile che può contenere più valori, selezionabili tramite un indice daylist Sunday Monday Tuesday List name Item 1 of daylist

Подробнее

Laboratorio di Python (con Linux)

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ù

Подробнее

Introduzione a Python e Gurobi

Introduzione a Python e Gurobi Introduzione a Python e Gurobi Introduzione Python è un linguaggio di programmazione ad alto livello, rilasciato pubblicamente per la prima volta nel 1991 dal suo creatore Guido van Rossum, programmatore

Подробнее

Dati aggregati. Violetta Lonati

Dati aggregati. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica - in breve: Definizione di tipi Array Stringhe Strutture

Подробнее

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione Lezione VI Tatiana Zolo [email protected] 1 Dichiarazione (forma generale): LE STRUCT struct nome_struttura { tipo var1; tipo var2;... tipo vark; } variabili_struttura; (soltanto

Подробнее

Università degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Stringhe. Anno Accademico 2010/2011 Francesco Tortorella

Università degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Stringhe. Anno Accademico 2010/2011 Francesco Tortorella Corso di Informatica Tipi strutturati: Stringhe Anno Accademico 2010/2011 Francesco Tortorella Stringhe di caratteri La stringa è il tipo strutturato con cui vengono rappresentati gruppi di caratteri quali

Подробнее

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Il concetto di dato Il concetto di tipo di dato Insertion Sort for j 2 to lenght[a]

Подробнее