/ / Perché questo "non è" se la dichiarazione funziona? - Python, Python-3.x

Perché questo non "non è" se l'affermazione funziona? - python, python-3.x

Questo è il mio codice,

if diff != "1" or diff != "2" or diff != "3":
print("You need to pick either 1, 2 or 3n")

Per qualche motivo, il risultato è,

Pick a difficulty:
1) Easy
2) Medium
3) Hard
>> 2
You need to pick either 1, 2 or 3

Voglio che l'istruzione if controlli se la variabile diff non è uguale a stringhe 1, 2 e 3. Ma quando ho messo uno dei due 1, 2 o 3, viene invece visualizzato il messaggio di errore per quando diff non è uguale ai numeri. Perché questo accade?

risposte:

2 per risposta № 1

Per applicare la logica di "non qualsiasi", è necessario verificare se si tratta di uno dei risultati validi, quindi invertire. (NÉ)

if not (diff == "1" or diff == "2" or diff == "3"):

O applicando Teorema di DeMorgan ciò equivarrebbe a "non uguale a 1 E non uguale a 2 E non uguale a 3"

if diff != "1" and diff != "2" and diff != "3":

ovviamente Python ha anche il in e not in operatore che lo rende molto più pulito:

if diff not in ("1", "2", "3"):

0 per risposta № 2

Devi usare e invece di o. Se si immette 1, quindi diff != "1" ritorna vero.

Il tuo codice dovrebbe assomigliare a questo:

if diff != "1" and diff != "2" and diff != "3":
print("You need to pick either 1, 2 or 3n")