Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Alcuni esercizi python, Schemi e mappe concettuali di Elementi di Informatica

Sono presenti alcuni esercizi svolti su python

Tipologia: Schemi e mappe concettuali

2023/2024

Caricato il 10/07/2024

maria-letizia-bambini
maria-letizia-bambini 🇮🇹

1 documento

1 / 14

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
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_2
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')
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe

Anteprima parziale del testo

Scarica Alcuni esercizi python e più Schemi e mappe concettuali in PDF di Elementi di Informatica solo su Docsity!

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

  1. scrivere una funzione che accetti una LISTA DI INTERI e restituisca una LISTA DI TUPLE dove ogni tupla contenga l'elemento della lista e il suo indice nella lista originale def indice_elemento(lista): risultato = [] for i in range(len(lista)): risultato.append((lista[i], i)) return risultato print(indice_elemento([1,2,3,4]))
  2. creare una funzione che accetti una lista di stringhe e restituisca un dizionario dove le chiavi sono le stringhe e i valori sono il numero di volte in cui ogni stringa appare nella lista def conta_parole(parole): Lista[i] è l’elemento corrispondente all’indice “ i “ è l’indice Con risultato[parola] += 1 AUMENTO IL VALORE del dizionario
  1. Esempio di esercizio in cui uso la funzione .APPEND def filter_string(L, n): nuova_lista = [] for stringhe in L: if len(stringhe) == n: nuova_lista.append(stringhe) return nuova_lista
  2. Ricorda: dato un numero intero n, la condizione da imporre per i suoi MULTIPLI è: multiplo % n == 0
  3. Esempio di esercizio in cui scorro sugli indici di una lista di età e restituisco il nome della persona corrispondente a quell’eta si scriva una funzione che data una lista di di nomi di persone e una lista di età restituisca il nome della persona più giovane se le liste sono vuote la funzione deve restituire la stringa vuota '' se le liste hanno lunghezza diversa la funzione deve restituire la stringa 'errore' def trova_persona(lista_persone, lista_eta): if len(lista_persone) == len(lista_eta): if len(lista_persone) != 0: eta_minima = min(lista_eta) indice_eta = 0 for i in range(len(lista_eta)): if lista_eta[i] != eta_minima: indice_eta += 1 else: return lista_persone[indice_eta] else: return '' else: return 'errore'
  4. Come sommare gli elementi di una lista Listaacuivoglioaggiungere.append(cosavoglioagg iungere) Lista_eta[i] corrisponde all’eta nella lista Indice_eta += 1 serve a scorrere sugli indici Lista_persone[indice_eta] corrisponde al nome della persona corrispondendente all’indice nella lista di età

def somma_elementi(L): somma = 0 for i in range(len(L)): somma += i return somma lista = [1, 2, 3] print(somma_elementi(lista))

  1. Inziale di una parola in una lista def parole_con_lettera(lista, lettera): risultato = [] for parola in lista: if parola[0] == lettera: risultato.append(parola) return risultato 10.Esempio in cui lavoro su chiavi e valori di un dizionario Testo dell’esercizio: #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 filtra_lista (L): d = {} for parola in L: c = parola[0] print(c) if c not in d: d[c] = [parola] con somma += i aggiungo alla somma il numero e sommo così tutti gli elementi Con parola[0] indico l’inziale della parola Con d[c].append(parola) appendo la parola al VALORE della chiave corrispondente all’iniziale della parola

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]

ATTENZIONE! Non rimuovere. Iniziare a scrivere la soluzione dalla riga

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

Scrivere una funzione conta_elementi che prende in input una lista e restituisce

un dizionario dove le chiavi sono gli elementi unici della lista e i valori sono il

numero di volte che ogni elemento appare nella lista.

Esempio: Se la tua lista di input è ['mela', 'banana', 'mela', 'pera', 'banana',

'banana'], la funzione dovrebbe restituire il seguente dizionario: {'mela': 2,

'banana': 3, 'pera': 1}.

def conta_elementi(lista):

inserisci la soluzione qui

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

Scrivere una funzione create_dict che data una lista di numeri interi (numbers) crei

un dizionario con chiavi le posizioni dei valori maggiori di 0 della lista e valori i

valori rispettivi della lista in ingresso