ESERCIZIO 1
E’ dato un file «dati.txt» caratterizzato dal seguente formato rappresentante delle coppie nome/età. Per esempio:
Pippo 23
Ada 19
Felice 32
Geronima 40
Ciccio 19
Si legga tutto il file creando un dizionario le cui chiavi sono fornite dall’età. A ciascuna età viene associata una lista con i nomi di persone che hanno quell’età.
SOLUZIONE
f=open("dati.txt","r") #apro in letturad={} #inizializzo il dizionarios=f.readline() #leggo una rigawhile s!="": #finché il file non è finito s=s.split() #divido la riga nei campi dati eta=int(s[1]) #converto il secondo elemento if eta in d: #se l’età è già presente d[eta]=d[eta]+[s[0]] #aggiungo il nome else: #altrimenti d[eta]=[s[0]] #aggiungo età e nome s=f.readline() #leggo una nuova rigaf.close() #chiudo il filed- Il nome del file viene fornito da tastiera.
- Il vettore può avere al massimo 50 valori, ma il file presenta un numero di interi non definito.
- Si stampi a video eventualmente un avviso se la lunghezza massima del vettore è stata raggiunta interrompendo l’acquisizione di valori
- Si stampi a video infine il vettore acquisito.
SOLUZIONE
#Programma che legge max 50 interi da file e li memorizza in un vettorenomefile=input("Inserire il nome del file:\n")fp=open(nomefile,'r') #senza le virgolette: è una variabile, non una stringalista=[] #inizializzazione del vettorei=0 #inizializzazione del contatore di interi letti da filelinea=fp.readline()while((linea!="") and (i<50)): #finché il file non è finito AND i<50 lista = lista + [int(linea)] i=i+1 #incrementa i linea=fp.readline()if(i==50): print("\nMax numero di valori acquisibile raggiunto.\n") fp.close()print (lista)numeri.txt
[5, 12, 3, 4, 22, 34, 11, 66, 76, 1, 5, 6, 0, 9, 77, 54, 32, 78, 89]
Esempio.
Si consideri il dizionario dell’esercizio precedente. Se da tastiera viene inserito il nome “Felice”, il programma scriverà su file “Felice.txt” il valore 32 (vedi esempio).
nome=input("Inserisci un nome:") #leggo un nomepresente=False #tecnica: uso una variabile per verificare#l'evento:"ho trovato il nome nel dizionario"f=open(nome+".txt","w") #apro il file in scrittura#inizio la ricercafor eta in d: #per ogni età presente in d if nome in d[eta]: #se il nome compare almeno una volta f.write(str(eta)+"\n") #stampo l'età presente=True #ho trovato il nome nel dizionarioif not presente: #se non l'ho trovato nemmeno una volta f.write("Non presente") #scrivo che non è presentef.close() #chiudo il filef=open('numeriEstringhe.txt', 'r')numeri=[]stringhe=[]linea=f.readline()while linea!= "": #se il file non è finito… st=linea[0:-1] st = linea.replace("\n", "") if st.isdigit() : numeri=numeri+[st] else: stringhe=stringhe+[st] linea=f.readline()f.close()print(numeri)print(stringhe)[‘Esempio:’, ‘Ciao’, ‘buonanotte’, ‘Natale’]
(1738)
Altri articoli nella categoria "Lezioni di Informatica"
- Break-Even Point nel Franchising: Calcolo Avanzato, Automazione e Royalty (con Modelli in Python)
- Regressione lineare: esercizi progressivi dai minimi quadrati alla regressione multipla
- Microeconomia applicata: choke price, domanda esponenziale, segmentazione e prezzo ottimale – Parte 2
- Microeconomia applicata: choke price, prezzo di riserva massimo e prezzo ottimale
- Quanti Centri Ha una Figura Geometrica? Dal Baricentro al Pentagramma
- Microeconomia Computazionale: Come la Domanda di Mercato Emerge dai Comportamenti Individuali
- Legge di Benford e Data Quality nel Marketing: Guida, Formule ed Esercizi Python
- Microeconomia dell’AI: 6 esercizi matematici su costi, pricing, domanda ed elasticità
- Equazioni trascendenti: come risolverle con Python, dal punto fisso a Newton e Brent
- Equazioni Omogenee Esponenziali: Guida Pratica con Esercizi Svolti e Applicazioni