



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
Esercizi vari con python parte 2
Tipologia: Esercizi
1 / 6
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!




Scrivete un programma che richiede in input 5 numeri e calcola:
Come l’esercizio precedente, tuttavia considerate anche il caso in cui non sia possibile calcolare una delle due medie (es. si sono inseriti solo numeri positivi o solo numeri negativi).
Scrivete un programma che calcoli i primi 20 numeri della sequenza di Fibonacci. La sequenza di Fibonacci è una sequenza di numeri che inizia con i numeri 0 ed 1 e ogni numero successivo è la somma dei due numeri precedenti. Un esempio della sequenza di Fibonacci è: 0 1 1 2 3 5 8 13 21 …
Scrivete un programma che implementa il gioco descritto qui di seguito: Il programma genera casualmente un numero intero compreso tra 1 e 100, l’utente deve cercare di indovinare il numero andando a tentativi. Ad ogni tentativo l’utente deve scrivere un numero a tastiera e il programma deve comunicare all’utente se il numero inserito è rispettivamente, più grande, più piccolo del numero da indovinare oppure se è stato indovinato il numero. Il computer deve andare avanti a chiedere numeri fino a quando l’utente non indovina il numero. Per generare numeri casuali, usate le seguenti istruzioni: import random # da inserire all’inizio del programma python, importa la
number = random.randint(0,100) #assegna alla variabile number un numero intero casuale compreso tra 1 e 100
Scrivete un programma che stampi a video la tabellina della moltiplicazione, dei numeri compresi tra 1 e 10. Il programma dovrebbe produrre un output simile al seguente: 1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 3 6 9 12 15 18 21 24 27 30 4 8 12 16 20 24 28 32 36 40 5 10 15 20 25 30 35 40 45 50 6 12 18 24 30 36 42 48 54 60 7 14 21 28 35 42 49 56 63 70 8 16 24 32 40 48 56 64 72 80 9 18 27 36 45 54 63 72 81 90 10 20 30 40 50 60 70 80 90 100 Il programma deve utilizzare due cicli annidati (il ciclo più interno deve stampare i singoli numeri di una riga, il ciclo più esterno deve ripetere l’operazione di stampa per più righe). Consigli: nel comando print aggiungete una virgola finale, come nell’esempio: print( …), in questo modo l’output Account provvisorio: Username: lezione PWD: 123.ciao Account provvisorio: Username: lezione PWD: 123.ciao
della print successiva sarà stampato sulla stessa riga senza andare a capo (questo escamotage funziona solo con Python 2, non con Python 3).
Scrivete un programma python che calcola quanti numeri pari e quanti dispari sono presenti in un insieme di numeri immessi da tastiera. Il programma deve richiedere le dimensioni dell’insieme (cioè di quanti numeri dovrà essere composto) in anticipo, cioè prima di richiedere a tastiera i singoli valori. Stampate a video i due sotto-insiemi (quanti pari e quanti dispari) e la loro somma.
Scrivete un programma python che implementa il gioco di carte “Sette e mezzo”. Lo scopo del gioco è quello di realizzare il punteggio più alto possibile senza mai sballare , vale a dire senza superare il 7 e mezzo. Il programma svolge il ruolo del mazziere, e genera casualmente un numero intero (la carta) compreso tra 1 e 10. Le carte dall' 1 al 7 valgono tanti punti quanto è il loro valore numerico ( vale 1 punto, il 2 vale 2 punti, ecc.) le carte dall’8 al 10 valgono mezzo punto. Il programma genera una carta per volta e chiede all’utente se vuole continuare a giocare fino a quando l’utente non ha vinto o ha superato il 7 e mezzo (in tal caso ha perso). Per generare numeri casuali, usate le seguenti istruzioni: import random # da inserire all’inizio del programma python, importa la
carta = random.randint( 1 ,10) #assegna alla variabile carta un numero intero casuale compreso tra 1 e
Modificate l’esercizio 28 in modo da lavorare su una lista di numeri precaricata (la lunghezza della lista a vostra scelta) al posto dei valori immessi da tastiera e calcolate quanti numeri pari e quanti dispari ci sono.
Scrivete un programma che a partire da una lista contenente 10 numeri già inseriti, cerca il minore ed il maggiore tra i numeri presenti. Per comodità potete copiare ed incollare nel vostro programma il seguente comando: li=[30, 18, 54, 90, 6, 150, 114, 162, 72, 78]
Date due liste: r = [2, 4, 10, 22, 5] c= [10, - 1, 5, 3, 12] supponete che le due liste rappresentino due matrici, rispettivamente una matrice riga di dimensioni [1,5] ed una matrice colonna di dimensioni [5,1]. Scrivete un programma che calcola il prodotto delle due matrici. Il prodotto in questo caso è un intero pari alla somma dei prodotti degli elementi corrispondenti delle due liste. Il programma dovrà stampare alla fine il risultato trovato. Se non conoscete il calcolo matriciale chiedete al docente.
Scrivete un programma che crea due liste con 10 numeri interi l’una (scegliete voi se inserire i numeri da tastiera oppure inizializzare le liste con dei numeri direttamente dentro il programma). Il programma dovrà costruire una (terza) lista di dieci valori booleani, ognuno di questi dirà se il corrispondente elemento della seconda lista è un divisore intero del corrispondente elemento della prima lista (cioè se il resto della divisione dei due elementi è nullo). Il programma dovrà stampare poi le tre liste.
Scrivete un programma che richiede il cognome, il nome e l’età di una persona. Queste informazioni devono essere memorizzate in una tupla, la quale sarà aggiunta in coda ad una lista. Il programma
necessari scambi, l’algoritmo di ordinamento avrà terminato. Vi conviene utilizzare una variabile flag per verificare se durante un controllo sono stati effettuati o meno degli scambi
Scrivere un programma che richiede all’utente di inserire 10 numeri da tastiera, li inserisce in una lista, ordina la lista in modo crescente (dal numero più piccolo al numero più grande) e stampa la lista ordinata. Si consiglia, durante la stesura del programma, per fare le prove, di utilizzare una lista di numeri precaricata, come quella riportata nell’esercizio precedente. Per ordinare la lista, implementate l’algoritmo di ordinamento per selezione. L’algoritmo è descritto qui di seguito:
Scrivete un programma che richiede in ingresso una sequenza di numeri e li memorizza in una lista. La sequenza può essere composta da una quantità arbitraria di numeri, la sequenza termina quando l’utente inserisce il numero 0. Il programma deve stampare a video la moda (il numero che appare più spesso, o a parità di numero di apparizioni, il numero più piccolo). Attenzione, questo esercizio è complicato. Consigli:
Scrivete un programma che generi 1'000 numeri casuali interi (di valore compreso tra 0 e 100) e li memorizzi in un dizionario. I numeri casuali devono essere inseriti nel dizionario per mezzo di una coppia chiave:valore dove la chiave è un numero progressivo che va da 0 a 999 e il valore è il numero casuale. Successivamente il programma deve calcolare media, varianza e scarto quadratico medio dei numeri generati casualmente presenti nel dizionario. Per generare numeri casuali, usate le seguenti istruzioni: import random # da inserire all’inizio del programma python, importa la
numero = random.randint( 1 ,10 0 ) #assegna alla variabile numero un numero intero casuale compreso tra 1 e 100. Ripetete lo stesso esercizio generando 10'000 numeri casuali.
Create una lista di 5 nomi. Successivamente create una lista di 5 cognomi. Create un dizionario nel quale saranno inserite delle coppie chiave:valore così costituite: la chiave è un numero progressivo, il valore è una tupla formata da un nome e un cognome. Nel dizionario dovranno essere inserite tante tuple quante sono le possibili combinazioni di nomi e cognomi.
Scrivete una funzione che accetta in ingresso due valori numerici (di tipo float) che chiameremo rispettivamente A e B. A rappresenta un numero del quale deve essere calcolata la radice quadrata (potete assumere che A sia un numero non negativo). Il valore numerico di B invece rappresenta la “precisione” con il quale dovrà essere calcolata la radice quadrata (vedi il proseguimento della spiegazione). Il programma che scriverete dovrà calcolare la radice quadrata di A, non utilizzando le funzioni matematiche già presenti in Python (cioè non potete utilizzare il metodo già visto a lezione), ma dovrà utilizzare un algoritmo scritto da voi. L’algoritmo che dovrete implementare è il seguente: Utilizzate due variabili aggiuntive (es. top e bottom) che rappresentano l’intervallo nel quale può trovarsi la soluzione. All’inizio a bottom deve essere assegnato il valore 0 e a top deve essere assegnato il valore di A. Ripetete più volte il gruppo di operazioni descritte qui di seguito:
Scrivere una funzione che riceve in ingresso una lista di interi (di lunghezza non nota a priori) e restituisce il numero di elementi duplicati (cioè quanti numeri sono presenti 2 o più volte). Per esempio nella lista [1, 5, 5, 5, 4, 4, 0, 8, 7, 7] i numeri duplicati sono 3 (cioè i numeri 5, 4, 7). Suggerimento: è più semplice individuare i duplicati dopo aver ordinato la lista (tutti i duplicati di uno stesso numero si vengono a trovare in posizioni adiacenti).
Scrivete una funzione che accetta due liste di numeri interi come parametri in ingresso. La funzione dovrà restituire in uscita una lista formata da tutti i numeri presenti nella prima e non presenti nella seconda. Nella lista restituita dalla funzione, ogni numero deve apparire una sola volta. Per esempio, se si forniscono in ingresso le liste L1=[9, 1, 1, 3, 5, 4, 5] e L2=[1,3] la funzione dovrà restituire la lista [9, 4, 5]. Non è richiesto che la lista fornita in uscita sia ordinata. Suggerimento: si consiglia di usare il comando “in” per testare l’inclusione di un elemento in una lista.
Scrivete una funzione, che accetta come parametri due liste di numeri intere la ed lb , aventi entrambe lunghezza non nota a priori. La funzione deve restituire una lista che contiene gli elementi di lb che sono divisori di tutti gli elementi di la. Per esempio, se la =[12, 6, 36] e lb =[2, 3, 4, 5, 10, 11], la lista restituita dovrà essere [2, 3]. Se vi può essere d’aiuto potete implementare più di una funzione. Testate la vostra funzione richiamandola e passandogli alcuni valori.