Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
迭代给定限制的数组(python)_Python_Loops - Fatal编程技术网

迭代给定限制的数组(python)

迭代给定限制的数组(python),python,loops,Python,Loops,我有三种不同元素的测量结果。(锡、铜、铅) 他们得到不同的评价,因为他们有不同的限制。 例如,我有一个石头混合物中的铅、锡和铜含量作为我的测量值,以及返回不同东西的特定限值 measurement_lead = 150 measurement_tin = 1 measurement_copper = 1002 limits_lead = [0.5, 10, 50, 100] limits_tin = [0.7, 14, 990, 11000] limits_copper = [5, 60, 61

我有三种不同元素的测量结果。(锡、铜、铅) 他们得到不同的评价,因为他们有不同的限制。 例如,我有一个石头混合物中的铅、锡和铜含量作为我的测量值,以及返回不同东西的特定限值

measurement_lead = 150
measurement_tin = 1
measurement_copper = 1002
limits_lead = [0.5, 10, 50, 100]
limits_tin = [0.7, 14, 990, 11000]
limits_copper = [5, 60, 61, 98880]
现在,我必须检查我的一个(或多个)测量值是否高于最高限值,如果是“做点什么”,如果不是,我必须检查一个是否高于第二个最高限值和低于最高限值,以此类推,直到测量值小于最小限值为止

希望一切都清楚。正在尝试用python编写:)

编辑:始终有4个限额,金额不能变化。这些是每个元素的限制。测量值可以等于一个极限。它应始终检查大于或等于

我试过这个:

measurement\u lead=201
测量单位:铜=10
计量单位=2008年
e_mat=2000
b_mat=900
pw=20
t_mat=1
极限导线=[t_线、pw线、b_线、e_线]
e_mat=45
b_mat=43
pw=34
t_mat=2
极限铜=[t_-mat,pw,b_-mat,e_-mat]
e_mat=10
b_mat=5
pw=2
t_mat=0.5
极限值=[t_-mat,pw,b_-mat,e_-mat]
对于i/U潜在客户:
如果i>=e_mat:
打印(“测量值高于e_-mat”)
elif e_mat>=i>=b_mat:
打印(“测量在e_-mat和b_-mat之间”)
elif b_mat>=i>=pw:
打印(“测量在b_垫和pw之间”)
elif pw>=i>=t_材料:
打印(“测量在pw和t_-mat之间”)
如果t_mat>=i>=rw:
打印(“测量在t_垫和rw之间”)
elif i>=rw:
打印(“测量值低于rw”)

现在它需要检查一个测量值是否高于e_-mat(根据其给定的限制,每个元素都有不同的限制),如果否:如果一个测量值介于e_-mat和b_-mat之间,依此类推。

您的问题需要澄清:

  • 限制列表是否总是按升序排列?假设:没有
  • 总是只有4个吗?假设:没有
  • 如果测量值等于极限值,会发生什么情况?假设:永远不平等
  • 我做了一些假设,并为您编写了一个函数,以找出您的测量值在哪个范围内,以便您可以“做点什么”:


    我认为这三个测量值是否都达到极限并不重要,只要一个达到极限就行。如果是这种情况,请尝试以下方法:

        if measurement_lead >= limits_lead[3] or measurement_tin >= limits_tin[3] or measurement_copper >= limits_copper[3]:
          #do something because 1 or more meets the highest requirement
          exit
    
        elif measurement_lead >= limits_lead[2] or measurement_tin >= limits_tin[2] or measurement_copper >= limits_copper[2]:
          #do something because 1 or more is between the second highest and highest
          exit
    
        elif measurement_lead >= limits_lead[1] or measurement_tin >= limits_tin[1] or measurement_copper >= limits_copper[1]:
          #do something because 1 or more is between the third highest and second highest
          exit
    
        else:
          #do something because 1 or more is between the lowest and third highest
          exit
    

    Idk您的do sth是什么,但请确保在“do sth”之后结束循环,以便只有在前一个块中的三个条件均未满足时,下一个elif块才会执行。让我知道这是否合理。:)

    请用您尝试过的代码更新您的问题。您能澄清一下限制是如何工作的吗?谢谢,我编辑了我的帖子谢谢,编辑了我的帖子谢谢,在您的帮助下能够解决我的问题!耶!太好了:)
        if measurement_lead >= limits_lead[3] or measurement_tin >= limits_tin[3] or measurement_copper >= limits_copper[3]:
          #do something because 1 or more meets the highest requirement
          exit
    
        elif measurement_lead >= limits_lead[2] or measurement_tin >= limits_tin[2] or measurement_copper >= limits_copper[2]:
          #do something because 1 or more is between the second highest and highest
          exit
    
        elif measurement_lead >= limits_lead[1] or measurement_tin >= limits_tin[1] or measurement_copper >= limits_copper[1]:
          #do something because 1 or more is between the third highest and second highest
          exit
    
        else:
          #do something because 1 or more is between the lowest and third highest
          exit