- Scrivere una funzione
test_uguali
che prende in input due argomenti e stampa✅
se sono uguali, mentre stampa❌
se sono diversi - Scrivere una funzione
massimo
che prende in input una lista di numeri e restituisce il valore massimo nella lista (e restituisceNone
se la lista è vuota!). Non utilizzare la funzione built-inmax
! - Verificare il corretto funzionamento di
massimo
utilizzando la funzionetest_uguali
mostrata in precedenza nel seguente modo:Qual è l'output che mi aspetto di vedere? E se la funzione non funzionasse correttamente cosa vedrei in output?test_uguali(massimo([1, 2, 3]), 3) test_uguali(massimo([]), None) test_uguali(massimo([-1, 100, 0]), 100)
- Scrivere una funzione
minimo
che prende in input una lista di numeri e restituisce il valore minimo nella lista (e restituisceNone
se la lista è vuota!). Non utilizzare la funzione built-inmin
! - Testare che la funzione
minimo
funzioni correttamente in maniera simile al punto 3. Scrivere i propri test. Prova a pensare a input diversi fra loro, quali sono i casi limite? - Scrivere un programma che prende in input un numero
n
e determina quali sono i numeri primi compresi fra0
en
(incluso). Per esempio se l'input fosse11
l'output dovrebbe essere2, 3, 5, 7, 11
. - Modificare il programma precedente in modo da stampare solamente il numero di numeri primi compresi fra
0
en
. Se l'esercizio 8 è stato implementato definendo una funzione appropriata, allora il cambiamento da effettuare sarà minimo! - Modifichiamo l'esercizio 8 del secondo laboratorio. Il codice originale era il seguente:
Vorremmo renderlo più facile da leggere definendo delle funzioni aggiuntive:
tags_cercati = ["grammys", "chappellRoan", "sabrinaCarpenter"] tags_del_post = ["grammys", "doechii"] post_visualizzato = False for tag_del_post in tags_del_post: for tag_cercato in tags_cercati: if tag_cercato == tag_del_post: post_visualizzato = True break if post_visualizzato: print("✅ Il post verrà mostrato") else: print("❌ Il post non verrà mostrato")
post_visualizzato(post)
che restituisce unBool
che dice se ilpost
passato come primo argomento va visualizzato o meno a seconda deitag_cercati
passati come secondo argomento:Per implementare la funzionedef post_visualizzato(post, tag_cercati): # implementare la funzione... return True tags_cercati = ["grammys", "chappellRoan", "sabrinaCarpenter"] post = ["grammys", "doechii"] if post_visualizzato(post, tags_cercati): print("✅ Il post verrà mostrato") else: print("❌ Il post non verrà mostrato")
post_visualizzato
definire e utilizzare una nuova funzioneintersezione
che prende in input due liste e restituisce una nuova lista con i soli elementi in comune fra le due. - Riprendiamo l'esercizio della calcolatrice, vogliamo renderlo più facile da leggere utilizzando delle funzioni; una
volta modificato il codice apparirà come segue:
# Preso un `input` di tipo Stringa nel seguente formato `n operatore m`, lo spezza in una lista con # 3 elementi nel seguente ordine `[n, operatore, m]`: # - `n` e `m` sono due valori di tipo `float` # - `operatore` è la stringa fra i due operandi `n` e `m` # Se la stringa non è in un formato valido, restituisce una lista vuota! def operazione_da_testo(input): # Implementare la funzione return [] # Dati due numeri `n` e `m`, e un `operatore` espresso come una stringa, applica l'operazione corrispondente # ad `n` e `m`. Gli unici operatori supportati sono `+` e `*`, se viene dato in input un qualunque altro # operatore il risultato è `None` def applica_operazione(n, operatore, m): # Implementare la funzione return None while True: testo_input = input() if testo_input == "stop": break operazione = operazione_da_testo(testo_input) if len(operazione) == 3: [n, operando, m] = operazione risultato = applica_operazione(n, operando, m) if risultato != None: print(f"{n} {operando} {m} = {risultato}") else: print(f"Operando non supportato: '{operando}'") else: print("l'operazione fornita non ha un formato valido")
- Scrivere una funzione
anagrammi
che data una parola e una lista di parole restituisce una lista con le sole parole che sono un anagramma della parola passata come primo argomento. La funzione deve passare i seguenti test:risultato = anagrammi("stone", ["tones", "dog", "notes"]) test_uguali(risultato, ["tones", "notes"]) risultato = anagrammi("stone", ["dog", "cat"]) test_uguali(risultato, [])
- L'istituto di meteorologia raccoglie dati relativi alle temperature di diverse stazioni che rilevano la temperatura
sul territorio di Forlì-Cesena. Tutti i dati di una giornata sono raccolti nel seguente formato:
Ogni riga contiene tre valori: il nome della città in cui è stata rilevata la temperatura, l'orario in cui è stata effettuata la rilevazione e la temperatura rilevata. Si vuole realizzare un programma che data una stringa in questo formato determina qual è la città nella quale è stata misurata la temperatura maggiore. Per esempio, con l'input mostrato la risposta dovrebbe essere "forlimpopoli"
cesena, 10:00, 15.0 forlimpopoli, 10:00, 15.5 bagno di romagna, 10:00, 14.8 cesena, 11:00, 15.5 forlimpopoli, 11:00, 16.0 bagno di romagna, 11:00, 15.0 cesena, 20:00, 10.0 forlimpopoli, 20:00, 10.0 bagno di romagna, 20:00, 8.0
- difficile Scrivere una funzione
da_resto
che prende in input due argomenti: il prezzo di un prodotto e quanto è stato pagato e determina quale deve essere il resto fornito utilizzando il minor numero possibile di banconote da 10, 5 o monete da 2 e 1 euro. Facciamo un esempio: se la spesa è di 80€ e io ho pagato con 100€ allora il resto che mi dia il minor numero di banconote/monete sarà con due sole banconote da 10€.test_uguali(resto(80, 100), [10, 10]) test_uguali(resto(58, 70), [10, 2]) test_uguali(resto(37, 60), [10, 10, 2, 1])
Last active
March 8, 2025 07:54
-
-
Save giacomocavalieri/ae941fd029c9b61af15584f88d84ca42 to your computer and use it in GitHub Desktop.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment