时宇羽然 发表于 2021-2-17 11:45:45

求大佬看看这个代码哪里出错了,萌新要哭了

def huiwen(number):
    list1 = list(str(number))
    list2 = list1.reverse()
    for i in range(0 , len(str(number)) , 1):
      if list1 != list2:         #好像就是这一步有问题
            return False

    return True

huiwen(121)

qiuyouzhi 发表于 2021-2-17 11:49:40

list.reverse是没有返回值的,它会操作原列表
你可以这样:
list1 = list(str(number))
list2 = list1.copy()
list2.reverse
当然,等你学到后面的时候你也可以用reversed或者切片

逃兵 发表于 2021-2-17 11:50:41

第三行错了
def huiwen(number):
    list1 = list(str(number))
    list2 = list(reversed(list1))
    for i in range(0 , len(str(number)) , 1):
      if list1 != list2:         #好像就是这一步有问题
            return False

    return True

print(huiwen(121))

list.reverse()是方法,会将列表本身倒转
>>> X =
>>> X.reverse()
>>> X


内置函数reversed()是将列表返回一个迭代器
>>> X =
>>> a = list(reversed(X))
>>> print(a)


方法和函数不要搞混哦

HZX0229 发表于 2021-2-17 11:57:14

reverse()方法, 不返回对象, 如果要list2 = 逆序list1,这样才行, list2= list1.cope(), list2.reverse()

时宇羽然 发表于 2021-2-17 15:49:40

qiuyouzhi 发表于 2021-2-17 11:49
list.reverse是没有返回值的,它会操作原列表
你可以这样:



谢谢大佬

时宇羽然 发表于 2021-2-17 15:50:35

逃兵 发表于 2021-2-17 11:50
第三行错了




原来如此

时宇羽然 发表于 2021-2-17 15:51:07

HZX0229 发表于 2021-2-17 11:57
reverse()方法, 不返回对象, 如果要list2 = 逆序list1,这样才行, list2= list1.cope(), list2.reverse ...

万分感谢

qq1151985918 发表于 2021-2-17 16:00:22

list1.reverse()是在原列表操作,没有返回值
我们可以直接给 list2 赋值为 list1 的副本,然后对 list1 进行 list1.reverse() 操作
如果原列表副本 和 进行 list1.reverse() 后的 list1 相等则证明是 回文联
def huiwen(number):
    list1 = list(str(number))
    list2 = list1[:]
    list1.reverse()
    if list2 != list1:
      return False
    else:
      return True

huiwen(121)

qiuyouzhi 发表于 2021-2-17 16:13:33

时宇羽然 发表于 2021-2-17 15:49
谢谢大佬

如果问题已解决,请设置【最佳答案】

时宇羽然 发表于 2021-2-17 16:24:24

qiuyouzhi 发表于 2021-2-17 16:13
如果问题已解决,请设置【最佳答案】

初来乍到,才知道有这一说{:10_277:}

时宇羽然 发表于 2021-2-17 16:24:57

多水水帖子,用户等级是不是可以提升?

时宇羽然 发表于 2021-2-17 16:25:28

页: [1]
查看完整版本: 求大佬看看这个代码哪里出错了,萌新要哭了