替换出现报错,该怎么解决?
nums =nums.sort()
length = len(nums)
half = nums
nums
2
nums =
half = nums
Traceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
half = nums
TypeError: object of type 'NoneType' has no len()
为什么half = nums 就报错了? 在你的代码中,有两个问题导致报错。
第一个问题是你没有给nums赋值。在第一行的等号后面没有给nums赋值,所以它是一个空白对象(NoneType)。你需要提供一组数字给nums变量,例如:
nums =
第二个问题是你将half指向了nums,而不是复制nums的值给half。当你使用half = nums时,它们实际上指向同一个列表对象,而不是创建一个新的列表。所以当你对nums进行排序后,half也会被改变。如果你想要复制nums的值给half,你可以使用切片操作符[:],例如:
half = nums[:]
下面是修正后的代码:
nums =
nums.sort()
length = len(nums)
half = nums[:]
print(nums)
print(half)
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 本帖最后由 jackz007 于 2024-1-25 11:41 编辑
nums.sort() 没有返回值,所以,len(nums.sort()) 其实就是 len(None),必然就会报错。
所以,代码应该这么改:
nums =
half = len(nums) // 2 # 获取列表 nums 的元素数量用 len(nums) 就可以了。
nums . sort() # 想对 nums 排序,必须单独写一行代码。
print(nums)
页:
[1]