Laboratorio di Python

Похожие документы
I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002

IL CONCETTO DI FILE. È illecito operare oltre la fine del file.

Gestione di files Motivazioni

PYTHON CHEAT SHEET. Rapido documentazione di consultazione per istruzioni, funzioni e tipi in Python. #stampa le variabili x e y

Esercizi Python. Corso di Bioinformatica 2012

Lezione 6 Le pile. Informatica. 28 Aprile 2016

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

Fondamenti di Programmazione

un file in formato FASTA contenente un elenco di sequenze una espressione regolare una indicazione se si tratta di DNA,RNA,proteine

Introduzione al Python

CAPITOLO V. DATABASE: Il modello relazionale

Python. Valerio Perticone

esercizi Esercizi / problemi

Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria p. 1

L utility Unix awk [Aho-Weinberger-Kernighan]

Calcolare il massimo di una lista

I file di dati. Unità didattica D1 1

Laboratorio di Algoritmi e Strutture Dati II Semestre 2005/2006. Ordinamenti: mergesort e quicksort

Input/output in C e in C++

PARTE III MACCHINE A REGISTRI

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

ISTRUZIONI VELOCI DI PYTHON Versione (manuale realizzato con Google Documenti)

Pila di interi. Car 1. Car n. Pila di interi: Pila di Oggetti: Gli elementi che sono inseriti e tolti dalla pila sono numeri interi

La ricorsione. Politecnico di Milano Sede di Cremona

Programmazione Orientata agli Oggetti in Linguaggio Java

Una funzione è detta ricorsiva se chiama, direttamente o indirettamente, se stessa. In C tutte le funzioni possono essere usate ricorsivamente.

Files in C++ Fondamenti di Informatica. R. Basili. a.a

Introduzione all' OO in Python

Java Native Interface Appunti

4 Le liste collegate 4.0. Le liste collegate. 4 Le liste collegate Rappresentazione di liste 4.1 Rappresentazione di liste

3. La sintassi di Java

Fondamenti di Programmazione

Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.

PROGRAMMA DI SCIENZE E TECNOLOGIE APPLICATE 2015/2016 Classe 2ª Sez. C Tecnologico

Algoritmi di Ricerca. Esempi di programmi Java

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

La selezione binaria

Programmazione dinamica

OTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C

AA LA RICORSIONE

SEQUENZE DI NUMERI PSEUDO- CASUALI

Edmondo Giovannozzi Introduzione a Python.

Esame di Informatica Generale 25 giugno 2010 Professori: Carulli, Fiorino, Mazzei

L algoritmo di ricerca binaria. Daniele Varin LS Ing. Informatica Corso di Informatica teorica Docente: prof. Paolo Sipala

PHP. Indice. PHP: Hypertext Preprocessor. Introduzione Sintassi Fondamentale Tipi Variabili Costanti Operatori Strutture di controllo

Manuale Utente per la Gestione dei Revisori degli Enti Locali

3. Terza esercitazione autoguidata: progetto gestione voli

Funzioni matlab per la gestione dei file. Informatica B Prof. Morzenti

3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette.

Gestione dei File. dischi nastri cd

BOZZA. cin per la comunicazione dal dispositivo di input standard, la tastiera, al programma (stream di input standard)

Basi di dati (6) Docente: Andrea Bulgarelli. Università di Modena e Reggio Emilia. andrea.bulgarelli@gmail.com Argomento: T-SQL (1.

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

PROGETTAZIONE DISCIPLINARE MATEMATICA classe 2^

Grafici tridimensionali

OBIETTIVI SPECIFICI DI APPRENDIMENTO a. Conoscere l ambiente laboratorio informatico

Informatica Teorica. Macchine a registri

TECNICHE AVANZATE DI I/O. Al loro livello più basso, tutti i file scritti sull hard disk. Training per esperti SU FILE

Compito di Fondamenti di Informatica

WINDOWS Avviare Windows95. Avviare Windows95 non è un problema: parte. automaticamente all accensione del computer. 2. Barra delle applicazioni

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Laboratorio di Informatica

Generazione di Numeri Casuali- Parte 2

Esercitazione Dicembre 2010 (2 ore)

RSA. Chiavi RSA. Firma Digitale. Firma Digitale. Firma Digitale. Desiderata per la Firma Digitale. Corso di Sicurezza su Reti 1

Comandi di Input/Output in Matlab

Vettori Algoritmi elementari di ordinamento

Ottava Esercitazione. introduzione ai thread java mutua esclusione

Matlab: Gestione avanzata dei file

Lab 11 Gestione file di testo"

Gestione dei File in C

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007

DESCRIZIONE CREAZIONE APP Si suddivide in 4 fasi di lavoro: 1. PIANIFICAZIONE; 2. PROGETTAZIONE; 3. SVILUPPO; 4. DISTRIBUZIONE.

Rudimenti di Python. senza rodimenti di Python

Input ed output su file

Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona

COMPITO DI LABORATORIO DI PROGRAMMAZIONE Luglio Soluzione degli Esercizi

PHP e MySQL. Guida scaricata da

Sistemi Operativi Anno Accademico 2011/2012. Segnali: Interrupt software per la gestione di eventi asincroni

Lezione 4 Le code. Informatica. 26 Aprile Le pizze devono essere preparate e consegnate seguendo l ordine di arrivo degli ordini

2) FILE BINARI: è una sequenza di byte avente una corrispondenza uno a uno con la sequenza ricevuta dal dispositivo esterno.

Visualizzazione grafica. dell'output di un programma con GNUplot

Транскрипт:

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 funzioni che risolvano i seguenti problemi: 1 Definire una funzione che presa una sequenza come parametro restituisca il valore della media geometrica di tale sequenza 2 Definire una funzione che prese due sequenze come parametro ne restituisca l unione, l intersezione, la differenza e il prodotto cartesiano. 3 Definire una funzione che presa un sequenza mi restituisca tutti i possibili suffissi di tale sequenza (es. (1,4,3) (), (3,), (4,3), (1,4,3)) usare l iterazione e la ricorsione 4 Definire una funzione che presa un sequenza e un parametro intero mi restituisca tutti i possibili suffissi di tale sequenza fino alla lunghezza definita dal parametro intero (es. preso (1,4,3), 1 (), (3,)) usare l iterazione e la ricorsione

Correzione esercizi Media geometrica def Geomedia(T): if type(t)!=tuple: #controllo delle tuple return 'Non \`e stata inserita una tupla' for I in T: if type(i)!=int and type(i)!=float: return 'Nella tupla ci sono elementi che non sono numeri' A=1 for I in T: A=A*I #calcolo media geometrica M=A**(1/len(T)) print('la media geometrica \`e:') return M Se richiamo la funzione con questa tupla ()?

Suffissi Correzione esercizi def suffissi_i(): s=eval(input('inserire sequenza ')) k=int(input('inserire l\'indice ')) r=s[::-1] R=r[0:k] I=[] print(i) for i in R: I=I+[i] print(i[::-1]) Cos è sbagliato?

Suffissi Correzione esercizi def suffissi(s,n): suff=() if n==0: return () else: for i in range(len(s)-n,len(s)): suff=suff+(s[i],) return suff,suffissi(suff,n-1) def funzione(t,m): if type(t)!=tuple or type(m)!=int or m<0 or m>=len(t): return 'errore' else: print(suffissi(t,m)) Cos è sbagliato?

Correzione esercizi Suffissi Ricorsivo def suffissi(s): if len(s)==0: return ((),) else: return suffissi(s[1:])+(s,)

Correzione esercizi Modulo random 1 import random 2 random.random() (numero casuale tra 0.0 e 1.0) 3 random.uniform(a, b) (numero float casuale tra a e b) 4 random.randint(n, m) (intero casuale tra n e m, estremi inclusi) 5 random.randrange(n, m, k) (intero casuale in range(n,m,k)) 6 random.choice(s) (sceglie a caso un elemento da una sequenza s) 7 random.sample(s,n) (estrazione casuale senza reinserimento di n elementi da una sequenza s) Maggiori informazioni: http://docs.python.org/library/random.html.

Correzione esercizi Manipolazione stringhe Il tipo str ha dei metodi interessanti come split e splitlines. 1 line= Il mio cane si chiama Fido. 2 line.split() [= [ Il, mio, cane, si, chiama, Fido. ]] 3 text= Mary had a little lamb, Its fleece was white as snow; And everywhere that Mary went, The lamb was sure to go. 4 text.splitlines() [=[ Mary had a little lamb,, Its fleece was white as snow;, And everywhere that Mary went,, The lamb was sure to go. ]] Vedi anche http://docs.python.org/library/ stdtypes.html#string-methods.

Leggere file Correzione esercizi Python ha un tipo di dato File, completo di una serie di metodi. 1 f = open(./esempio.py, r ) # apre il file./esempio.py in lettura (r=read); 2 lines = f.readlines() # contiene la lista di tutte le righe del file. f.close() richiamo il metodo close sull oggetto f. È importante chiudere il file una volta aperto. Per i più curiosi, altre informazioni su http://docs.python. org/library/stdtypes.html#file-objects.

Scrivere su file Correzione esercizi fo=file('prova.txt', 'w') fo.write('primo file di testo:\n\n') fo.write('terza riga,\n') fo.write('quarta riga riga,\n') fo.write('fine del file.') fo.close() 1 fo = open( prova.txt, w ) apro il file prova in scrittura, se non esiste lo crea. fo ora è un istanza della classe file. (fo oggetto) 2 fo.write( Primo file di testo: n n ) richiamo il metodo write col testo che desidero scrivere (Primo file di testo: n n) della classe file al mio oggetto fo. 3 fo.close() richiamo il metodo close sull oggetto fo.

Esercizio Correzione esercizi 1 Scrivere una funzione che dato il nome di un file scelga casualmente una parola presente in tale file.

Correzione esercizi Scompongo l esercizio in sotto-problemi 1 Scrivere una funzione che apra un file e restituisca tale file come una lista. 2 Scrivere una funzione che presa una stringa elimini alcuni caratteri speciali e restituisca la stringa pulita. 3 Scrivere una funzione che data una stringa definisca se questa è una parola (si definisce parola una concatenazione di sole lettere.) 4 Scrivere una funzione che data una lista di stringhe restituisca la lista delle sole parole distinte presenti tra le stringhe. 5 Scrivere una funzione che dato un file restituisca casualmente una parola appartenente al file

Correzione esercizi Apri il file; Elimina punteggiatura import random import string def openfile(nome): f=open(nome,'r') r=f.readlines() f.close() return r def eliminapunteggiatura(s): #elimino la punteggiatura nella parola s=s.lstrip("`'.,;:!?"+'"''}''-').rstrip("`'.,;:!?"+'"''}') return s

Correzione esercizi Riconosco se è parola def def_parola(s): def_parola=true for i in range(len(s)): if not(s[i] in string.letters): def_parola=false break else: def_parola=true return def_parola

Correzione esercizi Dalla lista di stringhe alla lista di parole def suddivido_parole(r): #data una lista di stringhe prende solo le parole w=[] #variabile per la lista delle parole for line in r: #per ogni riga del file for s in line.split(): #per ogni stringa s=eliminapunteggiatura(s) parola=def_parola(s) #verifico se e parola if (s not in w) and parola: w.append(s) return w

Correzione esercizi Estrazione casuale di una parola da un file def random_word_from_file(nome): return random.choice(suddivido_parole(openfile(nome)))

Esercizio Correzione esercizi Scrivere una funzione che stampi la lista delle linee contenute nel file dove è salvata la funzione stessa. Cos è un programma? Sapreste spiegare come funziona questa funzione?

Correzione esercizi Matrici diagonali Quale può essere una buona struttura dati per la memorizzazione e l implementazione delle operazioni con le matrici diagonali? Una matrice diagonale è una matrice quadrata in cui solamente i valori della diagonale principale possono essere diversi da 0.

Soluzione Correzione esercizi 1 Matrice = [ [1,0,0], [0,2,0], [0,0,4] ] 2 Matrice = [1,2,4] Perchè scegliere la seconda rappresentazione?

Esercizio Correzione esercizi Definiamo le funzioni che implementino le operazioni di: 1 somma 2 moltiplicazione tra matrici diagonali. Definire le funzioni che data una matrice diagonale ne calcoli il: 1 determinante 2 la matrice inversa

Esercizio Correzione esercizi Definiamo le funzioni che implementino le operazioni di: 1 somma 2 moltiplicazione indipendentemente dalla rappresentazione della matrice che è utilizzata.

Esercizi Correzione esercizi Scrivere e documentare le funzioni che risolvano i seguenti problemi: 1 Definire una funzione che presa una sequenza come parametro restituisca il numero dei valori appartenenti a tale sequenza e che soddisfano una determinata caratteristica. Ad esempio una caratteristica potrebbe essere la definizione di elemento valle: un elemento appartenente a una determinata sequenza si definisce valle se s[i] <s[i-1] e s[i]<s[i+1]. Data una sequenza quanti elementi valle sono presenti in tale sequenza? 2 Scrivere una funzione che presi due file copi il primo nel secondo file. 3 Scrivere una funzione che simuli l estrazione del lotto, tale funzione deve scrivere su un file il risultato dell estrazione. Inviate gli esercizi svolti a: labinfo.mat.unibo@gmail.com

Correzione esercizi Cosa abbiamo fatto? 1 Correzione esercizi 2 3 4