当前位置: 首页 > 面试题库 >

带有if / elif语句的多个条件

申屠泳
2023-03-14
问题内容

我试图获得一个if语句从多个条件中触发,而不用不同的触发器多次重写该语句。例如:

if user_input == "look":  
    print description


if user_input == "look around":
    print description

您如何将这些内容浓缩成一个陈述?

我试过使用“或”,并且无论输入是否符合任何条件,它都会导致任何raw_input触发语句。

if user_input == "look" or "look around":  
    print description

问题答案:

你想做的是

if user_input == "look" or user_input == "look around":
    print description

如果您有很多可能性,请选择另一个选项:

if user_input in ("look", "look around"):
    print description

由于您使用的是2.7,因此您也可以这样编写(在2.7或3+版本中有效,但在2.6或以下版本中无效):

if user_input in {"look", "look around"}:
    print description

这使set元素成为您的元素,搜索起来会稍微快一点(尽管这仅在您要检查的元素数量远大于2的情况下才重要)。

您的第一次尝试总是要经过的原因是这样的。Python中的大多数事物计算为True(除FalseNone或空字符串,列表类型的字典,…)。or需要两件事,并将它们评估为布尔值。因此user_input == "look" or "look around"被视为(user_input == "look") or "look_around";
如果第一个错误,则就像您写的一样if "look_around":,它将始终通过。



 类似资料:
  • 我试图让if语句从多个条件触发,而不使用不同的触发器多次重写该语句。例如。: 你会如何把这些浓缩成一个陈述? 我尝试过使用'or',它导致任何原始输入触发语句,而不管输入是否匹配任一条件。

  • 问题内容: 我有一个变量。 我想呼应,如果等于任何下列值,,,,或。有没有办法通过像?? 这样的单个语句来做到这一点? 问题答案: 我认为,使用“ Or”代替“ And”会有所帮助

  • 问题内容: 对于我的工作,我必须开发一个小型Java应用程序,该应用程序可以解析非常大的XML文件(约30万行)以选择非常具体的数据(使用),因此我试图对其进行一些优化。我想知道这两个摘要之间哪个更好: 要么 其他详情: 这些if语句在循环内的每次迭代中执行(约20k次迭代) 的是一种在利用外部函数每次迭代计算 如果将设置为,则无需测试正则表达式是否匹配 谢谢你的帮助。 问题答案: 我遵循的一条黄

  • 问题内容: 在javascript中,当使用带有多个条件的if语句进行测试时,javascript是否会全部测试它们,或者如果已经为false,则在测试所有条件之前会保全吗? 例如: javascript将测试所有这三个条件,还是在看到b不等于1并因此为false之后,将退出该语句? 我从性能的角度出发。例如,如果我正在测试3个复杂的jQuery选择器,那么我不希望jQuery遍历DOM 3次(如

  • 问题内容: 当您使用很多术语时,以下语句看起来非常混乱: 有没有一种更干净的方式来执行相同的操作,我希望我的代码尽可能可读。 注意:x,y和z只是任何长度的任何字符串的占位符。如果条件中的每个条件进行或运算,则此处可能有20个长度可变的字符串术语 问题答案: Set stuff = new HashSet (); stuff.add(“x”); stuff.add(“y”); stuff.add(

  • 问题内容: 目前,我正在努力学习Python,而在递归函数方面却陷入了停滞。在Think Python中 ,练习之一是编写一个函数,该函数使用以下定义来确定 a 是否为 b 的幂: “如果a被b整除,则a是b的幂,而a / b是b的幂。编写一个名为is_power的函数,该函数接受参数a和b,如果a是b的幂,则返回True。” 我函数的当前状态是: 实际上,这产生了我期望的结果。但是,本章着重于编