Re: Comportement étrange avec IN et OR...

Liste des GroupesRevenir à fcl python 
Sujet : Re: Comportement étrange avec IN et OR...
De : alain (at) *nospam* universite-de-strasbourg.fr.invalid (Alain Ketterlin)
Groupes : fr.comp.lang.python
Date : 26. May 2022, 10:27:00
Autres entêtes
Organisation : Université de Strasbourg
Message-ID : <87ilpsy78b.fsf@universite-de-strasbourg.fr.invalid>
References : 1
User-Agent : Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)
Dominique <zzz@aol.com.invalid> writes:

test='[22118.286892] i915 0000:00:02.0: [drm] *ERROR* AUX C/DDI C
(TC)/PHY TC1: did not complete or timeout within 10ms (status
0xad4003ff)'

test2=list(test.split(' '))

'*ERROR*' or 'ERR' in test2

Cela ne signifie pas ce que tu crois. Cette expression est interprétée
comme :

- est-ce que « '*ERROR*' » est vraie ?
- sinon, est-ce que « 'ERR' in test2 » est vraie ?

Techniquement c'est

    ('*ERROR*') or ('ERR' in test2)

L'opérande de gauche ne mentionne même pas test2.

La première condition ('*ERROR*') est toujours vérifiée (parce qu'une
chaîne de caractères est considérée comme vraie dès qu'elle n'est pas
vide). D'autre part "x or y" a la valeur de x si x est vraie, et sinon
la valeur de y : en clair, une valeur brute (comme '*ERROR*') est
convertie en booléen pour tester sa véracité, mais l'expression garde la
valeur non convertie.

(Au passage, c'est une illustration de l'aversion de python pour le
typage. Par exemple le résultat de

    x or "Damned"

où x est un entier, sera soit un entier (si x != 0) soit une chaine de
caractères. Pure perversité.)


Bref : ce que tu veux (probablement) est

    '*ERROR*' in test2 or 'ERR' in test2

Il faut faire deux tests "in", on ne peut pas tester deux valeurs en
même temps avec "in" : ce qui est à gauche de "in" doit être une chaîne
(dans ton cas). Si tu écris :

    ('*ERROR*' or 'ERR') in test2

le "or" est calculé d'abord, et tu testes en substance « '*ERROR*' in
test2 ».

-- Alain.

Date Sujet#  Auteur
26 May 22 * Comportement étrange avec IN et OR...7Dominique
26 May 22 +* Re: Comportement étrange avec IN et OR...4Alain Ketterlin
26 May 22 i`* Re: Comportement étrange avec IN et OR...3Dominique
26 May 22 i `* Re: Comportement étrange avec IN et OR...2Olivier Miakinen
26 May 22 i  `- Re: Comportement étrange avec IN et OR...1Dominique
26 May 22 +- Re: Comportement étrange avec IN et OR...1Dominique
26 May 22 `- Re: Comportement étrange avec IN et OR...1Benoit Izac

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal