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

Python 逻辑定义函数

Python 逻辑定义函数,python,python-3.x,Python,Python 3.x,我不知道如何创建一个函数,该函数接受一个数字作为输入,并返回该数字需要除以2的最小次数,以获得等于或小于1的数字 到目前为止,我所做的是: def alogical(n): min_times= n//2 return round(min_times) def逻辑(n,计数=0): 返回n导入数学;alologic=lambda x:math.ceil(math.log(x,2))这不适用于n=1的情况。结果应该是0,但它给出了1。如果n@Tagc,那么返回计数怎么样,谢谢你捕捉到

我不知道如何创建一个函数,该函数接受一个数字作为输入,并返回该数字需要除以2的最小次数,以获得等于或小于1的数字

到目前为止,我所做的是:

def alogical(n):
   min_times= n//2
   return round(min_times)
def逻辑(n,计数=0):

返回n
导入数学;alologic=lambda x:math.ceil(math.log(x,2))
这不适用于n=1的情况。结果应该是0,但它给出了1。如果n@Tagc,那么返回计数怎么样,谢谢你捕捉到了这一点。您提出的解决方案违反了OP响应的规则,“不能使用循环,也不能使用if/分支”。我相信我已经想出了一个解决办法——虽然不漂亮,但与我的原始解决方案一致。“你提出的解决方案违反了OP所呼应的规则,“不能使用循环,也不能使用**if**/分支”。”这是真的,我在发布后注意到。但您的原始解决方案是否违反了该规则,因为它依赖于短路行为,这本质上意味着它具有分支逻辑?TBF我认为@cWallenpole成功了,但我还是对你的解决方案投了赞成票。
def alogical(n, count=0):
    return n <= 1 and count or alogical(n / 2, count + 1)
def alogical(n):
    def inner_alogical(n, count=1):
        return n <= 1 and count or inner_alogical(n / 2, count + 1)

    return inner_alogical(n) - 1