17.12.2012 Views

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

84<br />

Éléments du langage<br />

DEUXIÈME PARTIE<br />

Fonction similaire à l’opérateur in<br />

def is_in(element, elements):<br />

"""Teste l'appartenance d'un élément à une liste."""<br />

for elt in elements:<br />

if elt == element:<br />

return True<br />

return False<br />

Pour les séquences de type string ou unicode, l’objet doit être lui-même de type<br />

unicode ou string. Bien que les deux opérandes puissent être dans ce cas de types<br />

différents (string in unicode ou unicode in string), il est conseillé de rester<br />

homogène afin d’éviter des erreurs de transtypage, puisque les deux opérandes sont<br />

toujours comparés dans le même type. En cas de problème, Python gère ce cas particulier<br />

en provoquant une erreur spécifique.<br />

Mélange des genres, erreur au tournant<br />

>>> sequence = u'Brian'<br />

>>> i = 'é'<br />

>>> i in sequence<br />

Traceback (most recent call last):<br />

File "", line 1, in ?<br />

TypeError: 'in ' requires string as left operand<br />

>>> i = 'i'<br />

>>> i in sequence<br />

True<br />

Nous verrons dans les chapitres suivants qu’il est possible d’intégrer ce mécanisme à<br />

tout type d’objet en implémentant des méthodes aux noms spécifiques.<br />

À RETENIR Appartenance et dictionnaires<br />

Python 2.3 a introduit un nouveau mécanisme qui permet de faire fonctionner directement les dictionnaires<br />

avec l’opérateur d’appartenance, en lui passant les clés implicitement.<br />

Les deux écritures deviennent possibles, avec une préférence pour l’écriture abrégée :<br />

>>> dic = {'a': 1, 'b': 2}<br />

>>> 'a' in dic.keys()<br />

True<br />

>>> 'a' in dic<br />

True

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!