- Scrivere dei test per una funzione
ordinata_crescente
che prende in input una lista di valori e restituisceTrue
se questa è in ordine crescente,False
altrimenti. - Implementare la funzione
ordinata_crescente
. - Scrivere una funzione
fibonacci
che prende in input un numeron
e restituisce l'n-esimo numero della sequenza di Fibonacci. (I primi due numeri della sequenza di Fibonacci sono 1 e 1, tutti i numeri successivi vengono calcolati facendo la somma dei due numeri precedenti). - Scrivere dei test per questa funzione. Pensare, cosa potrebbe restituisce la funzione se viene passato in input un numero negativo?
- Scrivere una funzione
conta
che prende in input una lista e un valore qualsiasi e restituisce il numero di volte che questo elemento appare nella lista. Alcuni test d'esempio:
def primo_giorno_libero(impegnati): | |
# Scorro tutti i possibili giorni del mese. | |
# Se trovo un giorno del mese che non è impegnato e | |
# nemmeno i due giorni successivi sono impegnati | |
# allora ho trovato un giorno libero valido. | |
for giorno in range(1, 31): | |
if not giorno in impegnati: | |
if not giorno + 1 in impegnati: | |
if not giorno + 2 in impegnati: | |
return giorno |
- Descrivere a parole cosa fa il seguente pezzo di codice:
Qual' è il valore finale di
n = 10 l = [] while n >= 0: l.append(n) n -= 1
l
?
Una molecola di DNA si compone di due filamenti a formare una doppia elica. Ciascun filamento è composto da 4 possibili basi azotate: Adenina (A), Timina (T), Guanina (G) e Citosina (C).
- Scrivere una funzione
filamento_valido
che prende in input una stringa e restituisceTrue
se questa rappresenta un filamento di DNA valido,False
altrimenti. Per esempio"ATGCCG"
è un filamento valido perché contiene le sole basi valide,"RACG"
non è valido dato cheR
non è una delle basi azotate del DNA. - Scrivere almeno 4 test per la funzione, quali sono casi particolari a cui prestare attenzione?
I filamenti che compongono la doppia elica del DNA si legano fra loro secondo uno specifico pattern; infatti, le uniche coppie che possono formarsi fra basi sono: adenina con timina (e viceversa), e guanina con citosina (e viceversa).
- L'istituto di meteorologia ha raccolto misurazioni sulla temperatura di diverse città in diverse giornate.
Ogni misurazione giornaliera riporta una serie di righe, ciascuna delle quali presenta il nome della città
in cui è stata effettuata la misurazione, l'orario della misurazione e la temperatura rilevata.
Per esempio, questi sono i dati rilevati nella giornata di martedì:
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
- 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:test_uguali(massimo([1, 2, 3]), 3) test_uguali(massimo([]), None)
test_uguali(massimo([-1, 100, 0]), 100)
- Scrivere un programma che prende in input una stringa rappresentante una divisione nel seguente formato
1 / 2
e ne stampa il risultato. Attenzione, in caso di divisione per zero stampare"divisione per zero"
. - Scrivere un programma che prende in input una lista di numeri nel seguente formato
1; 2; 4; 10; 11; 20
e ne stampa la media. Attenzione, in caso non sia stato inserito alcun numero stampare "non è stato inserito alcun numero"
- Modifichiamo l'esercizio 8 del secondo laboratorio. Il codice originale era il seguente:
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
periodi = input("Inserisci un testo").split(".") | |
riassunto = "" | |
for periodo in periodi: | |
parole = periodo.strip().split(" ") | |
# Se il periodo ha una singola parola aggiungo solo quella al | |
# riassunto finale che andrò a stampare. Non posso ignorarla. | |
if len(parole) == 1: | |
[parola] = parole | |
riassunto = riassunto + f"{parola}... " |
Dopo un allenamento in bicicletta Gianluca consulta il proprio smartwatch che ha memorizzato, per ogni tappa del percorso, l'altitudine rispetto al livello del mare nella seguente lista di numeri:
altitudini = [-2, 0, 20, 50, 90, 70, 0]
Ciò significa che è partito da un punto che si trovava 2 metri sotto al livello del mare, e l'altitudine massima raggiunta è stata di 100 metri sopra al livello del mare. Scrivere un programma Python che determina qual è stata la variazione massima in salita fra due tappe consecutive. In questo caso la variazione massima è stata di 40 metri in salita.