我正在解决“数字是 2 的幂”的编码问题,我已经使用了条件但它没有用?

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

首先,它在 while 循环条件下给我语法错误。为了消除这里的零除法错误,我 已将条件赋予 while 循环,以便数字不等于零。现在,我不知道该怎么办?

def is_power_of_two(number):
  while (number!== 0 && number%2!=0):
    number = number / 2
   if number == 1:
     return True
   else
     return False
print(is_power_of_two(0)) # Should be False
print(is_power_of_two(1)) # Should be True
print(is_power_of_two(8)) # Should be True
print(is_power_of_two(9)) # Should be False

我试图解决它,但没有成功。

python while-loop syntax-error divide-by-zero
1个回答
0
投票

正如我所看到的,有一个语法错误,您在 else 之后错过了“:”。

此外,我在 while 循环中更改条件。现在它给出了你提到的答案

def is_power_of_two(number):
    while (number > 1) & (number % 2 == 0):
        number = number / 2
    if number == 1:
        return True
    else:
        return False
print(is_power_of_two(0)) # Should be False
print(is_power_of_two(1)) # Should be True
print(is_power_of_two(8)) # Should be True
print(is_power_of_two(9)) # Should be False




假的

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