








Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Sono presenti alcuni esercizi svolti su python
Tipologia: Schemi e mappe concettuali
1 / 14
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!









Appunti informatica 10 esercizi di riepilogo 3 esercizi su coderunner 3 esercizi simulazione esame Esercizi su codegrind Cerca altre simulazioni esame Come concatenare due stringhe: si utilizza l’operatore “ + “ stringa_1 = 'ciao' stringa_2 = 'mondo' stringa_concatenata = stringa_1 + stringa_ print(stringa_concatenata) Come stampare gli ultimi due caratteri della stringa frase = 'ciao' print (frase [2:4] ) Come stampare solo metà frase frase = 'ciao come stai' meta_frase = int (len(frase)/2) print(frase[0:meta_frase]) Come stampare da metà frase fino alla fine print( frase[meta_frase:] ) Per fare una potenza usa la funzione Pow(base, esponente, mod) Numero pari : il resto della divisione di quel numero con due è pari a zero Numero dispari: il resto della divisione di quel numero con due è pari a uno Numero non pari: resto della divisione di quel numero con due è != (diverso) da zero Esempio di LISTA lista = [1,2,3,6,9] Esempio di TUPLA Le tuple sono elementi sequenziali costituiti da una concatenazione di valori di qualsiasi tipo, ognuno memorizzato per posizione tupla_di_stringhe = ('ciao', 'leti', 'casetta')
Esempio di DIZIONARIO I dizionari vengono definiti elencando tra parentesi graffe ({}) una serie di elementi separati da virgole (,), dove ogni elemento è formato da una chiave e un valore separati dai due punti (:). dizionario = {'chiave 1': 10, 'chiave 2': 7, 'chiave 3': 5} Esempio di SET i set sono una collezione non ordinata di elementi senza ripetizioni. I set possono essere visti come dizionari di sole chiavi numeri_set = {1,2,3,4,5,6} FUNZIONI ESEMPI
def somma_elementi(L): somma = 0 for i in range(len(L)): somma += i return somma lista = [1, 2, 3] print(somma_elementi(lista))
def restitusci_cambio_segno(L): contatore_cambio_segno = 0 for i in range(len(L) - 1): if (L[i] < 0 and L[i + 1] >= 0) or (L[i] >= 0 and L[i + 1] < 0): contatore_cambio_segno += 1 return contatore_cambio_segno print(restitusci_cambio_segno([2, 1, -1, -3, -4, 7, 12, -1]))
2. Si consideri un dizionario d che associa alle cifre da 1 a 7 (che rappresentano i giorni della settimana) una lista di stringhe (che rappresentano le attività svolte in un dato giorno). Scrivere in Python una funzione che, dato in ingresso il dizionario, restituisca il giorno (valore da 1 a 7) che contiene il numero massimo di attività. Ad esempio, se d = {1: ['lavoro', 'tennis'], 2: ['spesa', 'meccanico', 'lavoro'], 4: ['concerto']} la funzione deve restituire 2 perché il giorno 2 contiene 3 attività. Nota: in caso di dizionario vuoto, la funzione deve restituire 0. def restitusici_chiave(d): if not d: return 0 max_giorno = 0 max_attività = 0 for giorno, attività in d.items(): if len(attività) > max_attività: max_attività = len(attività) max_giorno = giorno return max_giorno Scrivo Len(L) -1 perché devo fermarmi al penultimo elemento della L[i] è l’elemento corrispondente a ogni indice L[i + 1] è il SUCCESSIVO giorno_max terrà traccia del giorno con il massimo numero di attività, mentre max_attivita terrà traccia del numero massimo di attività trovato finora In questo modo SCORRO sugli elementi del DIZIONARIO
print(restitusici_chiave({1:['lavoro', 'tennis'], 2: ['spesa', 'meccanico', 'lavoro'],4: ['concerto']}))
3. Scrivere in Python una funzione che prenda in ingresso una stringa s, e restituisca un valore booleano. Tale valore deve essere pari a True se la stringa è costituita da coppie di caratteri uguali consecutivi, e False altrimenti. Ad esempio, data la stringa s1 = 'aabbccdd' la funzione deve restituire valore True mentre per la stringa s2 = 'aabcdd' deve restituire valore False. Nota: se la stringa ha lunghezza dispari, si deve restituire valore False def restituisci_stringa(s): risultato = True if len(s) % 2 == 0: for i in range(0,len(s),2): if s[i] == s[i + 2]: return risultato else: return False else: if len(s) % 2 != 0: return False print(restituisci_stringa('aabcdd')) 4. Scrivere in Python una funzione che, data una lista L di numeri in virgola mobile, restituisca un valore booleano. Tale valore deve essere pari a True se la lista L contiene una successione monotona (quindi, crescente oppure decrescente). Ad esempio, data la lista L1 = [-0.9, 2.3, 2.3, 7.1, 12.0, 25.6], la funzione deve restituire True, mentre con la lista L2 = [-0.9, 2.3, 2.3, 1.7, 12.0, 25.6] la funzione deve restituire False Qui devo controllare se la stringa è formata da COPPIE uguali Utilizzo quindi range(0,len(s), 2) Con STEP 2 scorro sui caratteri OGNI DUE RANGE(START,STOP,STEP)
miglior_studente = '' for studente, voti in d.items(): media_voti = sum(voti)/len(voti) if media_voti > max_media: max_media = media_voti miglior_studente = studente return miglior_studente print(restituisci_chiave({'Mario': [18, 24], 'Alice':[30, 29, 28], 'Gianni': [26, 26, 28, 30]})) ESERCIZI DI RIEPILOGO Questi sono importanti per capire i dizionari !!!!!! Scrivere una funzione che, data una stringa di lettere (si supponga comprese tra ‘a’ e ‘f’) restituisca una stringa in cui le lettere sono sostituite da cifre secondo la codifica a=0, b=1, … Ad esempio, la stringa ‘baed’ diventa ‘1043’. def restituisci_stringa(s): dizionario = {'a': '0', 'b': '1', 'c': '2', 'd': '3', 'e': '4', 'f': '5'} risultato = '' for i in range(len(s)): if s[i] in dizionario.keys(): risultato+= dizionario[s[i]] return risultato print(restituisci_stringa('baed')) Scrivere una funzione che, data in ingresso una lista L di stringhe, restituisca un dizionario i cui elementi hanno come chiave un numero intero N e come valore il numero di stringhe in L aventi lunghezza pari a N. def trasforma_lista(L): d = {} In questo modo lavoro sulle CHIAVI e sui VALORI degli elementi del dizionario Inizio con una stringa Con dizionario.keys() scorro sulle CHIAVI DEL DIZIONARIO Con dizionario[s[i] ] aggiungo alla stringa vuota IL VALORE DELLA CHIAVE CORRISPONDENTE AL CARATTERE DELLA STRINGA
for i in L: lunghezza = len(i) if lunghezza in d: d[lunghezza] += 1 else: d[lunghezza] = 1 return d print(trasforma_lista(['cane', 'gatto', 'canetto', 'cazzo'])) '''Scrivere una funzione che prenda in ingresso una lista di stringhe L e restituisca un dizionario dove la chiave è un carattere ed i valori le liste di parole presenti in L che iniziano per quel carattere. Ad esempio, se L = [‘casa’, ‘cane’, ‘gatto’] la funzione deve restituire d = {‘c’: [‘cane’, ‘casa’], ‘g’: [‘gatto’]}''' def restitusici_dizionario(L): risultato = {} for parola in L: if parola[0] in risultato: risultato[parola[0]].append(parola) else: risultato[parola[0]] = [parola] return risultato print(restitusici_dizionario(['casa','cane','gatto'])) Con d[lunghezza] += 1 aumento la quantità del VALORE della chiave corrispondente alla lunghezza della stringa Se l’inziale è nel dizionario…. Aggiungi la parola al valore della chiave corrispondente all’iniziale Il valore della chiave corrispondente all’iniziale diventa [parola]
successiva. contatore_max_zeri = 0 stringa_numerica = '01' contatore_zeri_consecutivi = 0 for i in s: if i in stringa_numerica: if i == '0': contatore_zeri_consecutivi += 1 if contatore_zeri_consecutivi > contatore_max_zeri: contatore_max_zeri = contatore_zeri_consecutivi else: contatore_zeri_consecutivi = 0 else: return 'errore' return contatore_max_zeri
def conta_elementi(lista):
d = {} #chiavi: elementi unici della lista #valore: numero di volte in cui ogni elemento appare nella lista for elemento in lista: if elemento in d: In questo modo ogni volta che trova un numero diverso da zero (cioè 1) il contatore si riazzera!!! Se l’elemento è presente nel dizionario allora aumento il VALORE ASSOCIATO ALL’ELEMENTO AltrimentI: IL VALORE RIMANE 1
d[elemento] += 1 else: d[elemento] = 1 return d