Vous êtes ici : Accueil / 2009 / Août / Python a (presque toujours) la fonctionnalité à laquelle vous pensiez

Python a (presque toujours) la fonctionnalité à laquelle vous pensiez

écrit le 08/04/2010 Par alexandre
Quand on se dit : "ce serait cool que ça fonctionne ainsi", autant essayer, Python le fait sûrement !

En plein élan de programmation, il me faut tester si une chaîne ne commence pas par 'foo' ou 'spam'.

Voici donc le code de la condition

>>> x = "spam-not-foo"
>>> x.startswith("spam") or x.startswith("foo")
True

Et là on se dit : ça manque de concision, ce serait cool tout de même si je pouvais condenser tout ça avec une seule expression. Ce qui serait naturel serait de fournir à la méthode un tuple contenant les chaînes que je veux tester. Testons donc

>>> x.startswith(("spam", "foo"))
True

Oui ça fonctionne ! Vérifions

>>> "spamable".startswith(("spam", "foo"))
True
>>> "fooable".startswith(("spam", "foo"))
True
>>> "non-spam-neither-foo".startswith(("spam", "foo"))
False

Je me dis que c'est quand même bien Python. Me voilà donc à reformuler mon code. Hop petit test et BAM erreur ! Eh oui, mon produit tourne sur Python 2.4 alors que cette fonctionnalité fait partie de la version 2.5.

Ceci prouve bien que Python tend à la perfection !

Actions sur le document