Angoli e funzioni – While

Visualizza la tabella della funzione seno con

  • 0° <= angolo < 360°
  • passo=15°

1

Le funzioni trigonometriche accettano solo angoli espressi in radianti

import math                                       # sin()
gradi = 0                                         # Inizializzazione
while(gradi < 360):                               # Controllo
    x = math.radians(gradi)                       # Utilizzazione 
    print("Gradi:", gradi, "Seno:", math.sin(x))
    gradi = gradi+15                              # Aggiornamento

2

Con le costanti il codice è più leggibile

import math
 
START = 0
STOP  = 360
STEP  = 15
 
gradi = START
while(gradi < STOP):
    x = math.radians(gradi) 
    print("Gradi:", gradi, "Seno:", math.sin(x))
    gradi = gradi+STEP

3

Visualizza anche i radianti, separa i dati dalle etichette

...
    print("Gradi: %i Radianti: %f Seno: %f" %(gradi, x, math.sin(x)))
...

4

Aggiungi la funzione coseno, fissa il numero di colonne e di cifre decimali per ogni valore numerico

...
    x      = math.radians(gradi)
    seno   = math.sin(x)
    coseno = math.cos(x)
    print("Gradi: %3i Radianti: %5.3f Sin: %6.3f Cos: %6.3f" %(gradi, x, seno, coseno))
...

5

Migliora la presentazione dei dati

  1. 4 colonne della stessa larghezza
  2. le etichette nella prima riga
  3. le etichette centrate rispetto alla colonna
  4. effetto cornice per le etichette e i dati
  5. i dati decimali con 6 cifre dopo la virgola

import math
 
START = 0
STOP  = 360
STEP  = 15
 
print("+------------+------------+------------+------------+")
print("| %10s | %10s | %10s | %10s |"
      %("Gradi".center(10), "Radianti".center(10), "Seno".center(10), "Coseno".center(10)))
print("+------------+------------+------------+------------+")
 
gradi = START
while(gradi < STOP):    
    x      = math.radians(gradi)
    seno   = math.sin(x)
    coseno = math.cos(x)
    print("| %10i | %10.6f | %10.6f | %10.6f |" %(gradi, x, seno, coseno))
 
    gradi  = gradi+STEP
     
print("+------------+------------+------------+------------+")

6

La cornice può essere realizzata ancora più realistica utilizzando i codici ASCII dei caratteri grafici

import math
 
START = 0
STOP  = 360
STEP  = 15
 
print("╔════════════╦════════════╦════════════╦════════════╗")
print("║ %10s ║ %10s ║ %10s ║ %10s ║"
      %("Gradi".center(10), "Radianti".center(10), "Seno".center(10), "Coseno".center(10)))
print("╠════════════╬════════════╬════════════╬════════════╣")
 
gradi = START
while(gradi <= STOP): 
    x      = math.radians(gradi)
    seno   = math.sin(x)
    coseno = math.cos(x)
    print("║ %10i ║ %10.6f ║ %10.6f ║ %10.6f ║"
          %(gradi, x, seno, coseno))
    gradi. = gradi+STEP
 
print("╚════════════╩════════════╩════════════╩════════════╝")

Visualizzare dei dati in forma tabellare è un’esigenza molto comune.
Esistono dei moduli specifici: prettytable, tabulate, texttable, …