value = 0
def test():
if value == 1:
a = b = 1
return a, b
a, b = test()
print(a, b)
Traceback (most recent call last):
File “d:\Projects\Python\PythonCrawler\weibo_ajax\test.py”, line 10, in
a, b = test()
TypeError: cannot unpack non-iterable NoneType object
首先,要知道 python 中每个函数在没有确定的 return 语句时,都是默认返回 None。因此,在上述例子中函数 test() 不满足 if 条件判断,所以最后返回的是默认的 None ,然后又把单个 None 赋值给 a,b ,所以就报错了。
解决方法(加上else判断):
value = 0
def test():
if value == 1:
a = b = 1
return a, b
else:
return 1, 2
a, b = test()
print(a, b)
注意:else 的 return 可以返回任意类型,但必须返回两个,否则还会报错。
TypeError: 'NoneType' object is not iterable 这个错误提示一般发生在将None赋给多个值时。?12345def myprocess(): a == b if a != b: return True, value; flag, val = myprocess() 在判断语句中,当if条...
print(a,b)
定义一个变量str1值为None,然后将str1的值赋予a、b两个值,然后打印出a,b的值,这时就会报“'NoneType' object is not iterable”的错误。这个问题常会出现在条件判断中,例如下面的代码中,只有if判断,当不满足num==1的条件时,函数默认返回No
的原因在于,最终所被调用的函数所返回的值,和返回值赋值给的变量,不匹配。
此处即为,最终所调用的函数是extractBlogUser,其return为空,所以把返回的空的值,赋值给
(extractOK, extractedBlogUser, generatedBlogEntryUrl)
才会出现类型错误TypeError,才会提示NoneType,即extractBlogUser所return回来的No.
1.TypeError: 'NoneType' object is not iterable 原因:data 内容为空
1.2 挑选头条里的几个人物,发现还挺有意思的。建议文案工作者爬爬数据,就看看文案也蛮好的。
2.现在进行测试:手动更改参数格式vs利用notepad++列模式更改
2.1 个人猜测是tab键的原因
2.2于是自己开始大胆假设,小心求证, 发现显示space和tab 键, 数字之间空余的都是space,说明不关tab的事
3. 总结:机器在识别的过程中,对特定标签有要求.
比如 x,y,z = func1();这里有一个隐式的解构操作;如果func1没有返回值,这里就可能会有一个NoneType类型的返回值。就会出现标题里的错误。TypeError: cannot unpack non-iterable NoneType object这个错误的意思是;例如,显示的,将timeArray的前六个元素解构出来,作为datetime的参数。对非元组(迭代)类型NoneType,不能做解构操作;还有一种显示的解构操作符: * 星号。
执行这段测试程序会报错:“TypeError: ‘NoneType’ object is not iterable”
这里是没有考虑到else的情况,在if条件不满足时,函数默认返回No...
写了一个测试,个人理解这样的问题是因为将None值多次赋给某个值。测试如下
1. 该段代码没有写else。python在 if 语句无else的情况下返回的值为None,由于是无迭代的返回(non-iterable)因此可以运行
flag = False
报错有很多个版本,并且经常在路径错误、返回值错误这样的场合发生,其它的博文都是说在做cv的时候自己的图片路径配置错了导致类似的报错,我想提醒大家遇到这样的,首先应该耐心通过调试器去查看变量,进而快速找到原因!在进行分布式机器学习的训练时,遇到一个非常奇怪的BUG,上一个版本的代码还能够正常运行,然而在这一个版本,只要运行,就会报错。究其原因,只能说一个:装饰器把函数应有的返回值吞掉了!发生错误的代码是一个pytorch加载模型参数的句子,都正常,但是在回到主程序的时候,变量。结果在调试的时候发现,函数。