L’intèrpret de Python, modes de treball¶
Conceptes¶
Treball en mode shell
Treball en mode script
Treball en mode shell¶
Mode de treball adequat per fer petits experiments.
Per entrar a la shell de Python cal prémer la comanda python3:
nom@cognom:~/fi/sessio1$ python3
Entrem a la shell de Python tal com ens informen les línies següents i aquesta ens mostra el seu prompt consistent en 3 símbols de més gran, >>>:
Python 3.2.3 (default, Feb 27 2014, 21:31:18) <br>
[GCC 4.6.3] on linux2<br>
Type "help", "copyright", "credits" or "license" for more information.<br>
>>>
Ara podem entrar el nostre programa línia a línia:
>>> radi = 6
>>> àreacercle = radi * 2 * 3.14
>>> print(àreacercle)
37.68
>>>
Per fer una nova versió del programa, podem recuperar una línia usant la tecla amb la fletxa cap amunt. Pel següent exemple s’han recuperat les línies 2, 3 i 4.
>>> import math
>>> radi = 6
>>> àreacercle = radi * 2 * math.pi
>>> print(àreacercle)
37.69911184307752
>>>
Per sortir de la shell, cal prémer les tecles Ctrl D. Aleshores torna a sortir el prompt del sistema operatiu.
nom@cognom:~/fi/sessio1$
A continuació es mostra la seqüència de línies que veuríem a la terminal per l’exemple anterior.
nom@cognom:~/fi/sessio1$ python3
Python 3.2.3 (default, Feb 27 2014, 21:31:18)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> radi = 6
>>> àreacercle = radi * 2 * 3.14
>>> print(àreacercle)
37.68
>>> import math
>>> radi = 6
>>> àreacercle = radi * 2 * math.pi
>>> print(àreacercle)
37.69911184307752
>>>
nom@cognom:~/fi/sessio1$
També podem fer dissenys que requereixin indentar, usant la tecla Tab:
>>> def divent (num, den):
... if den == 0:
... return 'error'
... else:
... return num//den, num%den
...
>>> divent(17,5)
(3, 2)
>>> divent(17,0)
'error'
>>>
Treball en mode script¶
És el mode habitual de treball. Editem el programa amb l’entorn de treball idle o amb algun altre editor.
nom@cognom:~/fi/sessio1$ idle p1.py &
A dins del fitxer hi escrivim el contingut següent:
import math
radi = 6
àreacercle = radi * 2 * math.pi
print(àreacercle)
Executem el programa p1.py:
nom@cognom:~/fi/sessio1$python3 p1.py <br>
37.69911184307752
Quan el disseny correspon a una funció, podem executar-la en mode shell o be escrivint el programa principal que la crida o bé amb l’eina doctest que es veurà més endavant.
Exemple:
Editem la funció següent amb l’editor emacs:
nom@cognom:~/fi/sessio1$idle p2.py &
A dins del fitxer hi copiem el contingut següent:
def divent (num, den):
if den == 0:
return 'error'
else:
return num//den, num%den
Per executar-la en mode shell:
nom@cognom:~/fi/sessio1$ python3 <br>
Python 3.2.3 (default, Feb 27 2014, 21:31:18) <br>
[GCC 4.6.3] on linux2<br>
Type "help", "copyright", "credits" or "license" for more information.
>>> import p2
>>> p2.divent(17,5)
(3, 2)
>>> p2.divent(17,0)
'error'
>>>
nom@cognom:~/fi/sessio1$
Per executar-la escrivint un programa principal ad hoc, cal modificar el contingut del fitxer p2.py:
def divent (num, den):
if den == 0:
return 'error'
else:
return num//den, num%den
# programa principal per executar la funció
print(divent(17,5))
print(divent(17,0))
i executar-lo:
nom@cognom:~/fi/sessio1$ python3 p2.py
(3, 2)
error
Per executar-la usant doctest, cal modificar el contingut del fitxer p2.py:
def divent (num, den):
"""
>>> divent(17,5)
(3, 2)
>>> p2.divent(17,0)
'error'
"""
if den == 0:
return 'error'
else:
return num//den, num%den
i executar-lo:
nom@cognom:~/fi/sessio1$ python3 -m doctest p2.py -v
Trying:
divent(17,5)
Expecting:
(3, 2)
ok
Trying:
divent(17,0)
Expecting:
'error'
ok
1 items had no tests:
p2
1 items passed all tests:
2 tests in p2.divent
2 tests in 2 items.
2 passed and 0 failed.
Test passed.
Si el nombre de tests que es passen és llarg, serà convenient afegir la comanda more a fi que ens retorni la informació pantalla a pantalla.
S’executa com:
nom@cognom:~/fi/sessio1$ python3 -m doctest p2.py -v | more