【问题标题】:A simpler way to check multiple variables against a certain parameter? [duplicate]根据某个参数检查多个变量的更简单方法? [复制]
【发布时间】:2021-10-10 13:40:43
【问题描述】:

假设我有三个变量r, g, b。如果这些变量中的任何一个是< 0> 255,它们将分别四舍五入为0255

我对 python 的不成熟的知识会告诉我使用一堆 if 语句,我认为这既费时又不必要。 还有其他方法吗?

【问题讨论】:

  • 再想一想,我也许可以使用 for 循环,但我等待答案。
  • r = max(0,min(r,255)) 等怎么样?作为测试的一部分,这确实强制进入范围 0..255,并避免了您不想要的 if 语句。

标签: python python-3.x


【解决方案1】:
if 255 > variable > 0:

您可以像这样简化数学参数。

【讨论】:

  • 谢谢,这行得通。但是,考虑到我仍然需要确定变量是> 255 还是< 0,以便将其四舍五入到适当的数字,这真的解决了我的目的吗?
【解决方案2】:
rgb = (0,255,125)
check = [(0<=value<=255) for value in rgb]
print(sum(check)==3)
# -> True

这会检查所有值是否符合标准。

【讨论】:

    【解决方案3】:

    如果您使用的是numpy,并且您有一个值数组,则可以用一行代码钳制您的值:

    import numpy as np
    
    a = np.array([ ... values ...])
    a[a > 255] = 255
    a[a < 0 ] = 0
    

    numpy 对向量的操作进行了优化,因此对于大量值numpy 可能也更快。

    【讨论】:

      【解决方案4】:
      if r in range(0, 255):
          # code
      

      你可以看看你是否喜欢这个语法

      【讨论】:

      • 请注意,这仅在 r 是整数时有效。
      猜你喜欢
      • 2012-08-20
      • 2012-08-25
      • 2012-02-16
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      • 2019-05-22
      • 2010-10-19
      • 1970-01-01
      相关资源
      最近更新 更多