多个值的if语句

0 投票
3 回答
843 浏览
提问于 2025-04-18 15:23

这是我想要实现的一个例子。如果你能帮我完成它,那就太好了!

exampleNumbers = [One,Uno,Two,Dos]
randomNumber = random.choice(exampleNumbers)

接下来,我希望如果随机选择的 exampleNumbersOneUno,那么就把 randomNumber 改成1;如果随机选择的 exampleNumbersTwoDos,那么就把 randomNumber 改成2。

我觉得我可以用一个if语句来实现这个功能,但我不太确定怎么用if语句处理多个值。

所以基本上,如果随机选择的是Two,我想让 randomNumber = 2。

抱歉如果我没有解释得很好,我正在慢慢学习,但我的知识和术语还是很初级。如果有好的答案,我会很乐意点赞和支持的!

提前谢谢你!:)

3 个回答

0

你可以用 andor 来组合多个条件。对于多个条件的组合,你还可以使用括号,比如说 (True and False) or (False or True)。这里面有个运算顺序,基本上是从左到右进行的。所以针对你的问题,你可以这样做:

if(num == "two" or num == "dos"):
    //do things
elif (num == "one" or num == "uno"):
    //do other things
0

你还可以定义一些选项:

options = { One : thisIsOne,
              Uno : thisIsOne,
              Two : thisIsTwo,
              Dos : thisIsTwo,
}

def thisIsOne()
  randomNumber = 1

def thisIsTwo()
  randomNumber = 2

然后你可以简单地调用 options[randomNumber]()

我对Python有点生疏,但我很确定这样是可以的(不过rodrigo的前一个答案也可以!这主要是看个人喜好和代码的可重用性)

2

你可以使用运算符 in

if randomNumber in (One,Uno):
    randomNumber = 1
else:
    randomNumber = 2

或者使用经典的 or 布尔运算符:

if randomNumber == One or randomNumber == Uno:
    randomNumber = 1
else:
    randomNumber = 2

in 非常适合用来检查多个值。

or 以及其他布尔运算符 andnot 可以用来构建任意复杂的逻辑表达式。

撰写回答