我试图分裂名单,并将其复制到2名独立的名单和我得到: “类型错误:‘NoneType’对象未标化”Python列表“NoneType”错误
class example(object):
def ex(self,nums):
n = int(len(nums)/2)
nums1 = nums[:n]
nums2 = nums[n:]
我试图分裂名单,并将其复制到2名独立的名单和我得到: “类型错误:‘NoneType’对象未标化”Python列表“NoneType”错误
class example(object):
def ex(self,nums):
n = int(len(nums)/2)
nums1 = nums[:n]
nums2 = nums[n:]
你有没有验证nums确实是一个列表,并且n有一个值?如果您可以提供该代码,将来会很有用,因此用户可以提供更好的帮助。
此外,我不确定复制和粘贴代码时是否只是一个错误,但如果它在同一行上则不起作用。
顺便说一下,python使用None而不是null这就是为什么@Jeff Mercado在他的评论中提到了这一点。
我有示例代码的工作:检查
nums = [1, 2, 3, 4]
n = 2
nums1 = nums[:n]
nums2 = nums[n:]
print(nums1)
print(nums2)
Output:
[1, 2]
[3, 4]
编辑如果列表为空
检查隐(PEP 8推荐的方式):
if not nums:
print("Nums is empty")
检查明确(然而,这是蟒蛇皱眉):
if len(nums) == 0:
print("Nums is empty")
有关内置非类型的更多信息,请参阅python 2.x的文档here和python 3.x的here文档。
再次编辑,现在你已经编辑完成您最初的问题..
class Example(object):
def ex(self, nums):
# Either use an if check or try/except
if not nums:
print("Nums is empty")
try:
n = int(len(nums)/2)
nums1 = nums[:n]
nums2 = nums[n:]
print(n)
print(nums1)
print(nums2)
except TypeError:
print("Exception: You would put your exception code here")
example = Example()
num_list1 = [1, 2, 3, 4]
example.ex(num_list1)
num_list2 = []
example.ex(num_list2)
num_list3 = None
example.ex(num_list3)
输出:
2
[1, 2]
[3, 4]
Nums is empty
0
[]
[]
Nums is empty
Exception: You would put your exception code here
补充建议:
1.要坚持正常的惯例,利用你的班级名称。这将有助于区分它与正常的函数调用和对象实例化。
由于您上传了全新的代码段,因此再次进行了编辑。我希望我给你的信息有所帮助。我现在推荐玩这个游戏来帮助你学习。 –
谢谢你的建议 – spunkyquagga
乐于帮忙,欢迎来到Stack Overflow。如果此答案或任何其他人解决了您的问题,请将其标记为已接受。 –
'nums'不是一个列表......'nums'是'None' ... –
nums变量在分割之前看起来像什么? – jmugz3
数字将作为参数传递给函数。所以从技术上讲,在值传递之前它将是空的。我如何处理这种情况? – spunkyquagga