Python 获取类型错误:类型为';非类型';没有len()。并且在操作结束后也不打印序列
获取类型错误:“NoneType”类型的对象没有len()。而且它也不会在for操作后打印序列您没有Python 获取类型错误:类型为';非类型';没有len()。并且在操作结束后也不打印序列,python,python-3.x,Python,Python 3.x,获取类型错误:“NoneType”类型的对象没有len()。而且它也不会在for操作后打印序列您没有return语句,因此默认方法returnNone您可以通过执行 def reverse(seq): k=len(seq) for i in range(0,k): seq.append(seq.pop(i)) print(seq) reverse(reverse([1,2,3,4,5])) 第一次调用返回None,然后调用reverse(None),并
return
语句,因此默认方法returnNone
您可以通过执行
def reverse(seq):
k=len(seq)
for i in range(0,k):
seq.append(seq.pop(i))
print(seq)
reverse(reverse([1,2,3,4,5]))
第一次调用返回None
,然后调用reverse(None)
,并在len(seq)
处失败,因为它确实是len(None)
这可能是代码,但它不会与输入相反
print(reverse([1,2,3,4,5])) # None
您的函数需要返回一个值,以便可以为另一个需要参数的函数输入该值 以下更改将为您提供训练-
def reverse(seq):
k = len(seq)
j = k
for i in range(0, j):
seq.append(seq.pop(i))
return seq
注意:虽然没有明确提到,但如果您试图反转输入,您的代码将无法工作。它会出现off-by-1错误。您的函数不会返回任何内容。打印没有返回。@muyustan seq是一个参数。无论如何,您的算法有一个更大的问题,因为
反向([1,2,3,4,5])
给出了[2,4,1,5,3]
。作为一般规则,避免在迭代列表时对其进行修改
def reverse(seq):
k=len(seq)
j=k
for i in range(0,j):
seq.append(seq.pop(i))
print(seq)
return seq
reverse(reverse([1,2,3,4,5]))