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 # sin()

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 # sin()

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 # sin()

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, …