Twilight6 发表于 2020-3-22 00:11:49

19课课后作业!回文联问题!

本帖最后由 Twilight6 于 2020-3-29 15:08 编辑

def back(x = '上海自来水来自海上'):
    x = list(x);a = x.reverse()
    if a == x :
      print("是回文联!")
    else:
      print("不是回文联!")

1,这个代码为什么不能判定是不是回文连?

2,顺便问下下面这个代码为什么没有返回?
x = '1,2,3'
x = list(x)
a = x.reverse()
>>>a

>>>

#就成这样了是为什么???

sunrise085 发表于 2020-3-22 00:36:55

因为reverse函数是在原列表上进行的修改,没有返回值。
所以 执行完 a = x.reverse()后,a=None
你应该用a=reversed(x)
def back(x = '上海自来水来自海上'):
    x = list(x);a = list(reversed(x))
    if a == x :
      print("是回文联!")
    else:
      print("不是回文联!")

jackz007 发表于 2020-3-22 00:58:51

      回文联可以用字符串切片直接判断
s = '上海自来水来自海上'
if s == s[:: -1] : print("是回文联!")
else : print("不是回文联!")

qiuyouzhi 发表于 2020-3-22 09:22:36

你的两个问题其实都出于一个原因:
Python的列表方法大部分都是没有返回值的,
所以,直接
x.reverse
就好
或者你就是想用另外一个值,就这么写:
a = x[::-1]

歌者文明清理员 发表于 2023-6-24 19:02:53

考古{:10_256:}
页: [1]
查看完整版本: 19课课后作业!回文联问题!