Python 3 per a no programadors/Usant mòduls


Creem un fitxer cal.py

import busca un fitxer amb el nom de calendar.py i el llegeix. Si el fitxer s'anomena calendar.py i veu un calendari per importar aleshores prova de llegir-ne el contingut.:

import calendar
year = int(input("Escriviu el número de l'any: "))
calendar.prcal(year)

I aquí hi ha part del resultat que s'obté:

Escriviu el número de l'any: 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        

(En aquest exemple no s'ha inclòs tot, però serveix per veure'n el funcionament) Aleshores, què fa el programa? La primera línia import calendar fa servir una nova ordre import. L'ordre import carrega un mòdul (en aquest cas el mòdul calendar). Les ordres disponibles per qualsevol dels mòduls estàndard es poden trobar a la biblioteca de referència per python (si l'heu descarregat) o anar a http://docs.python.org/library/. Llegint la documentació per al mòdul de calendari podem trobar una funció anomenada prcal que retorna el calendari per a un any concret. La línia calendar.prcal(year) utilitza aquesta funció. En resum, per fer servir un mòdul s'ha d'importar (import) i aleshores utilitzar module_name.function per les funcions del mòdul. Una altra forma d'escriure el programa és:

from calendar import prcal

year = int(input("Escriviu el número de l'any: "))
prcal(year)

Aquesta versió importa una funció específica d'un mòdul. Aquí hi ha un altre programa que fa servir la Biblioteca de Python (es pot anomenar com a clock.py) (premeu Ctrl+C a la vegada per aturar l'execució del programa):

from time import time, ctime

prev_time = ""
while True:
    the_time = ctime(time())
    if prev_time != the_time:
        print("El dia i l'hora és:", ctime(time()))
        prev_time = the_time

Alguns resultats com a exemple:

El dia i l'hora és: Sun Aug 20 13:40:04 2000
El dia i l'hora és: Sun Aug 20 13:40:05 2000
El dia i l'hora és: Sun Aug 20 13:40:06 2000
El dia i l'hora és: Sun Aug 20 13:40:07 2000

Traceback (innermost last):
 File "clock.py", line 5, in ?
    the_time = ctime(time())

KeyboardInterrupt

Els resultats són infinits, i per tant ho hem cancel·lat (continua fins que premem Ctrl+C). El programa simplement fa un bucle infinit (True sempre és veritat, per la qual cosa while True: continua funcionant sense aturar-se) i cada vegada comprova si l'hora ha canviat i escriu aquesta hora. Observeu com els noms múltiples després de la declaració d'importació es troben a la línia from time import time, ctime.

La Biblioteca de Python té diverses funcions útils. Aquestes funcions donen als vostres programes més possibilitats que poden simplificar la programació en Python.

Exercicis

modifica

Torneu a escriure el programa high_low.py de la secció Decisions fent servir un nombre enter aleatori entre 0 i 99 en comptes del nombre per defecte "78". Feu servir la documentació de Python documentation per trobar el mòdul i la funció adients per fer-ho.