-1

我一直在关注python教程并遇到了一个问题:

def middle(L):
   calc1 = (len(L))//2
   print(L[calc1])
   return

分级机/编译器给了我

“运行中间([8, 0, 100, 12, 1])......错误:中间([8, 0, 100, 12, 1])的类型错误“无”类型,预期为整数”

我要做的是 print() 一个位于列表中间的元素。虽然它确实输出了100。解决方案一定很简单,但我才刚刚开始学习python,更不用说编码了。

4

2 回答 2

3

您正在打印该值但不返回它。不知道您的调用代码在做什么,但它显然希望您这样做return L[calc1]

于 2012-11-16T09:17:55.537 回答
0

该函数middle返回None(因为return它自己的意思return None)。

您正在使用返回的值做一些事情,例如int(middle(L)),这是无法用None.

请注意,您不必return在函数末尾编写;它会None自动返回。

于 2012-11-16T09:18:07.313 回答