我刚刚开始学习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
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
为负时,你似乎可以自己解决另一个案例。