Esercizi alternativi 15 maggio (per soddisfare la richiesta di esercizi in ambito economico)
1
Scrivere una funzione con due parametri:
montante(capitale,listatassi)
dove "capitale" e' un intero rappresentante una somma di denaro, in euro, "listatassi" e' una lista di float che rappresentano tassi di interesse, si calcoli il montante che si ottiene applicando al capitale il primo tasso di interesse della lista per il primo anno, il secondo tasso per il secondo anno e cosi' via fino a completamento della lista es: montante(100,[10,12,14]) deve restituire 184.8(si puo' realizzare anche con una funzione ricorsiva) Svolto da Carmela (io però con i tassi dell'esempio ottengo un montante di 140.448) (rd 2.06: sono corretti sia lo svolgimento dell'esercizio, sia il montante 140.448, devo aver trascritto qualche dato errato nell'esempio del testo.)
def montante (somma,tassi,indice): interessi=somma*tassi[indice]/100 somma+=interessi indice+=1 if indice<len(tassi): somma=montante(somma,tassi,indice) return somma listatassi=[] tasso=1 while tasso>0: tasso=int(input("Inserisci un tasso o scrivi 0 per terminare: ")) if tasso!=0: listatassi.append(tasso) capitale=100 capitale=montante(capitale,listatassi,0) print ("Il montante è ",capitale)
2
Scrivere una funzione che presa in input una lista di tuple che possono essere del tipo:
descrizione,quantita',prezzo
oppure
descrizione,quantita',prezzo,sconto
calcoli e stampi (il corpo della) la fattura calcolando l'IVA al 22%. Il valore di ritorno della funzione deve essere il totale della fattura. Tutti i valori monetari devono essere arrotondati alla seconda cifra decimale. Es.
fattura([('mele',10,1.2),('pere',5,1.4,10),('patate',2.2,0.5)) output: descrizione quantita' prezzo sconto totale mele 10.000 1.20 0% 12.00 pere 5.000 1.40 10% 6.30 patate 2.200 0.50 0% 1.10 -------- Imponibile 19.40 IVA 22% 4.27 -------- Totale Fattura 23.67 Il valore di ritorno e' 23.67
Arianna M. Fiumefreddo (con l'aiuto di Runa)
def fattura(descr, prezzo, sconto, quantita): sc = float(sconto)/100 if sc: totale = float(prezzo)* float(quantita)*sc else: totale = float(prezzo)* float(quantita) print descr, "\t\t", quantita, "\t", sconto, "\t", prezzo, "\t", totale return totale elementi = [] print "Inserite i valori descrizione, prz, sconto, q.ta separati da spazi\nL'invio conclude l'inserimento" stringa = raw_input() while stringa: elemento=stringa.split() elementi.append(elemento) stringa = raw_input() print "Descrizione\tQuantita\tSconto\tPrezzo\tTotale" imponibile = 0 for ognielemento in range(len(elementi)): imponibile += fattura (elementi[ognielemento][0], elementi[ognielemento][1], elementi[ognielemento][2], elementi[ognielemento][3] ) print "\t\t---------------------------------------------------" iva = imponibile*0.22 tot_fatt = iva + imponibile print "Imponibile\t\t", imponibile, "\nIva 22%\t\t\t", iva, "\n\t\t---------------------------------------------------", "\nTotale fattura\t\t", tot_fatt
3
Utilizzare un dizionario Python come inventario di magazzino. Ogni elemento associa al codice dell'articolo, usato come chiave, una coppia (tupla di due elementi) contenente la descrizione dell'articolo e la giacenza. es.
magazzino={ '010203':('viti autofilettanti 3x5mm',100), '010204':('bulloni 5x7mm',50), '020201':('dadi 5mm',0) }
Scrivere due funzioni:
carico(articoli) scarico(articoli)
la funzione carico prende come parametro una lista di coppie codice-quantita'. Le quantita' devono essere sommate alla giacenza di magazzino. Durante l'elaborazione la funzione deve stampare un report dell'operazione. La funzione non ha valore di ritorno. Es:
carico([('020201',40),('010204',10)])
deve stampare qualcosa come:
Carico di Magazzino: Codice Descrizione Quantita' Nuova Giacenza 020201 dadi 5mm 40 40 010204 bulloni 5x7mm 10 60
La funzione scarico prende come parametro una lista di coppie codice-quantita' Ovviamente non e' possibile scaricare dal magazzino una quantita' superiore alla giacenza. La funzione deve stampare un report dell'operazione e restituire come valore di ritorno una lista codice-quantita' che riporta le quantita' effettivamente scaricate dal magazzino. Le giacenze devono essere aggiornate di conseguenza. Es (data la situzione dopo il carico dell'esempio precedente):
scarico([('010203',40),('020201',50)])
ha come valore di ritorno
[('010203',40),('020201',40)]
e deve stampare qualcosa di simile a:
Scarico di Magazzino: Codice Descrizione Quantita' Quantita' Richiesta Consegnata 010203 viti autofilettanti 3x5mm 40 40 020201 dadi 5mm 50 40