Il 0% ha trovato utile questo documento (0 voti)
25 visualizzazioni

Esercizi Python

Copyright
© © All Rights Reserved
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
25 visualizzazioni

Esercizi Python

Copyright
© © All Rights Reserved
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 9

ESERCIZI PYTHON – BASE

0.
#Calcolare quadrato e cubo di un numero intero fornito in input
print("Quadrato e cubo di un numero")
numero = int(input("Numero : "))
quadrato=numero*numero;
cubo=quadrato*numero;
print("Quadrato di "+str(numero)+" = " + str(quadrato))
print("Cubo di "+str(numero)+" = " + str(cubo))

1.

Scrivi un programma che chieda due numeri all'utente tramite la


funzione input e mostri il più grande tra i due utilizzando la funzione print.
Per quanto Python disponga di una funzione max(), siete invitati ad utilizzare le
istruzioni istruzioni if, elif ed else per la scrittura dell'algoritmo. Soluzione

a = input("Inserisci il primo numero: ")


b = input("Inserisci il secondo numero: ")

if a == b:
print("I numeri sono identici")
elif a > b:
print("Il numero più grande tra i due è " + str(a))
else:
print("Il numero più grande tra i due è " + str(b))

2.

Scrivi un programma che chieda tre numeri a, b, c all'utente e mostri il più


grande tra loro. Soluzione

a = input("Inserisci il primo numero: ")


b = input("Inserisci il secondo numero: ")
c = input("Inserisci il terzo numero: ")

if a >= b and a >= c:


print(a)
elif b >= a and b >= c:
print(b)
elif c >= a and c >= b:
print(c)

3.

Scrivi un programma che, data una lista di numeri, fornisca in output il


maggiore tra tutti. Soluzione

lista_numeri = [42, 9, 23, 11, 17, 56, 3]


numero_maggiore = lista_numeri[0]
for numero in lista_numeri:
if numero > numero_maggiore:
numero_maggiore = numero
print("Il numero maggiore tra tutti è:", numero_maggiore)

4.

Scrivi un semplice programma che, data una lista di numeri, sommi tra loro
tutti gli elementi.

Suggerimento: anche se esiste la funzione sum() per risolvere l'esercizio potresti


usare il ciclo for. Soluzione

lista = [3, 6, 100, 23, 42]


risultato = 0
for numero in lista:
risultato += numero
print("Il risultato della somma è... " + str(risultato))

5.

Scrivi un programma "moltiplicatore" che, data una lista di numeri, moltiplichi


tra loro tutti gli elementi. Soluzione

lista = [7, 66, 100, 457, 472]


risultato = 1
for numero in lista:
if numero != 0:
risultato *= numero
print("Il risultato della moltiplicazione tra tutti gli elementi della
lista è... " + str(risultato))
6.

Scrivi una semplice funzione che, data una lista di numeri, fornisca in output
un istogramma basato su questi numeri, usando asterischi per disegnarlo.

Data ad esempio la lista [3, 7, 9, 5], la funzione dovrà produrre questa sequenza:

***

*******

*********

***** Soluzione

def istogramma(lista):
for numero in lista:
print("*" * numero)

7.

Scrivi una funzione che restituisca la lunghezza di una stringa o lista passata
come parametro. In sostanza, seppur presente, provate a scrivere la nostra
versione della funzione len! Soluzione

def my_len(lst_or_str):
length = 0
for unit in lst_or_str:
length += 1
return length

8.

Scrivi una funzione che data in ingresso una lista A contenente n parole,
restituisca in output una lista B di interi che rappresentano la lunghezza delle
parole contenute in A.

Questo esercizio può essere risolto anche usando una list


comprehension. Soluzione

# due possibili soluzioni per l'esercizio proposto

def char_counter(lista_a):
lista_b = []
for parola in lista_a:
lista_b.append(len(parola))
return lista_b

def char_counter_pro(lista_a):
return [len(parola) for parola in lista_a]

9.

Scrivi una funzione che, data una stringa come parametro, restituisca
un dizionario rappresentante la "frequenza di comparsa" di ciascun carattere
componente la stringa.

Per fare un esempio, data una stringa "ababcc", otterremo in risultato {"a": 2, "b":
2, "c": 2} Soluzione

def char_freq(str):
mappa = {}
for carattere in str:
if carattere in mappa:
mappa[carattere] += 1
else:
mappa[carattere] = 1
return mappa

10.

Scrivi una semplice funzione che converta un dato numero di giorni, ore e
minuti, passati dall'utente tramite funzione input, in secondi. Soluzione

def calcola_secondi():
print("Questa funzione converte un dato numero di Giorni, Ore e
Minuti in Secondi.")
da_giorni = int(input("Inserisci il numero di giorni: ")) * 24 * 3600
da_ore = int(input("Inserisci il numero di ore: ")) * 3600
da_minuti = int(input("Inserisci il numero di minuti: ")) * 60
totale = da_giorni + da_ore + da_minuti
print(totale)
11.

Scrivi una funzione che, dato in ingresso un valore espresso in metri, mandi in
print l'equivalente in miglia terrestri, iarde, piedi e pollici. Come risolverai questo
esercizio? Soluzione

def americana(metri):
conversions = dict()
conversions["miglia"] = metri / 1609.344
conversions["piedi"] = metri * 3.280840
conversions["pollici"] = metri * 39.37008
conversions["iarde"] = metri * 1.093613

print(f"{metri} metri corrispondono a:")


for key, value in conversions.items():
print(f"{key}: {value}")

12.

Scrivi una funzione che, a scelta dell'utente, calcoli l'area di:

• un cerchio
• un quadrato
• un rettangolo
• un triangolo

Sentitevi liberi di estendere le potenzialità della funzione quanto meglio


credete! Soluzione

def geometra():
print("""
Benvenuti alla funzione Geometra!
In fase di selezione, a ciascun possibile calcolo corrisponde un
valore numerico:
- Area Quadrato: 1
- Area Rettangolo: 2
- Area Triangolo: 3
- Area Cerchio: 4
""")

print('Dunque. Di quale figura geometrica desideri calcolare


l\'area?')
scelta = int(input(">>> "))
if scelta == 1:
print("Hai scelto: Area Quadrato")
lato = float(input('Inserisci il valore del lato del quadrato '))
print(f"L'Area del Quadrato, avente lato {lato} è: {lato *
lato}")
elif scelta == 2:
print("Hai scelto: Area Rettangolo")
base = float(input('Inserisci il valore della base '))
altezza = float(input('Inserisci il valore dell´altezza '))
print(f"L'Area del Rettangolo, avente base {base} e altezza
{altezza} è: {base * altezza}")
elif scelta == 3:
print("Hai scelto: Area Triangolo")
base = float(input('Inserisci il valore della base '))
altezza = float(input('Inserisci il valore dell´altezza '))
print(f"L'Area del Triangolo, avente base {base} e altezza
{altezza} è: {(base * altezza) / 2}")
elif scelta == 4:
print("Hai scelto: Area Cerchio")
r = float(input('Inserisci il valore del raggio '))
print(f"L'Area del Cerchio, avente raggio {r} è: {(r * r) *
3.14}")
else:
print ('Nessun calcolo disponibile per la scelta effettuata!')

13.

Scrivi una funzione ricorsiva che calcola il fattoriale di un numero dato.

def fact(n):

prod=1

for i in range(1,n+1):

prod *= i

return prod

def fattoriale(n):
if n == 1:
return n
else:
result = n * fattoriale(n-1)
return result

14.

Nella Successione di Fibonacci, ciascun numero è la somma dei due numeri che
lo precedono, ad esempio:

1, 1, 2, 3, 5, 8, 13 (...)

Scrivi una funzione ricorsiva che restituisce in output i numeri della successione
di Fibonacci, entro una soglia specifica impostata dall'utente.

def fibo(n):

... a,b=0,1

... for i in range(n):

... print(a, end=' ')

... a,b=b,a+b

Soluzione

def fibonacci(n):
if n <= 1:
return n
else:
return fibonacci(n-1) + fibonacci(n-2)

limite = int(input("Inserisci il numero di valori della serie che


desideri vedere: "))

for num in range(1, limite+1):


print(fibonacci(num))
15.

# Generare 10000 numeri interi random compresi tra 0 e 1000000


# stampare il numero generato più grande,
# il numero generato più piccolo e la media dei numeri generati
import random
# Genero una lista di n numeri interi random compresi tra n1 e n2
n = 10000
n1 = 0
n2 = 1000000
nmax=n1
nmin=n2
somma=0
for i in range(n):
numerogenerato=random.randint(n1, n2)
if numerogenerato>nmax:
nmax=numerogenerato
if numerogenerato<nmin:
nmin=numerogenerato
somma+=numerogenerato
print("Numero generato più grande = "+str(nmax))
print("Numero generato più piccolo = "+str(nmin))
print("Media dei numeri generati = "+str(round(somma/n,2)))
Source Code: Matrix Multiplication
1. Using Nested Loop

def multiply_matrix(A,B):
rows = len(A)
cols = len(B[0])
if len(A[0]) == len(B):
C = np.zeros((rows,cols),dtype = int)
for row in range(rows):
for col in range(cols):
for elt in range(len(B)):
C[row][col] += A[row][ elt] * B[let][ col]
return C
else:
return "Sorry, cannot multiply A and B."

2. Using list comprehension


result = [[sum(a * b for a, b in zip(A_row, B_col))
for B_col in zip(*B)]
for A_row in A]

for r in result:
print(r)

Potrebbero piacerti anche