这是python中缺少数字的问题。
class Missing:
n = int(input())
arr = list(map(int,input().split(" ")))
def __init__(self,arr,n):
self.arr = arr
self.n = n
def MissingNumber(self):
self.res = self.n*(self.n+1)/2
self.sum_array = sum(self.arr)
return "Missing no. is ",self.res-self.sum_array
Obj = Missing()
Obj.MissingNumber()
我收到此错误。 有人能解决吗?
Obj = Missing()
TypeError: __init__() missing 2 required positional arguments: 'arr'
and 'n'
答案 0 :(得分:0)
你的构造函数需要两个参数。您需要在它运行之前对其进行分配。
您需要在类对象之外分配 n 和 arr
class Missing:
def __init__(self,arr,n):
self.arr = arr
self.n = n
def MissingNumber(self):
self.res = self.n*(self.n+1)/2
self.sum_array = sum(self.arr)
return "Missing no. is ",self.res-self.sum_array
if __name__ == '__main__':
n = int(input())
arr = list(map(int,input().split(" ")))
Obj = Missing(n,arr)
Obj.MissingNumber()
答案 1 :(得分:0)
您需要将输入放在类之外,并在您创建实例时通过Obj = Missing(arr,n)
代码:
class Missing:
def __init__(self,arr,n):
self.arr = arr
self.n = n
def MissingNumber(self):
self.res = self.n*(self.n+1)/2
self.sum_array = sum(self.arr)
return "Missing no. is ",self.res-self.sum_array
n = int(input())
arr = list(map(int,input().split(" ")))
Obj = Missing(arr,n)
print(Obj.MissingNumber())
结果:
5
1 2 3 4 5
('Missing no. is ', 0.0)