鱼C论坛

 找回密码
 立即注册
查看: 636|回复: 6

[已解决]回联文求助

[复制链接]
发表于 2020-5-29 14:16:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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


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


为什么这么不能判别回联文???
最佳答案
2020-5-29 15:37:46
reverse() 是在原有的列表上进行颠倒,而不会产生返回值,所以你赋值给 list2 = list1.reverse() 是没用的
list2 只会等于 None
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-29 14:28:58 | 显示全部楼层
  1. def huiwenlian(Str):
  2.     list1 = list(Str)
  3.     list2 = list1.copy()
  4.     list2.reverse()
  5.     if list1 == list2:
  6.         print('是回联文!')
  7.     else:
  8.         print('不是回联文!')


  9. Str = input('请输入一句话:')
  10. huiwenlian(Str)
复制代码
顺便一提,这叫回文联,不是回联文
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-29 15:37:46 | 显示全部楼层    本楼为最佳答案   
reverse() 是在原有的列表上进行颠倒,而不会产生返回值,所以你赋值给 list2 = list1.reverse() 是没用的
list2 只会等于 None
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-29 16:12:14 | 显示全部楼层
  1. list1 = list(Str)
  2. list2 = list1[:]
  3. list1.reverse()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-29 16:43:23 | 显示全部楼层
3楼的说法是对的

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

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


  10. Str = input('请输入一句话:')
  11. huiwenlian(Str)
复制代码


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


  10. Str = input('请输入一句话:')
  11. huiwenlian(Str)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-2 10:13:52 | 显示全部楼层
Twilight6 发表于 2020-5-29 15:37
reverse() 是在原有的列表上进行颠倒,而不会产生返回值,所以你赋值给 list2 = list1.reverse() 是没用的  ...

懂了懂了   谢谢大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-2 10:14:45 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-5-29 14:28
顺便一提,这叫回文联,不是回联文

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-15 01:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表