我正在尝试编写一个python程序,以检查正整数是否可以除以2,并使用类和函数返回false或true。我收到此错误:AttributeError:'powerOfTwo'对象没有属性'x'。您能帮我解决这个问题吗?
class powerOfTwo():
def __init__(self, x):
self.x = x
def user(self):
x = int(input("Enter a number: "))
def check(self):
if self.x == 1:
return False
elif (x > 0) and (x % 2 == 0):
return True
else:
return False
a = powerOfTwo(5)
powerOfTwo().user()
powerOfTwo().check()
答案 0 :(得分:1)
您检查2的幂的逻辑不正确。
尝试考虑值6
的输出是什么?
您的代码也返回False
作为值1
,但是1
是2
的幂。
您可以执行以下操作:
class powerOfTwo():
def __init__(self, x = 1): # Provide a defaul value otherwise powerOfTwo().user() and powerOfTwo().check() will not work.
self.x = x
def user(self): # Use self.x instead of x
self.x = int(input("Enter a number: "))
def check(self): # Use self.x instead of x
if self.x == 0:
return False
while self.x != 1: # Updated the logic.
if self.x % 2 != 0:
return False
self.x = self.x // 2
return True