如何用循环编写函数

问题描述 投票:0回答:1

我刚刚开始学习python,所以很新,我被困在一个我正在做作业的问题上。我会很感激这方面的一些帮助。问题如下:

我必须编写一个名为'halve_to_2'的函数,它只接受1个数字输出。如果数字<= 0,则返回-1如果数字> 0,则将该整数除以2,直到它变得小于2.您必须返回小于2的数字

现在我确实对此有所了解,但做错了,因为它返回(-1)到无穷大,我的电脑内存不足。

我的尝试看起来像下面并且是部分的(我知道因为我还没有将第二部分合并在一起会继续划分),但希望能够让某人在可能的情况下提供正确的输出。

我的尝试:

def halve_to_2( num ):
    while num /2 <= 0:
           return(num)

    while true:
        return(-1)
k=5
print (halve_to_2(k))

谢谢,

Surien

python python-3.x
1个回答
0
投票
while num/2 <= 0:
    return (num/2)

将在第一次迭代中返回num/2的值。只有当num/2小于2时,才需要返回该值:

def halve_to_2(num):
    while True:
        num = num / 2.0
        if num < 2:
            return num

num为负时,你似乎可以自己解决另一个案例。

© www.soinside.com 2019 - 2024. All rights reserved.