Tags:
tag this topic
create new tag
view all tags
---+ Diario delle lezioni - Canale MZ (Monti) * mar 24 set: Organizzazione del corso e modalità d'esame. Linguaggi compilati e linguaggi interpretati. Python in modalità interattiva. Espressioni aritmetiche *+ - * / // % *** . Tipi int e float. creazione e cancellazione di variabili, assegnamenti multipli. Errori. * ven 27 set: funzioni built-in, ad esempio: input, output, int, float round , help, dir, moduli e funzioni di libreria ad esempio in math factorial e sqrt, funzioni definite dall'utente. Parametri, parametri opzionali. * mar 01 ott: i moduli random e time, esempi di funzioni definite dall'utente. Il costrutto if . Differenza di notazione tra funzioni e metodi. * ven 04 ott: operatori relazionali, and or e not. If..else, if.. elif..elif. while, esercizi * mar 08 ott.: il costrutto for, la funzione range, la funzione reversed, le liste, inserimento e cancellazione da liste, funzioni per liste: min , max, sum, len, metodi per liste, append, pop , insert, remove. ncora su funzioni e metodi: il metodo sort e la funzione sorted. Esercizi: una funzione che determina se un numero e primo o meno, una funzione (che non utilizza il metodo sort ne la funzione sorted ) che data una lista restituisce la lista ordinata. * ven 11 ott.: for annidati, esempio: scrivere una funzione che stampi a terminale le tabelline da 1 a 10. Gli alias, la funzione id. Tipi mutabili e tipi immutabili. il metodo copy per le liste. Le sottoliste tramite le slice. Due modi di scorrere una lista: iterando sui suoi elementi o iterando sulle posizioni. Esempio: scrivere una funzione che data una lista la modifica distruttivamente cancellandone gli elementi di tipo intero e restituisce il numero di elementi cancellati. * mar 14 ott: La valutazione "pigra di espressioni booleane da parte di python. * il tipo immutabile stringa. Concatenare due stringhe. Ottenere sottostringhe tramite slice (fette). Metodi di stringhe, ad esempio: * isalpha(), isdigit(), is alnum(), isupper(), .... * upper(), lower(), capitalize().. * strip(), rjust(), ljust() * find(), replace() * trasformare stringhe il liste e liste di stringhe in stringhe, i metodi split() e joint() e le funzioni list() e str() * esercizio: progettare una funzione che data una stringa restituisce il reverse della stringa. * il tipo mutabile insieme. Inserire, cancellare e ricercare in un insieme sono operazioni che hanno tempi di calcolo ridotti rispetto alle analoghe operazioni su liste dove bisogna assicurare l'ordine. Metodi di insiemi, ad esempio * isdisjoint(), issubset() * add(), remove(), pop() * union (&), intersection(|), difference (-) * ven 18 ott: utilizzo del grader all'interno di spyder esempio con una vecchia prova d'esame. I programmi per testare e per calcolare la complessita' ciclomatica dei programmi python * pytest ( i parametri --timeout e --durations) * radon cc ( il parametro -s ) * esercizi sugli insiemi: funzione che conta gli elementi distinti presenti in una lista funzione che cancella da una lista i duplicati. * Il tipo immutabile tupla e suoi utilizzi ( ad esempio per freezare tipi mutabili prima di inserirli all'interno di insiemi o per gestire le risposte di funzioni che restituiscono più valori). * mar 22 ott: la funzione sorted e il metodo sort e il parametro opzionale key, le funzioni anonime (le lambda funzioni). Il tipo mutabile dizionaro, le chiavi e gli attributi. Funzioni applicate a dizionari len(), sum() sorted(), max(). Inserire, cancellare, cercare in un dizionario. I metodi values() e items() Esercizi: dato un testo costruire un dizionario avente per chiave i caratteri del testo e per attributi le loro frequenze. dato il dizionario precedente costruire il dizionario inverso dove le chiavi sono le frequenze e gli attributi l'insieme di caratteri che hanno quell'attributo. I tipi immutabili e le chiavi di un dizionario . * ven 25 ott: inizializzare liste con l'operatore * e con le funzioni list e range. La list comprehention. Esempi per creare liste, insiemi e dizionari: * [x**3 for x in range(10)] * [x for x in range(100) if x%5==0 or x%3==0] * ['dispari' if x%2 else 'pari' for x in lista1 ] dove lista1 contiene interi * [x[0] if len(x)%2 else x[-1] for x in lista1 if type(x)==str] dove lista1 contiene elementi non necessariamente di tipo stringa * {(x,y) for x in 'aeiou' for y in 'aeiou' if x!=y} * {chr(x):0 for x in range(ord('a'),ord('z')+1)} dopo aver spiegato le due funzioni built in ord() e char() 1 come python valuta i test if lista:, if stringa; if x+y ecc.ecc. 1 accenni sull'organizzazione ad albero dello spazio di memoria. Il modulo os con istruzioni per navigare tra le cartelle e come esempi le funzioni listdir() e getcwd() * mar29 ott. Ancora sulla gestione della memoria esterna. L'organizzazione ad albero tramite cartelle altre funzioni messe a disposizione nel modulo os e os.path: isfilee(), isdir, splittext(). * la funzione open e i suoi parametri, le variabili di tipo file, i metodi write(), read(), close(). iterare su un file. Il costrutto with. * ven 2 nov. FESTA * mar 5 nov. SOSPENSIONE DELLA DIDATTICA PER PROVA INTERMEDIE * ven 8 nov. SOSPENSIONE DELLA DIDATTICA PER PROVA INTERMEDIE * mar 12 nov: liste di liste per gestire matrici. Esempi di funzioni su matrici: somma di matrici, trasposta di matrice, prodotto di matrici. Rappresentazione di colori tramite tuple (RGB). Lista di liste di tuple per lavorare su immagini. Il modulo immagini: funzione load() che prende da disco una foto in formato png e produce in memoria l'immagine corrispondente in formato lista di liste di tuple. La funzione save() che prende una immagine in formato lista di liste di tuple e la salva su disco in formato png. Esempi di funzioni che lavorano su immagini: * crea(h,w,c) che restituisce un'immagine di dimensione h x w monocromatica di colore c * ruota1(img) che restituisce copia dell'immagine img ruotata rispetto all'asse verticale * ruota2(img) che restituisce copia dell'immagine img dove sono state scambiate righe con colonne * bordo(img, s, c) che restituisce copia dell'immagine img orlata con una cornice di spessore s e colore c * quadrato1(img, y,x, l, col) che restituisce copia img1 dell'immagine img con sopra disegnato un quadtrato di lore col e lato l il cui vertice in alto a sinistra e' img1[y][x] * inverti(img) che restituisce copia img1 dell'immagine img dove i colori originari risultano invertiti ( vale a dire img1[ i][j]=(255- img[i][j][0], 255- img[i][j][1], 255- img[i][j][2] ) * grigio(img) che restituisce copia img1 in scala di grigio dell'immagine img (vale a direimg1[i][j]=(c,c,c ) dove c=round(sum(img[i][j])/3) * * la cartellina con le funzioni viste a lezione ed il modulo immagini (contenente le funzioni load e save: [[%ATTACHURL%/foto.zip][foto.zip]] * ven 15 nov. programmazione orientata agli oggetti. Le classi in python: * class come costruttore di oggetti * come creare oggetti una volta definita la classe. Gli attributi degli oggetti da non confondere con gli attributi della classe. L'attributo __dict__ * come definire i metodi di una classe, la convenzione della variabile self. * I metodi dunder 'dunder' * l'inizializzatore __init__() * __str__() utile per stampare * mar 17 nov. * il modulo copy con le funzioni copy() e deepcopy() * Ordinare liste di oggetti, classi e metodi dunder __eq__, __lt__ * python e le eccezioni. Il costrutto Try: ...except: .... per gestire le eccezioni e per velocizzare programmi. * variabili locali, variabili globali e variabili non locali. * Funzioni ricorsive: * la ricorsione infinita. Il modulo sys, le funzioni sys.getrecursionlimit(), sys.setrecursionlimit() * esempi elementari di funzioni ricorsive: Funzione che data una lista ne stampa gli elementi. Funzione che data una lista ne stampa gli elementi a partire dall'ultimo. * ven 22 nov. differenza tra attributi di classe e attributi di oggetti. Esempi. Esempi di programmi ricorsivi: * scrivere una funzione ricorsiva che data una lista di interi (positivi, negativi o nulli) restituisce la tupla(a,b) dove a è il numero di positivi presenti in lista e b il numero di negativi presenti in lista. * scrivere una funzione ricorsiva che data una stringa restituisce vero o falso a seconda che la stringa sia palindroma o meno * scrivere una funzione ricorsiva che dato un intero non negativo n restituisc euna lista contenente tute le stringhe binarie di n bit . * martedi 26 nov. esercizi ricorsivi: * scrivere una funzione ricorsiva che dato un intero n restituisce la somma delle cifre di n. * scrivere una funzione ricorsiva che data una stringa s di cratteri distinti restituisce la lista con tutte le stringhe che sono permutazione dei caratteri di s. * modificare la funzione ricorsiva precedente in modo che data una stringa s non necessariamente di caratteri distinti restituisce la lista con tutti gli anagrammi di s. * scrivere una funzione ricorsiva che dato l'indirizzo p di una cartella restituisce il numero di file presenti nella cartella e nelle sue sottocartelle. * scrivere una funzione ricorsiva che dato l'indirizzo p di una cartella e una stringa ext restituisce il numeor di file con estenzione ext contenuti nella cartella p e nelle sue sottocartelle. * Alberi binari e definizione dei loro nodi con la classe Nodo. * scrivere una funzione es(n,m) che restituisce la radice di un albero binario casuale con n nodi definiti dalla classe Nodo e con ciascun nodo avente per valore un intero tra 1 e m. * scrivere una funzione che data la radice di un albero binario con nodi della classe Nodo restituisc eil numero di nodi dell'albero. * venerdi 29 nov. * i file json e le funzioni dump() e load() * Esercizi ricorsivi: * ricerca binaria in una lista di interi ordinata. Versione ricorsiva e versione iterativa. * Alberi con numero di figli arbitrario e definizione dei loro nodi con la classe Nodo. * scrivere una funzione es(n,m) che restituisce la radice di un albero casuale con n nodi definiti dalla classe Nodo ( ogni nodo può dunque avere un numero arbitrario di figli) e il valore di ogni nodo è un intero casuale tra 1 e m. * Alberi di gioco e spiegazione sulla traccia dell'HW7.opz ricorsivo * martedi 3 dic. * Esercizi ricorsivi su alberi e non: * funzione che dato n ne calcola il fattoriale * funzine che dato n calcola l'ennesima riga del triangolo di Tartaglia (rappresentta tramite lista) * funzione che data la radice di un albero (rappresentato tramite noti con attributo valore e attributo lista dei figli) ne calcola: * il numero di nodi * il numero di foglie * l'altezza * l'insieme dei valori dei nodi * il dizionario con la frequenza dei valori (nel dizionario ci sono i valori che compaiono nei nodi dell'albero e per ogni valore l'attributo e' il numero di volte che occorre) * il dizionario con la frequenza dei gradi ( nel dizionario sono i gradi che hanno i nodi dell'albero e per ogni grado l'attributo e' il numeor di nodi dell'albero che hanno quel grado) * venerdi 5 dic. * Esercizi su immagini: * funzione che dato l'indirizzo di una immagine .png contenente su sfondo nero linee verticali rosse disgiunte restituisce il numero di queste linee verticali * Esercizi du alberi: * funzione che dato un albero e un intero k restituisce i valori dei nodi che nell'albero si trovano a livello k * funzione che dato un albero ne produce una copia "vera" senza utilizzare le funzioni presenti nel modulo copy * richiami sulla differenza tra le funzioni copy e deepcopy * martedi 10 dic. * Esercizi su immagini: * funzione che dato l'indirizzo di una immagine .png contenente su sfondo nero spezzate (vale a dire sequenze contingue di segmenti orizzontali e verticali) che non si incrociano restituisce il numero di spezzate * Esecrizi su alberi: * funzione che dato un albero cancella da questo tutti i nodi che compaiono nelle liste dei figli dei suoi nodi in posizione dispari. * Esercizi ricorsivi: * dati n dati l'esito di un lancio e' la somma dei valori ottenuti per ciascun dato. Progettare una funzione che dato n restituisca i possibili esiti del lancio d n dadi colorati con diversi colori e per ciascun esito il numero di modi in cui puo' presentarsi. Più precisamente va restituito un dizionario che ha per chiave gli esiti e per attributo il numero di modi in cui puo' presentarsi quell'esito. * progettare una funzione che dato un insieme di stringhe ed un intero k restituisce l'insieme delle stringhe che si possono ottenere concatenando k stringhe dell'insieme iniziale (una stessa stringa puo' essere utilizzata anche piu' volte nella concatenazione) * venerdi 13 dic. SOSPENSIONE DELLA DIDATTICA PER ALLERTA METEO * martedi 17 dic. * Esercizi su stringhe e tuple: * funzione che date due stringhe verifica se una e' ottenuta dalla rotazione dell'altra * funzione che data una stringa produce la lista di tutte le sottostringhe che iniziano e finiscono con uno stesso simbolo. Le stringhe nella lista devono risultare ordinate per per lunghezza crescente e a parità lessicograficamente. * funzione che data una tupla ed un intero k restituisce una lista con tutte le tuple suffisso di lunghezza al più k. * Esercizi du alberi: * progettare una funzione RICORSIVA che data la radice di un albero binario ed una stringa percorso (stringa binaria con S o D a indicare se nel percorso si scende al figlio sinistro o al figlio destro) restituisce None se nell'albero non c'e' un nodo corrispondente a ul percorso, il valore del nodo altrimenti. * progettare una funzione ITERATIVA per il problema al punto precedente. * Esercizi sui file di testo. * progettare una funzione che prende l'indirizzo di un file di testo contenente parole (una per ogni riga del file) e modifica il file sostituendo ciascuna arola con una terna di interi (a,b,c) dove a e' la lunghezza della parola, b il numero di volcali presenti nella parola e c il numoero di maiuscole presenti nella parola.
Attachments
Attachments
Topic attachments
I
Attachment
History
Action
Size
Date
Who
Comment
zip
foto.zip
r1
manage
1260.8 K
2019-11-12 - 14:42
AngeloMonti
file con program.py con esercizi sulle immagini
E
dit
|
A
ttach
|
Watch
|
P
rint version
|
H
istory
: r24
<
r23
<
r22
<
r21
<
r20
|
B
acklinks
|
V
iew topic
|
Ra
w
edit
|
M
ore topic actions
Topic revision: r24 - 2019-12-17
-
AngeloMonti
Log In
or
Register
Programmazione1/AA19_20 Web
Create New Topic
Index
Search
Changes
Notifications
RSS Feed
Statistics
Preferences
Prenotazioni esami
Laurea Triennale ...
Laurea Triennale
Algebra
Algoritmi
Introduzione agli algoritmi
Algoritmi 1
Algoritmi 2
Algoritmi per la
visualizzazione
Architetture
Prog. sist. digitali
Architetture 2
Basi di Dati
Basi di Dati 1 Inf.
Basi di Dati 1 T.I.
Basi di Dati (I modulo, A-L)
Basi di Dati (I modulo, M-Z)
Basi di Dati 2
Calcolo
Calcolo differenziale
Calcolo integrale
Calcolo delle Probabilitą
Metodi mat. per l'inf. (ex. Logica)
canale AD
canale PZ
Programmazione
Fond. di Programmazione
Metodologie di Programmazione
Prog. di sistemi multicore
Programmazione 2
AD
EO
PZ
Esercitazioni Prog. 2
Lab. Prog. AD
Lab. Prog. EO
Lab. Prog. 2
Prog. a Oggetti
Reti
Arch. di internet
Lab. di prog. di rete
Programmazione Web
Reti di elaboratori
Sistemi operativi
Sistemi Operativi (12 CFU)
Anni precedenti
Sistemi operativi 1
Sistemi operativi 2
Lab. SO 1
Lab. SO 2
Altri corsi
Automi, Calcolabilitą
e Complessitą
Apprendimento Automatico
Economia Aziendale
Elaborazione Immagini
Fisica 2
Grafica 3D
Informatica Giuridica
Laboratorio di Sistemi Interattivi
Linguaggi di Programmazione 3° anno Matematica
Linguaggi e Compilatori
Sistemi Informativi
Tecniche di Sicurezza dei Sistemi
ACSAI ...
ACSAI
Computer Architectures 1
Programming
Laurea Magistrale ...
Laurea Magistrale
Percorsi di studio
Corsi
Algoritmi Avanzati
Algoritmica
Algoritmi e Strutture Dati
Algoritmi per le reti
Architetture degli elaboratori 3
Architetture avanzate e parallele
Autonomous Networking
Big Data Computing
Business Intelligence
Calcolo Intensivo
Complessitą
Computer Systems and Programming
Concurrent Systems
Crittografia
Elaborazione del Linguaggio Naturale
Estrazione inf. dal web
Fisica 3
Gamification Lab
Information Systems
Ingegneria degli Algoritmi
Interazione Multi Modale
Metodi Formali per il Software
Methods in Computer Science Education: Analysis
Methods in Computer Science Education: Design
Prestazioni dei Sistemi di Rete
Prog. avanzata
Internet of Things
Sistemi Centrali
Reti Wireless
Sistemi Biometrici
Sistemi Distribuiti
Sistemi Informativi Geografici
Sistemi operativi 3
Tecniche di Sicurezza basate sui Linguaggi
Teoria della
Dimostrazione
Verifica del software
Visione artificiale
Attivitą complementari
Biologia Computazionale
Design and development of embedded systems for the Internet of Things
Lego Lab
Logic Programming
Pietre miliari della scienza
Prog. di processori multicore
Sistemi per l'interazione locale e remota
Laboratorio di Cyber-Security
Verifica e Validazione di Software Embedded
Altri Webs ...
Altri Webs
Dottorandi
Commissioni
Comm. Didattica
Comm. Didattica_r
Comm. Dottorato
Comm. Erasmus
Comm. Finanziamenti
Comm. Scientifica
Comm Scientifica_r
Corsi esterni
Sistemi Operativi (Matematica)
Perl e Bioperl
ECDL
Fondamenti 1
(NETTUNO)
Tecniche della Programmazione 1° modulo
(NETTUNO)
Seminars in Artificial Intelligence and Robotics: Natural Language Processing
Informatica generale
Primo canale
Secondo canale
II canale A.A. 10-11
Informatica
Informatica per Statistica
Laboratorio di Strumentazione Elettronica e Informatica
Progetti
Nemo
Quis
Remus
TWiki ...
TWiki
Tutto su TWiki
Users
Main
Sandbox
Home
Site map
AA web
AAP web
ACSAI web
AA2021 web
Programming web
AA2021 web
AN web
ASD web
Algebra web
AL web
AA1112 web
AA1213 web
AA1920 web
AA2021 web
MZ web
AA1112 web
AA1213 web
AA1112 web
AA1314 web
AA1415 web
AA1516 web
AA1617 web
AA1819 web
Old web
Algo_par_dis web
Algoreti web
More...
AA19_20 Web
Create New Topic
Index
Search
Changes
Notifications
RSS Feed
Statistics
Preferences
View
Raw View
Print version
Find backlinks
History
More topic actions
Edit
Raw edit
Attach file or image
Edit topic preference settings
Set new parent
More topic actions
Account
Log In
Register User
Questo sito usa cookies, usandolo ne accettate la presenza. (
CookiePolicy
)
Torna al
Dipartimento di Informatica
E
dit
A
ttach
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback