Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > fr.comp.lang.python > #3886
| From | Alain Ketterlin <alain@universite-de-strasbourg.fr.invalid> |
|---|---|
| Newsgroups | fr.comp.lang.python |
| Subject | Re: Comportement étrange avec IN et OR... |
| Date | 2022-05-26 11:27 +0200 |
| Organization | Université de Strasbourg |
| Message-ID | <87ilpsy78b.fsf@universite-de-strasbourg.fr.invalid> (permalink) |
| References | <t6ndp3$1igp$1@gioia.aioe.org> |
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.
Back to fr.comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar
Comportement étrange avec IN et OR... Dominique <zzz@aol.com.invalid> - 2022-05-26 10:29 +0200
Re: Comportement étrange avec IN et OR... Alain Ketterlin <alain@universite-de-strasbourg.fr.invalid> - 2022-05-26 11:27 +0200
Re: Comportement étrange avec IN et OR... Dominique <zzz@aol.com.invalid> - 2022-05-26 17:26 +0200
Re: Comportement étrange avec IN et OR... Olivier Miakinen <om+news@miakinen.net> - 2022-05-26 17:52 +0200
Re: Comportement étrange avec IN et OR... Dominique <zzz@aol.com.invalid> - 2022-05-26 19:01 +0200
Re: Comportement étrange avec IN et OR... Dominique <zzz@aol.com.invalid> - 2022-05-26 11:36 +0200
Re: Comportement étrange avec IN et OR... Benoit Izac <use.reply.to@INVALID.ADDRESS> - 2022-05-26 11:38 +0200
csiph-web