Subsections

12. Usare i moduli

Questo è l'esercizio del capitolo (chiamatelo cal.py): 12.1:
import calendar

year = input("Type in the year number:")
calendar.prcal(year)
E qui una parte dell'output:
Type in the year number:2001
                                  2001                                  

       January                  February                    March       
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
 1  2  3  4  5  6  7                1  2  3  4                1  2  3  4     
 8  9 10 11 12 13 14       5  6  7  8  9 10 11       5  6  7  8  9 10 11     
15 16 17 18 19 20 21      12 13 14 15 16 17 18      12 13 14 15 16 17 18     
22 23 24 25 26 27 28      19 20 21 22 23 24 25      19 20 21 22 23 24 25     
29 30 31                  26 27 28                  26 27 28 29 30 31
Ho saltato parte dell'output, credo vi siate fatti un'idea. Cosa fa il programma? La prima linea import calendar usa un nuovo comando: import. Il comando import carica un modulo (in questo caso il modulo calendar). Per vedere i comandi disponibili nei moduli standard cercate nella ``library reference'' (se l'avete scaricata) o sul sito ufficiale http://www.python.org/doc/current/lib/lib.html. Il modulo calendar è descritto nel capitolo 5.9. Se leggete la documentazione vi accorgerete di una funzione chiamata prcal che visualizza il calendario di un anno. La linea calendar.prcal(year) usa la funzione descritta. Riassumendo, per utilizzare un modulo importatelo, quindi usate nome_modulo.funzione per utilizzare le funzioni del modulo. Un'altro modo per scrivere il programma:
from calendar import prcal

year = input("Type in the year number:")
prcal(year)
Questa versione importa una specifica funzione dal modulo. Creiamo un'altro programma utilizzando le funzioni della Python Library (chiamate il file clock.py)(premete i tasti 'Ctrl' e 'c' per chiudere il programma):
from time import time, ctime

prev_time = ""
while(1):
    the_time = ctime(time())
    if(prev_time != the_time):
        print "The time is:",ctime(time())
        prev_time = the_time
E questo l'output dell'esempio:
The time is: Sun Aug 20 13:40:04 2000
The time is: Sun Aug 20 13:40:05 2000
The time is: Sun Aug 20 13:40:06 2000
The time is: Sun Aug 20 13:40:07 2000
Traceback (innermost last):
  File "clock.py", line 5, in ?
    the_time = ctime(time())
KeyboardInterrupt
L'output è ovviamente infinito, così l'ho interrotto (l'output continua fino a quando non premete 'Ctrl+c'). Il programma entra semplicemente in un cliclo infinito ed esegue un controllo per vedere se l'orario è cambiato, nel qual caso visualizza il nuovo orario sul monitor. Fate attenzione a come import è utilizzato nella linea from time import time, ctime per richiamare più di una funzione.

La Python Library contiene molte funzioni utili che semplificano la programmazione in Python.

12.1 Esercizio

Riscrivete il programma high_low.py della sezione 5.2 usando le ultime due cifre della funzione time per rendere il numero 'random' (casuale).



Footnotes

...cal.py): 12.1
Import cerca un file di nome calendar.py e lo legge. Se il file chiamante si chiama calendar.py e contiene 'import calendar' cerca di leggere in sé stesso con risultati quantomeno scarsi.