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


esercizi con soluzione liste python, Esercizi di Fondamenti di informatica

esercizi su liste e stringhe, con soluzione, per allenarsi per l'esame di programmazione di base python

Tipologia: Esercizi

2019/2020

Caricato il 06/02/2022

giorgia-falcone-1
giorgia-falcone-1 🇮🇹

4

(3)

6 documenti

1 / 9

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
from math import pow,sqrt
#SOLUZIONE ESERCIZIO 1.1
def crea_lista():
ris = []
stop = False
while not stop:
stringa = input("Inserisci il prossimo intero oppure STOP per terminare: ")
stop = stringa=="STOP"
if not stop:
x = int(stringa)
ris.append(x)
return ris
#ESERCIZIO 1.2
def is_in(lista,x):
#return x in lista
cont = 0
while cont < len(lista):
if lista[cont ] == x:
return True
cont = cont + 1
return False
#ESERCIZIO 1.3
def index_of(l,x):
for i in range(len(l)):
if l[i] == x:
return i
return -1
#ESERCIZIO 1.4
def verifica_multipli(l):
for elemento in l:
if not(elemento%2==0 and elemento>0 or elemento%5==0):
return False
return True
#ESERCIZIO 1.5
def find_min(lista):
if len(lista) == 0:
return None
minimo = lista[0]
for number in lista:
if number < minimo:
minimo = number
return minimo
#ESERCIZIO 1.6
def find_max(lista):
if len(lista) == 0:
return None
massimo = lista[0]
for i in range(1,len(lista)):
if lista[i] > massimo:
massimo = lista[i]
return massimo
pf3
pf4
pf5
pf8
pf9

Anteprima parziale del testo

Scarica esercizi con soluzione liste python e più Esercizi in PDF di Fondamenti di informatica solo su Docsity!

from math import pow,sqrt #SOLUZIONE ESERCIZIO 1. def crea_lista(): ris = [] stop = False while not stop: stringa = input("Inserisci il prossimo intero oppure STOP per terminare: ") stop = stringa=="STOP" if not stop: x = int(stringa) ris.append(x) return ris #ESERCIZIO 1. def is_in(lista,x): #return x in lista cont = 0 while cont < len(lista): if lista[cont] == x: return True cont = cont + 1 return False #ESERCIZIO 1. def index_of(l,x): for i in range(len(l)): if l[i] == x: return i return - 1 #ESERCIZIO 1. def verifica_multipli(l): for elemento in l: if not (elemento% 2 == 0 and elemento> 0 or elemento% 5 == 0 ): return False return True #ESERCIZIO 1. def find_min(lista): if len(lista) == 0 : return None minimo = lista[ 0 ] for number in lista: if number < minimo: minimo = number return minimo #ESERCIZIO 1. def find_max(lista): if len(lista) == 0 : return None massimo = lista[ 0 ] for i in range( 1 ,len(lista)): if lista[i] > massimo: massimo = lista[i] return massimo

#ESERCIZIO 1.

def somma_elementi(l): if len(l) == 0 : return None i = 0 somma = 0 while (i < len(l)): somma = somma + l[i] i += 1 return somma #ESERCIZIO 1. def media(l): if len(l) == 0 : return None return somma_elementi(l) / len(l) #ESERCIZIO 1. def media_geometrica(lista): if len(lista) == 0 : return None prodotto = 1 for elemento in lista: prodotto *= elemento return pow(prodotto, 1 /len(lista)) #ESERCIZIO 1. def media_armonica(lista): if len(lista) == 0 : return None somma = 0 for i in range(len(lista)): somma += 1 /lista[i] return len(lista) / somma #ESERCIZIO 1. def frequenza(array, elemento): cont = 0 for numero in array: if numero == elemento: cont = cont + 1 return cont #ESERCIZIO 1. def moda(l): if len(l) == 0 : return None ris = l[ 0 ] occorrenze = frequenza(array,l[ 0 ]) for i in range( 1 ,len(l)): freq_corr = frequenza(l,l[i]) if freq_corr > occorrenze: occorrenze = freq_corr ris = l[i] return ris #ESERCIZIO 1. def mediana(lista):

elemento = l1[index] - l2[index] ris.append(elemento) index += 1 return ris else : print ("Errore nelle dimensioni delle liste") #ESERCIZIO 2. def media_pesata(lista,pesi): sommaNumeratore= 0 sommaDenominatore= 0 for i in range(len(lista)): sommaNumeratore += lista[i]pesi[i] sommaDenominatore += pesi[i] return sommaNumeratore/sommaDenominatore #ESERCIZIO 2. def centro_massa(x,y,m): if (len(x)!=len(y) or len(y)!=len(m) or len(x)!=len(m)): print ("non si può calcolare il centro perchè i vettori sono di dimensione diversa") return [] else : centroMassa=[] sommaX= 0 sommaY= 0 sommaM= 0 for i in range(len(x)): sommaX+= m[i]x[i] sommaY+= m[i]*Y[i] sommaM +=m[i] centroMassa.append(sommaX/sommaM) centroMassa.append(sommaY/sommaM) return centroMassa #ESERCIZIO 2. def prodotto_scalare(v1,v2): if len(v1) == len(v2): ris = 0 for i in range(len(v1)): ris = ris + v1[i] * v2[i] return ris else : print ("I due vettori non hanno uguale dimensione") #ESERCIZIO 2. def intersezione(l1,l2): ris = [] for x in l1: if x in l2 and not x in ris: ris.append(x) return ris #ESERCIZIO 2. def differenza(u1,u2): ris = [] for elemento in u1: if not elemento in u2: ris.append(elemento)

return ris def differenza_inplace(u1,u2): for elemento in u2: if elemento in u1: u1.remove(elemento) #ESERCIZIO 2. def distanza(p1,p2): if len(p1) != len(p2): print ("ERRORE") else : i = 0 somma = 0 while i < len(p1): diff = p1[i] - p2[i] diff = diff ** 2 somma = somma + diff i = 1 + i return sqrt(somma) #ESERCIZIO 2. def ordinata(lista): #una lista è ordinata se ogni elemento è minore o uguale di tutti i suoi successori for i in range(len(lista)): for j in range(i+ 1 ,len(lista)): if lista[i] > lista[j]: return False return True #ESERCIZIO 2. def verifica_sequenza(l,k): for i in range(len(l) - k + 1 ): somma = 0 for j in range(i,i+k): somma += l[j] if somma == 0 : return True return False #ESERCIZIO 2. def esercizio11(l): ris = [] for i in range(len(l)): index = i - 1 aggiungere = True while index >= 0 and aggiungere: aggiungere = l[i] > l[index] index -= 1 if aggiungere: ris.append(l[i]) return ris #ESERCIZIO 2. def check_list(l): if len(l) % 2 != 0 : print ("Errore") return False for i in range(len(l)// 2 ): if l[i] < 0 :

for x in l1: if frequenza(l1,x) > 1 : print ("Errore") return False #l1 non può avere elementi ripetuti trovata = False for i in range(len(l2) - x): sublist = l2[i : i+x] if frequenza(sublist,x) == x: trovata = True break if not trovata: return False return True #ESERCIZIO 2. def elabora_lista(l): media_aritmetica = media(l) minori = [] maggiori = [] for x in l: if x <= media_aritmetica: minori.append(x) else : maggiori.append(x) return minori+maggiori #ESERCIZIO 2. def verifica(l,k): for i in range(len(l) - k): contatore = 1 for j in range( 1 +i,len(l)): if (l[j] == l[i]): contatore += 1 else : break if contatore == k: return True return False #ESERCIZIO 2. def filtra_lista(l): ris = [] for i in range(len(l)): if l[i] < 0 : print ("Errore") return [] if l[i] > 0 : limite= i - l[i] if limite < 0 : return [] sublist = l[limite : i] if frequenza(sublist, 0 ) != l[i]: return [] limite = 1 + i + l[i] if limite > len(l): return [] sublist = l[i+ 1 : limite] if frequenza(sublist, 0 ) != l[i]: return [] ris.append(l[i]) return ris

#ESERCIZIO 2.

def verifica_liste2(l1,l2,k): for i in range(len(l1) - k): start = - 1 for j in range(len(l2)): if l2[j] == l1[i]: start = j break if start >= 0 : sublist1 = l1[i : i + k] sublist2 = l2[start : start + k] if sublist1 == sublist2: return True return False #ESERCIZIO 2. def esercizio21(l1,l2,k): for i in range(len(l1) - k): sublist = l1[i:i+k] indici = [] for x in sublist: for j in range(len(l2)): if l2[j] == x: indici.append(j) if len(indici) == len(sublist) and ordinata(indici): return True return False #ESERCIZIO 2. def esercizio22(l1,l2,k): for i in range(len(l1)): indexes= indexes_of(l2,l1[i]) soddisfatto = False for index in indexes: if index == i or abs(index - i) <= k: soddisfatto = True break if not soddisfatto: return False return True #ESERCIZIO 2. def esercizio23(l): for i in range(len(l)): if l[i] > 0 : sublist = l[i+ 1 :i+ 1 +l[i]] counter = 0 for x in sublist: if x <= 0 : counter += 1 if counter < l[i]: return False return True #ESERCIZIO 2. def esercizio24(integers,booleans): indexes = indexes_of(booleans,True) for index in indexes: