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 exampleNumberses 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!:)

¿Fue útil?

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)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top