Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.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_Function_Range_Output - Fatal编程技术网

Python 如何测试值是否可以是函数的输出?

Python 如何测试值是否可以是函数的输出?,python,function,range,output,Python,Function,Range,Output,我制作了一个需要2个参数的函数 def R(a,b) 它打印a、b范围内函数的和 我试图确定某个数字是否可能是任何输入范围的总和。我该怎么做呢 换句话说,x是否会成为我创建的函数的输出?我该如何测试它呢?我正在尝试确定某个数字是否可能是任何输入范围的总和 根据我对你问题的理解 if certain_number == R(your_start_range, your_end_range): #do something 如果我对R的假设不正确,请告诉我 def R(a,b): re

我制作了一个需要2个参数的函数

def R(a,b)
它打印a、b范围内函数的和

我试图确定某个数字是否可能是任何输入范围的总和。我该怎么做呢

换句话说,x是否会成为我创建的函数的输出?我该如何测试它呢?

我正在尝试确定某个数字是否可能是任何输入范围的总和

根据我对你问题的理解

if certain_number == R(your_start_range, your_end_range):
  #do something

如果我对R的假设不正确,请告诉我

def R(a,b):
    return sum(range(a,b))
假设你想知道x是否可以从R返回,并且在所有情况下a都小于b

像这样的事情应该可以做到:

a=0
b=0
result=0
while result < x:
    if a-1==b or a==b:
        a += 1
        b = 0
     else:
        b+=1
     result = R(a,b)
     if result == x:
         print('we have a winner')
         break
其工作原理如下:

如果结果大于x,则循环存在,因为无穷大是一个不好的位置 我们需要通过所有组合a,b,a>b。这就是1,0,2,0,2,1,3,0,3,1,3,2,等等。因此,if…elif。。。东西 我希望剩下的都是直截了当的 我制作了一个需要2个参数的函数

def R(a,b)
def Ra,b

它打印a、b范围内函数的和

我不确定你说的是什么函数。你是说你只是把这个范围内的数字加起来?像这样

def R(a, b):
  print sum(range(a, b))
我试图确定某个数字是否可能是任何输入范围的总和。我该怎么做呢

所以你要确定,对于给定的整数n,是否有a和b使得Ra,b==n,对吗

好的,是的,答案总是否定的。如前所述,R只打印总和,这意味着返回值为无。但我们假设您已修复:

def R(a, b):
  return sum(range(a, b))
那么现在,你如何解决这个问题呢

既然你在问一个编程问题,我想你在寻找一种方法来彻底搜索给定的范围。您知道不需要搜索a>=b或b>=n的范围,因此答案是:

any(R(a, b) == n for b in range(n) for a in range(b))

当然,这需要*2的时间,但是如果不投入一些数学知识来提出更好的算法,就无法加快速度。完成后,如果您不知道如何在Python中实现该算法,请再次询问。

函数的总和->??为什么?函数是a、a和b离散值范围内回文的总和?进行详尽的搜索是否合理?若是这样的话,它只是anyRa,b=输入范围中a的certainNumber,输入范围中b的certainNumber,这是的一个变体吗?你们能包括R的代码吗?这样人们就可以知道你在问什么,而不必猜测b@abarnert:我在R函数中输入了一个错误。。。现在有意义了吗?我意识到我对提问者所说的话的假设可能是错误的。如果Ra,b==Rb,a,那么两种组合的测试都没有意义,是吗?因此,使一侧显式始终变小会使算法运行得更快。第一次出错的事实,我们都没有注意到,完美地说明了我的观点:编写显式循环而不是理解会使代码更难编写、更难阅读,更容易出错。