【发布时间】:2021-07-27 16:47:55
【问题描述】:
def iq_test(numbers):
i = 0
length = len(numbers)
numbers = numbers.split()
ints = []
even = []
odd = []
try:
for i in range(i, length, i + 1):
number = int(numbers[i])
ints.append(number)
if ints[i] % 2 == 0:
even.append(ints[i])
else:
odd.append(ints[i])
except:
pass
if len(even) > len(odd):
return i
else:
return i
iq_test("1 2 2")
无论我尝试修复这个问题多少次或方法,它似乎都不会返回i。每当我做print(i) 时,它都会给我我想要的东西,并且该功能运行良好,但是当它是return i 时,我什么也得不到,我该如何解决这个问题?
编辑:这个函数应该接受一些数字(以字符串格式),其中一个数字的偶数会不同(一个是偶数,其余的是奇数,反之亦然),我想返回那个数字的索引。
【问题讨论】:
-
我可以看到缩进错误。请修复它们。此外,您需要打印值
print(iq_test("1 2 2"))。现在,它只是返回值。你没有使用它们 -
虽然我真的不知道你想要达到什么目的,但似乎这条线:length = len(numbers) 应该在这条线之后:numbers = numbers.split()跨度>
-
改掉使用
for i in range(len(list)):的习惯。使用for item in list:几乎总是更合适 -
返回和打印是不一样的。请重做有关函数的教程。
x = iq_test(...)将返回值放入变量x。然后你可以print(x)打印它的值 -
您的代码如何验证没有返回任何内容?我没有看到任何测试..