我刚刚开始学习python,所以非常新,我陷入了要为其做作业的问题。我希望能对此有所帮助。 问题如下:
我必须编写一个名为“ halve_to_2”的函数,该函数仅接受1个数字输出。 如果数字<= 0,则返回-1 如果数字> 0,则将该整数除以2,直到小于2。 您必须退回小于2的数字
现在我确实可以解决这个问题,但是当它返回(-1)到无穷大并且我的PC内存不足时,出现了一些错误。
我的尝试如下所示,而且是局部的(我知道我什至还没有结合第二部分,而这一部分会不断分裂),但是希望在可能的情况下让某人提供正确的输出。
我的尝试
def halve_to_2( num ):
while num /2 <= 0:
return(num)
while true:
return(-1)
k=5
print (halve_to_2(k))
谢谢
Surien
答案 0 :(得分: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
为负数时,您似乎可以自己找出另一种情况。