Lingua:IT
Pagine: 72
RatingValutazione: ⭐⭐⭐⭐⭐
Prezzo: $10.99
Pagina 1 Anteprima
molto probabile che siano ampi margini miglioramen

Molto probabile che siano ampi margini miglioramento

Esercizi di Python
Per studenti di
Sperimentazioni di Fisica I Modulo A Corso di Laurea in Astronomia

A. Baruffolo
INAF — Osservatorio Astronomico di Padova &
Universit` a di Padova — Dipartimento di Fisica e Astronomia

1
4
2
5
3

Esercizio 1 Aree e volumi

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

Esercizio 2 Calcolo del montante

5
. . . . . . . . . . . . . . . . . . . 5
. . . . . . . . . . . . . . . . . . . 5

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

Esercizio 6 Pressione atmosferica

. . . . . . . . . . . . . . . . . . . . . . . . . . 6
9
4
9
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Esercizio 9 Estrazione da lista

. . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Esercizio 10 Conteggio di cifre

. . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
10
13
5
. . . . . . . . . . . . . . . . . . 13

Esercizio 13 Somma di numeri naturali con while

. . . . . . . . . . . . . . . . . 13

Esercizio 14 Iterare su slice

13
. . . . . . . . . . . . . . . . . . . . . . . . . 13
14

Esercizio 17 Successione di Tribonacci

. . . . . . . . . . . . . . . . . . . . . . .

14
. . . . . . . . . . . . . . . . . . . . . . . . . . 14
15

. . . . . . . . . . . . . . . . . . . . . . . . . .

15

Esercizio 21 Triangolo inverso di numeri

. . . . . . . . . . . . . . . . . . . . . . 15
16
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

. . . . . . . . . . . . . . . . . . . . . . .

16

Esercizio 25 Quadrato di ’*’

. . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
17
17

Esercizio 28 Triangolo rettangolo sinistro e inverso di ’*’

. . . . . . . . . . . .

17
. . . . . . . . . . . . . . . . . . 18
. . . . . . . . . . . . . 18
18

Esercizio 32 Triangolo isoscele di ’*’

. . . . . . . . . . . . . . . . . . . . . . .

18
19
19

Selezione if

26

Esercizio 35 Freddo o caldo

26
26

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26

Esercizio 38 Anno bisestile

27
. . . . . . . . . . . . . . . . . . . . . . . . . . 27

Esercizio 40 Iterazioni con if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Esercizio 41 Ciclo di comandi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Esercizio 45 Formula di Erone . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

Esercizio 46 Radici di equazione di secondo grado . . . . . . . . . . . . . . . . . 37

Esercizio 51 Da decimale a binario . . . . . . . . . . . . . . . . . . . . . . . . . 39

Esercizio 52 Da decimale a binario, ricorsivamente . . . . . . . . . . . . . . . . 40

Esercizio 57 Numeri di Thabit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

Esercizio 58 Teorema di Pitagora . . . . . . . . . . . . . . . . . . . . . . . . . . 42

Esercizio 63 Algoritmo di Horner ricorsivo . . . . . . . . . . . . . . . . . . . . . 43

Esercizio 64 Giorno Giuliano . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

Esercizio 68 Serie per e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

Esercizio 69 Serie per e, ricorsiva . . . . . . . . . . . . . . . . . . . . . . . . . . 53

Esercizio 73 Lotto (choice) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

Esercizio 74 Lotto (random index) . . . . . . . . . . . . . . . . . . . . . . . . . . 55

Esercizio 78 Thabit, versione numpy . . . . . . . . . . . . . . . . . . . . . . . . 59

Esercizio 79 Montante, versione numpy . . . . . . . . . . . . . . . . . . . . . . . 59

Esercizio 83 Grafico di polinomio . . . . . . . . . . . . . . . . . . . . . . . . . . 60

Esercizio 84 Riproduci grafico . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

Esercizio 88 Gioco dell’oca semplificato . . . . . . . . . . . . . . . . . . . . . . . 66

Esercizio 89 Area di Macchia Nera . . . . . . . . . . . . . . . . . . . . . . . . . 66

Gli esercizi riportati in questa raccolta assumono che lo studente sia familiare con i concetti di Python illustrati durante il laboratorio. In particolare lo studente deve sapere:
ˆcome scrivere ed eseguire brevi programmi nella finestra di editor di IDLE;
ˆcome importare moduli ed utilizzare le relative funzioni (limitatamente a quelle usa- te durante il laboratorio). I moduli utilizzati pi` u di frequente sono: math, random, matplotlib.pyplot, numpy, numpy.random;
ˆcome scrivere brevi funzioni con parametri opzionali e che ritornino dei valori al chiamante;

Alcuni costrutti utilizzati di frequente in questi esercizi sono:
ˆInput di una stringa da parte dell’utente, tramite la funzione cmd = raw input("Stringa di prompt: ");
ˆConversione del contenuto di una variable in intero, tramite funzione int(), in floating point, funzione float(), o in stringa, funzione str().

Uso diretto dell’interprete Python

I seguenti esercizi servono a prendere dimestichezza con il modo in cui numeri e formule vengono scritti in modo da poter essere interpretati correttamente da un computer e in particolare da Python. Bisogna ricordare che:

Esercizio 1

1. la circonferenza del cerchio di raggio 3.0 m;
2. l’area dello stesso cerchio;
3. il volume della sfera avente lo stesso raggio.

Esercizio 2 Calcolo del montante: Sapendo che il montante ` e dato dalla somma di capitali e interessi, ovvero Montante = Capitale · (1 + i), dove i ` verificare che il montante di un capitale di 1000 e, investito al tasso i = 4% per un anno e espresso in percentuale,

Esercizio 3
Sapendo che un pollice equivale
Esercizio 4
Sapendo che un pollice equivale

a 2.54 centimetri, convertire in pollici le seguenti misure:
1. Diametro dello specchio primario del (3.58 m);
2. Diametro dello specchio primario di ciascuno degli (8.20 m).

Esercizio 5

Approssimare π:

3. 355/113 ` e un’approssimazione di π con accuratezza 8 · 108

Hint: calcolate prima la frazione indicata e poi calcolate il rapporto tra la differenza tra la

formula:

P = 0.9877

(2.1)

>>> pi = 3.14159265
>>> r = 3.0
>>> 2.0*pi*r
18.849555900000002
>>> pi*r*r
28.274333850000005
>>> 4./3.*pi*r*r*r
113.09733539999999

Il volume si pu` o anche calcolare usando l’elevamento a potenza:

>>> in2cm = 2.54 # inches to centimeters >>> 14.0*in2cm # diametro M1 C14 in cm 35.56
>>> 200.0*in2cm # diametro M1 Hale in cm 508.0

Soluzione dell’esercizio 4

3.141509433962264
>>> (333./106.-pi)/pi
-2.648962704990393e-05
>>> 355./113.

3.1415929203539825
>>> (355/113.-pi)/pi
8.491679599397461e-08

Capitolo 3

Liste

Esercizio 7
Esercizio 8

Al prompt di IDLE, generare una lista coi numeri da 1 a 30

usando la funzione range(). Da questa lista generare, usando le slices, altre liste contenenti: 1. i numeri tra 11 e 20 (entrambi inclusi)
2. i numeri della lista di partenza che sono dispari
3. i numeri della lista di partenza che sono pari
4. i numeri della lista di partenza che sono divisibili per tre
5. i numeri della lista di partenza che sono divisibili per cinque
6. la lista di partenza invertita (= i numeri da 30 a 1)
7. i numeri della lista di partenza che sono pari in ordine decrescente
8. i numeri della lista di partenza che sono divisibili per cinque in ordine decrescente

Esercizio 9
Esercizio 10

Scrivere un programma che definisca la seguente

lista:

altre parole, alla fine dell’esecuzione l’i–esimo elemento di n dovr` a corrispondere al numero di

volte che la cifra i appare in l. Risultato atteso:

Esercizio 11

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor

incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud

Procedimento:

ˆ Facendo copia e incolla, definire una variabile che contenga il testo Lorem ipsum (ricordate

ˆ inizializzare una lista n_letter vuota che conterr` a il numero di occorrenze per ciascuna

lettera dell’alfabeto;

ˆ in un secondo ciclo, separato, su tutte le lettere in alphabet, stampare a schermo la

lettera e il numero di volte che compare in Lorem ipsum.

d : 18

e : 37

z : 0

10

Soluzione dell’esercizio 9

1. pop_append1.py:
n = range(1,31)
p = []
for i in range(1,16):
p.append(n.pop(i))
print p

l = [3, 0, 2, 6, 3, 3, 8, 3, 2, 1, 0, 7, 8, 3, 6, 6, 1, 4, 8, 5, 6, 7, 8, 2, 7, 7, 6, 5, 3, 5] n = []
for i in range(10):
n.append(l.count(i))
print n

Soluzione dell’esercizio 11

for i in range(len(alphabet)):
print alphabet[i],’: ’,n_letter[i]

12

Esercizio 13

Scrivere un programma

Python che, usando un ciclo while, calcoli e mostri a video la somma dei primi 100 numeri naturali.

Esercizio 14

2. iterate sulla sotto-lista formata da tutti i numeri pari (identificata usando le slice), e stampateli su una sola riga;

3. iterate sulla sotto-lista formata da tutti i numeri divisibili per cinque (identificata usando le slice), e stampateli su una sola riga.

Hint: Ricordate che mettendo una virgola alla fine dell’istruzione print il testo non va a capo.
Esercizio 15
Calcolare e stampare a schermo le tabelline

Tra una tabellina e l’altra lasciate una riga vuota. Output atteso:

1 x 1

=

1 x 2
1 x 3

3

1 x 4

=

1 x 5
1 x 6

6

1 x 7

=

1 x 8
1 x 9

9

1 x 10 =

10

2 x 1
2 x 2

13

...
...

10 x 9
10 x 10 =
Esercizio 16

Successione di Fibonacci:

definita cos`ı:

N0 =
=
N1
Nn =

1. un ciclo while;

2. un ciclo for;

Esercizio 17
N0 =

0

N1 =

1

N2 =
=
Nn

2. un ciclo for;

Il risultato atteso ` e:
0 1 1 2 4 7 13 24 44 81 149 274 504 927 1705 3136

Esercizio 19 Algoritmo di Gauss–Legendre: L’ ` un algoritmo per il calcolo di π noto per convergere molto rapidamente. E stato utilizzato

ripetutamente nella seconda met` a del secolo scorso per calcolare progressivamente da decine di milioni fino a centinaia di miliardi di cifre di π.

ˆ definire una variabile intera niter = 5, numero di iterazioni da effettuare;

ˆ iterare per niter volte e ad ogni passo calcolare e stampare l’approssimazione di π:

Y =
A =
B =
C =
X =

(A + B)2

π

4C

Esercizio 20

Scrivere una funzione che accetti un parametro

n intero in input e stampi “un triangolo di numeri”, ovvero n righe di lunghezze crescenti da uno a n, contenenti i numeri da uno al numero della riga. Esempio:

Esercizio 21

15

>>> num_triangle_inv(5)
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1

Esercizio 22
Scrivere una funzione che stampi il

Esercizio 23 Diagonale di ’*’: Scrivere un programma che richieda all’utente un numero intero n in input. Il programma poi stampa n asterischi ’*’ in diagonale da sinistra verso destra.

Esempio:
Numero: 5

Hint: Notare che, se n ` e il numero di ’*’ sulla diagonale, gli spazi da stampare per riga vanno
Esercizio 24
Scrivere un programma che richieda all’u-
tente un numero intero n in input. Il programma poi stampa n asterischi ’*’ in diagonale da

Esempio:
Numero: 5

*
*
*
*
*

Hint: Notare che, se n ` e il numero di ’*’ sulla diagonale, gli spazi da stampare per riga vanno
Esercizio 25
Scrivere un programma che richieda all’utente un
numero intero n in input. Il programma poi stampa un quadrato n × n di asterischi ’*’.

*****
*****
*****
*****
*****

Notare che, siccome sullo schermo i caratteri non occupano lo stesso spazio in orizzontale e verticale, il “quadrato” risultante non appare quadrato ai nostri occhi.

Esercizio 26
Scrivere un programma che richieda all’utente due

Notare che, siccome sullo schermo i caratteri non occupano lo stesso spazio in orizzontale e verticale, il “quadrato” risultante non appare quadrato ai nostri occhi.

Esercizio 27

Triangolo rettangolo sinistro di ’*’:

Hint: In pratica si tratta di iterare n volte, ad ogni passo stampando un numero crescente di

’*’ partendo da uno.

Scrivere un

Esercizio 28
Hint: In pratica si tratta di iterare n volte, ad ogni passo stampando un numero decrescente

di ’*’ partendo da n.

17

Esercizio 29

*
**
***
****
*****

Hint: In pratica si tratta di iterare n volte, ad ogni passo stampando un numero decrescente

di spazi (), partendo da n −1, e un numero crescente di ’*’ partendo da uno.

Hint: In pratica si tratta di iterare n volte, ad ogni passo stampando un numero crescente di
Esercizio 31

Piramide di ’*’ in piedi:

Scrivere un programma che richieda

Esercizio 32

Triangolo isoscele di ’*’:

Scrivere un programma che richieda all’u-

tente un numero intero n in input. Il programma poi stampa un triangolo isoscele di asterischi’*’ con vertice in alto e altezza di n ’*’.

Esercizio 33

Triangolo isoscele capovolto di ’*’:

Scrivere un programma che

richieda all’utente un numero intero n in input. Il programma poi stampa un triangolo isoscele capovolto di asterischi ’*’ con base in alto e altezza di n ’*’.

Esercizio 34
Scrivere un programma che richieda all’utente un
numero intero n in input. Il programma poi stampa un rombo di asterischi ’*’, avente diagonale

maggiore uguale alla diagonale minore e pari a base 2n −1 ’*’.

Esempio:
Numero: 5

Stai visualizzando 1/3 del documento.Acquista il documento per ottenere l'accesso completo immediatamente

Subito disponibile dopo il pagamento
Sia online che scaricabili
Senza obblighi
Come funziona
Login account
Accedi al tuo account
Place in cart
Aggiungi al carrello
send in the money
Fare un pagamento
Document download
Download File
img

caricato da: Matemanziaria

ID pagina: DOC76F867F