如何在给定不同条件的情况下划分变量的范围?

时间:2016-04-14 22:58:54

标签: python algorithm

对于给定的程序,现在我想确定对应于不同路径的有效输入范围。

举个例子:

def test(a):

    if (a < 50):
        return 1
    else:
        return -1

所以对于这个程序,有两条路径。一条路径返回1,另一条路径返回-1。假设有一个给定的函数(您也可以设计自己的函数),它可以返回一个路径条件列表:

conditions = get_path_conditions(test)

以便条件包含2个字符串元素["a<50", "a>=50"]

假设输入a = "(-100,100)"的范围(为方便起见,我使用字符串来表示下限和上限,就像我们在数学中一样。如果你愿意,也可以使用其他表示。)

那么如何设计一个能够将不同条件映射到不同输入范围的函数呢?

conditions = ["a<50", "a>=50"]
a = "(-100,100)"
input_ranges = get_inputs(conditions,a)

因此input_ranges有2个元素:["(-100,50)","[50,100)"]

类似的问题:

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3658

1 个答案:

答案 0 :(得分:0)

如果条件是布尔值,则可以使用(lambda)函数。使用您的示例:

conditions = [lambda x:x<50, lambda x:x=>50]

或者您可以使用def定义函数,并在条件列表中按名称引用它们。