Si declaración para múltiples valores
-
21-12-2019 - |
Pregunta
Aquí está mi objetivo en un ejemplo.Si pudieras ayudarme a completarlo sería genial!
exampleNumbers = [One,Uno,Two,Dos]
randomNumber = random.choice(exampleNumbers)
De aquí en adelante quiero que luego cambie. randomNumber
a 1 si la selección aleatoria de exampleNumbers
es Uno o Uno o cambiar randomNumber
a 2 si la selección aleatoria de exampleNumbers
es Dos o dos.
Creo que puedo hacerlo usando una declaración if, sin embargo, no estoy seguro de cómo usar una declaración if con múltiples valores.
Básicamente, si la selección aleatoria es Dos por ejemplo, quiero que luego haga randomNumber
= 2.
Lo siento si no lo he explicado muy bien, poco a poco estoy llegando a ese punto, pero mi conocimiento y terminología aún son amateurs.¡Con mucho gusto marcaré y votaré cualquier respuesta excelente!
¡Gracias de antemano!:)
Solución
Puedes usar el operador. in
:
if randomNumber in (One,Uno):
randomNumber = 1
else:
randomNumber = 2
o el clasico or
operador booleano:
if randomNumber == One or randomNumber == Uno:
randomNumber = 1
else:
randomNumber = 2
El in
Es genial comprobar muchos valores.
El or
, con los otros operadores booleanos and
y not
se puede utilizar para construir expresiones lógicas arbitrariamente complejas.
Otros consejos
puedes usar and
y or
a declaraciones compuestas.y para declaraciones múltiples también puede usar paréntesis (es decir: (True and False) or (False or True)
).Existe un orden de operaciones que básicamente es de izquierda a derecha.Entonces, para tu pregunta, puedes hacer
if(num == "two" or num == "dos"):
//do things
elif (num == "one" or num == "uno"):
//do other things
También podrías definir opciones:
options = { One : thisIsOne,
Uno : thisIsOne,
Two : thisIsTwo,
Dos : thisIsTwo,
}
def thisIsOne()
randomNumber = 1
def thisIsTwo()
randomNumber = 2
Luego puedes simplemente llamar options[randomNumber]()
Estoy un poco oxidado con mi Python pero estoy bastante seguro de que funciona (¡pero también lo hace la respuesta anterior de Rodrigo!cuestión de preferencia y reutilización)