Python

Pense-bête

Effectuer une division sur des nombres entiers

En Python 2.x, le reste d’une division de nombres entiers est tronqué :

>>> 1 / 2
0

Pour obtenir le reste d’une division de nombres entiers, il faut convertir l’un ou les deux membres de en nombre flottant à l’aide de la fonction float() :

>>> float(10 - 20) / (100 - 10)
-0.1111111111111111

Astuces

Afficher la documentation d’un module Python

Dans l’interpréteur Python en ligne de commande, entrer la commande suivante :

Python 2.6.6 (r266:84292, Dec 26 2010, 22:31:48) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import <nom du module>
>> help(<nom du module>)
…

Il est aussi possible d’afficher la documentation directement depuis le terminal grâce à la commande pydoc :

pydoc <nom du module>

Rediriger l’affichage temporairement dans un fichier

Si vous ne pouvez/voulez pas afficher la sortie d’une commande sur la sortie standard (stdout), vous pouvez utiliser la ruse suivante :

#!/usr/bin/python
import sys

sys.stdout = open('/tmp/monscript.out', 'w')
print('huhuhu')                                # sera écrit dans le fichier /tmp/monscript.out
sys.stdout = sys.__stdout__
print('hohoho')                                # sera écrit sur la sortie standard

Afficher les fichiers de modules importés

En cas de mélange de fichiers de versions installées en parallèle, il est possible de savoir précisément à quel fichier sur le disque correspond un module qui a été importé :

>>> import datetime
>>> print(datetime.__file__)
/usr/lib/python2.6/lib-dynload/datetime.so