Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 获取类型错误:类型为';非类型';没有len()。并且在操作结束后也不打印序列_Python_Python 3.x - Fatal编程技术网

Python 获取类型错误:类型为';非类型';没有len()。并且在操作结束后也不打印序列

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),并

获取类型错误:“NoneType”类型的对象没有len()。而且它也不会在for操作后打印序列

您没有
return
语句,因此默认方法return
None
您可以通过执行

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]))