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 № 1Per 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")