Scrivere una funzione espandi
che, data una stringa di caratteri s e un intero k,
stampa la stringa s in modo che tra ciascuna coppia di caratteri vengano stampati k spazi, pił un ";" al termine. Ad esempio, la chiamata
espandi("Esame", 2)
dovrebbe produrre la stampa
E s a m e;mentre la chiamata
espandi("Esame", 3)
dovrebbe produrre la stampa
E s a m e;
Aggiungere alla funzione precedente un parametro opzionale, che per default vale False, che indica se la stampa deve essere eseguita usando solo lettere maiuscole. Quindi la chiamata espandi("Esame", 2)
, così come la chiamata espandi("Esame", 2, False)
, continua a produrre l'effetto mostrato in precedenza, mentre la chiamata espandi("Esame", 2, True)
dovrebbe produrre la stampa
E S A M E;
Scrivere una funzione che, date due stringhe della stessa lunghezza, le stampa in verticale una affianco all'altra separate da due spazi. Se la funzione viene chiamata con argomenti "pippo" e "pluto" deve essere prodotta la stampa
p p i l p u p t o o
Modificare la funzione precedente in modo che si comporti correttamente anche in presenza di stringhe di lunghezza diversa. Se la funzione viene chiamata con argomenti "topolino" e "pippo" deve essere prodotta la stampa
t p o i p p o p l o i n oMentre se la funzione viene chiamata con argomenti "pippo" e "topolino" deve essere prodotta la stampa
p t i o p p p o o l i n o
Scrivere una funzione che restituisce il fattoriale di un numero naturale. Se la funzione viene chiamata con un argomento negativo deve essere sollevata una eccezione. Lo stresso dovrebbe accadere se l'argomento non è intero. Una eccezione è una anomalia durante l'esecuzione che, nel caso più semplice, blocca l'esecuzione di un programma, mostrando a video il tipo di errore. Ad esempio, si può includere nella funzione una istruzione del tipo
if CONDIZIONE: raise ValueErrorVerificare il buon funzionamento della funzione realizzata eseguendo il seguente programma di prova:
print(fattoriale(5)) # deve stampare 120 print(fattoriale(1)) # deve stampare 1 print(fattoriale(20)) # deve stampare 2432902008176640000 print(fattoriale(0)) # deve stampare 1 print(fattoriale(-5)) # deve mostrare un errore di tipo ValueError print(fattoriale(4.56)) # anche questo deve mostrare un errore di tipo ValueError
Stampare, per valori di n
che vanno da 10 a 30, la differenza tra il valore di n!
e l'approssimazione di Stirling del fattoriale. Il valore di pi greco è disponibile come math.pi
, e il valore della costante e
è disponibile come math.e
. È preferibile stampare tutti i valori come float
.
Mostrare che all'aumentare di n
il rapporto tra n!
e l'approssimazione di Stirling si avvicina a 1.
Mostrare l'andamento del rapporto per valori di n
che vanno da 10 a 50, con passo 5 (quindi per i valori 10, 15, 20, 25, ..., 50).