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

一行if-condition-assignment

冯宏恺
2023-03-14
问题内容

我有以下代码

num1 = 10
someBoolValue = True

我需要将to的值设置num120if someBoolValueis True; 不做其他任何事情。所以,这是我的代码

num1 = 20 if someBoolValue else num1

有什么办法可以避免...else num1使它看起来更干净的部分吗?相当于

if someBoolValue:
    num1 = 20

我试着用替换它...else pass是这样的:num1=20 if someBoolValue else pass。我所得到的只是语法错误。我也不能忽略这一...else num1部分。


问题答案:

我认为这在Python中是不可能的,因为您实际上要尝试执行的操作可能会扩展为以下内容:

num1 = 20 if someBoolValue else num1

如果您排除else num1,则会收到语法错误,因为我非常确定分配实际上必须返回某些内容。

正如其他人已经提到的那样,您可以执行此操作,但是这样做很不好,因为您可能在下次阅读该段代码时最终会感到困惑:

if someBoolValue: num1=20

num1 = someBoolValue and 20 or num1出于完全相同的原因,我不是超级粉丝。我实际上必须对这条线在做什么进行三思。

实际实现您想要做的最好的方法是原始版本:

if someBoolValue:
    num1 = 20

最好的版本是因为您想做什么很明显,并且您不会混淆自己,或者其他人以后将与该代码联系。

另外,请注意,num1 = 20 if someBoolValue有效的Ruby代码是有效的,因为Ruby的工作方式略有不同。



 类似资料:
  • 此绑定允许您有条件地呈现。 如果指定的条件为true,则显示数据,否则不显示。 if绑定类似于visible绑定。 区别在于,在可见绑定中,底层HTML标记实际上保留在DOM上并且基于条件变得可见,而在if绑定中,基于条件在DOM中添加或删除HTML标记。 Syntax if: <binding-condition> Parameters 参数是您要评估的条件。 如果条件计算为true或true

  • 问题内容: MySQL / MSSQL可以在查询中使用整齐的内联if函数,以检测空值,如下所示。 我现在遇到的问题是该代码在Oracle数据库上运行不安全,因为它似乎不支持此内联if语法。 在Oracle中是否有等效功能? 问题答案: 使用标准的COALESCE函数: 或使用Oracle自己的NVL函数执行相同的操作。

  • 我有以下代码: 它工作正常,但我想改进它,并写为简化和可读性,如果其他块。这将是很好的,如果我能使一行如果其他声明请建议。

  • 我有以下代码: 它工作得很好,但是我想改进它,把它写成简化的、可读的if else块。如果我能做一行if else语句请建议,那就好了。

  • 本主题中的某些内容可能不适用于某些语言。 返回指定搜索条件的状态。MsoCondition 类型,只读。MsoCondition 可为以下 MsoCondition 常量之一:msoConditionAnyNumberBetweenmsoConditionAnytimemsoConditionAnytimeBetweenmsoConditionAtLeastmsoConditionAtMostms

  • java.util.concurrent.locks.Condition接口提供了一个线程暂停执行的能力,直到给定的条件为真。 Condition对象必然绑定到Lock并使用newCondition()方法获取。 条件方法 以下是Condition类中可用的重要方法列表。 Sr.No. 方法和描述 1 public void await() 导致当前线程等待,直到发出信号或中断为止。 2 publ