我有一个代码,我希望在读取用户输入的方法上调用三个变量,并确定它是否为整数(如果不是重新提示用户),然后将输入返回给变量。我尝试编译时遇到以下编译器错误:
错误:方法类型中的方法getInt(int)不适用于参数(java.util.Scanner)
这是我的代码:
def my_sum(*args):
return sum(args)
def identity(value):
return value
e0, e1, e2, f0, g0, g1 = [Node([], identity) for _ in xrange(6)]
c0 = Node([e0, e1, e2], my_sum)
d0 = Node([f0], my_sum)
d1 = Node([g0, g1], my_sum)
b0 = Node([c0], my_sum)
b1 = Node([d0, d1], my_sum)
a0 = Node([b0, b1], my_sum)
arg_tests = [
(1, 1, 1, 1, 1, 1),
(1, 2, 3, 4, 5, 6)
]
for args in arg_tests:
assert a0(*args) == sum(args)
print('Pass!')
您可以给予任何帮助,我们将不胜感激!
答案 0 :(得分:1)
我建议你阅读“使用Scanner只接受有效的int作为输入” https://stackoverflow.com/a/2913026/5980046
答案 1 :(得分:0)
您的方法getInt(int input)
期望一个整数作为参数。
但是在您的代码中,您提供的是Scanner对象而不是int:
a = getInt(scan);
b = getInt(scan);
c = getInt(scan);
这是你可能想要的:
a = getInt(scan.nextInt());
b = getInt(scan.nextInt());
c = getInt(scan.nextInt());