a1053828045 发表于 2020-5-29 14:16:32

回联文求助

def huiwenlian(Str):
    list1 = list(Str)
    list2 = list1.reverse()
    if list1 == list2:
      print('是回联文!')
    else:
      print('不是回联文!')


Str = input('请输入一句话:')
huiwenlian(Str)


为什么这么不能判别回联文???

永恒的蓝色梦想 发表于 2020-5-29 14:28:58

def huiwenlian(Str):
    list1 = list(Str)
    list2 = list1.copy()
    list2.reverse()
    if list1 == list2:
      print('是回联文!')
    else:
      print('不是回联文!')


Str = input('请输入一句话:')
huiwenlian(Str)顺便一提,这叫回文联,不是回联文

Twilight6 发表于 2020-5-29 15:37:46

reverse() 是在原有的列表上进行颠倒,而不会产生返回值,所以你赋值给 list2 = list1.reverse() 是没用的
list2 只会等于 None

jinlovelive 发表于 2020-5-29 16:12:14

list1 = list(Str)
list2 = list1[:]
list1.reverse()

majian890324 发表于 2020-5-29 16:43:23

3楼的说法是对的

list2 = list1.reverse() 这句:list1.reverse()是把list1原地翻转了,但是reverse()这个函数是没有返回值的,所以把“它”赋给list2是无效的,会返回一个None,所以不能不是回文联,

最后:如果不清楚为什么不是回文联或者为什么是回文联,请在后边加上print()打印出内容查看
def huiwenlian(Str):
    list1 = list(Str)
    list2 = list1.reverse()
    print(list1)
    print(list2)
    if list1 == list2:
      print('是回联文!')
    else:
      print('不是回联文!')


Str = input('请输入一句话:')
huiwenlian(Str)


所以在后边“序列”这节课中讲的:reversed()和sortd()是重点,这两个是有返回值的
def huiwenlian(Str):
    list1 = list(Str)
    list2 = list(reversed(list1))
    print(list1)
    print(list2)
    if list1 == list2:
      print('是回联文!')
    else:
      print('不是回联文!')


Str = input('请输入一句话:')
huiwenlian(Str)

a1053828045 发表于 2020-6-2 10:13:52

Twilight6 发表于 2020-5-29 15:37
reverse() 是在原有的列表上进行颠倒,而不会产生返回值,所以你赋值给 list2 = list1.reverse() 是没用的...

懂了懂了   谢谢大佬

a1053828045 发表于 2020-6-2 10:14:45

永恒的蓝色梦想 发表于 2020-5-29 14:28
顺便一提,这叫回文联,不是回联文

{:5_109:}谢谢
页: [1]
查看完整版本: 回联文求助