无论我尝试什么,我的功能都不会 return
My function does not return anything no matter what I try
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")
无论我尝试多少次或尝试多少方法来解决这个问题,它似乎都无法 return i
。每当我执行 print(i)
时,它都会给我我想要的确切内容并且功能运行良好,但是当它是 return i
时我什么也得不到,我该如何解决这个问题?
编辑:这个函数应该接受一些数字(字符串格式),其中一个数字的均匀度不同(一个是偶数,其余的是奇数,反之亦然),我想 return 索引那个数字。
我已经修改了您的代码并且它正在运行:
def iq_test(numbers):
i = 0
numbers = list(map(int,numbers.split()))
even = []
odd = []
try:
for i in range(len(numbers)):
if numbers[i] % 2 == 0:
even.append(i)
else:
odd.append(i)
except:
pass
finally:
if len(even) > len(odd):
return odd[0]
else:
return even[0]
print(iq_test("1 1 2"))
我修改的点数:
- 您可以使用
map function
而不是创建另一个列表来将列表元素转换为整数
- 你应该存储偶数和奇数的索引而不是值本身
- 如果代码中有一些即使发生错误也必须执行的操作,您可以使用
finally block
def iq_test(numbers):
numbers = numbers.split()
length = len(numbers)
ints = []
even = []
odd = []
try:
for i in range(0, length):
number = int(numbers[i])
ints.append(number)
if ints[i] % 2 == 0:
even.append(ints[i])
else:
odd.append(ints[i])
if len(even) > len(odd):
return even[0]
else:
return odd[0]
except:
pass
ReturnedNumber = iq_test("1 2 2")
print("Returned number from function:",ReturnedNumber)
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")
无论我尝试多少次或尝试多少方法来解决这个问题,它似乎都无法 return i
。每当我执行 print(i)
时,它都会给我我想要的确切内容并且功能运行良好,但是当它是 return i
时我什么也得不到,我该如何解决这个问题?
编辑:这个函数应该接受一些数字(字符串格式),其中一个数字的均匀度不同(一个是偶数,其余的是奇数,反之亦然),我想 return 索引那个数字。
我已经修改了您的代码并且它正在运行:
def iq_test(numbers):
i = 0
numbers = list(map(int,numbers.split()))
even = []
odd = []
try:
for i in range(len(numbers)):
if numbers[i] % 2 == 0:
even.append(i)
else:
odd.append(i)
except:
pass
finally:
if len(even) > len(odd):
return odd[0]
else:
return even[0]
print(iq_test("1 1 2"))
我修改的点数:
- 您可以使用
map function
而不是创建另一个列表来将列表元素转换为整数
- 你应该存储偶数和奇数的索引而不是值本身
- 如果代码中有一些即使发生错误也必须执行的操作,您可以使用
finally block
def iq_test(numbers):
numbers = numbers.split()
length = len(numbers)
ints = []
even = []
odd = []
try:
for i in range(0, length):
number = int(numbers[i])
ints.append(number)
if ints[i] % 2 == 0:
even.append(ints[i])
else:
odd.append(ints[i])
if len(even) > len(odd):
return even[0]
else:
return odd[0]
except:
pass
ReturnedNumber = iq_test("1 2 2")
print("Returned number from function:",ReturnedNumber)