linying002 发表于 2024-1-25 10:38:41

替换出现报错,该怎么解决?

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 就报错了?

FishC 发表于 2024-1-25 10:39:32

在你的代码中,有两个问题导致报错。

第一个问题是你没有给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:08:50

本帖最后由 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]
查看完整版本: 替换出现报错,该怎么解决?