Sujet : Re: Comportement étrange avec IN et OR...
De : zzz (at) *nospam* aol.com.invalid (Dominique)
Groupes : fr.comp.lang.pythonDate : 26. May 2022, 16:26:38
Autres entêtes
Organisation : Aioe.org NNTP Server
Message-ID : <t6o67e$1fmu$1@gioia.aioe.org>
References : 1 2
User-Agent : Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.0
Le 26/05/2022 à 11:27, Alain Ketterlin a écrit :
Merci Alain,
C'est la conclusion à laquelle je suis parvenu (mauvaise utilisation de OR)
Merci pour l'ensemble de tes précisons.
Je ne connaissais pas cette subtilité :
if 'ERROR':
print('OK')
OK
même si ERROR n'esst pas défini.
Et en poussant un peu :
if not 'ERROR':
print('Non')
else:
print('OK')
OK
Bref : ce que tu veux (probablement) est
'*ERROR*' in test2 or 'ERR' in test2
Oui, c'était exactement ça :-)
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.