鱼C论坛

 找回密码
 立即注册
查看: 409|回复: 8

[已解决]判断回文联的问题

[复制链接]
发表于 2020-4-12 17:27:27 | 显示全部楼层 |阅读模式

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

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

x
def duilian(string):
    duilian1 = []
    for each in string:
        duilian1.append(each)
    if duilian1 == duilian1.reverse():
        print('回文联')
    else:
        print('非回文联')

string = input('输入一句话:')
duilian(string)

我的思路是判断输入的内容如果倒过来与之前一致就是回文联,因为只有list可以进行.reverse(),所以我先把输入的每个字符串都放到一个list中去,然后倒过来判断
最佳答案
2020-4-12 17:33:02
reverse()没有返回值,这么写:
def duilian(string):
    duilian1 = []
    duilian2 = []
    for each in string:
        duilian1.append(each)
        duilian2.append(each)
    duilian2.reverse()
    if duilian1 == duilian2:
        print('回文联')
    else:
        print('非回文联')

string = input('输入一句话:')
duilian(string)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-12 17:28:29 | 显示全部楼层
但是我发现程序无法判断,永远都会判断是“非回文联”,所以我在试代码的过程中发现是if duilian1 == duilian1.reverse(): 这里出错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-12 17:30:33 | 显示全部楼层
于是我单独试了一下list与list.reverse()的判断发现无论list中是什么 list == list.reverse()都会报false
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-12 17:31:45 | 显示全部楼层
比如list1 = [1,1,2,1,1], 那list1.reverse()就等于[1,1,2,1,1], 但是如果输入list1 = list1.reverse() 结果就会显示false
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-12 17:32:35 | 显示全部楼层
这里为什么不等于true啊,求个大佬讲解一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-12 17:33:02 | 显示全部楼层    本楼为最佳答案   
reverse()没有返回值,这么写:
def duilian(string):
    duilian1 = []
    duilian2 = []
    for each in string:
        duilian1.append(each)
        duilian2.append(each)
    duilian2.reverse()
    if duilian1 == duilian2:
        print('回文联')
    else:
        print('非回文联')

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

使用道具 举报

发表于 2020-4-12 17:40:12 From FishC Mobile | 显示全部楼层
楼上正解,reverse()仅对列表进行一个逆序的操作。如果是其他语言你的程序会报错。但python中语法正确,只是由于list.reverse()=null,比较结果永远是false,达不成你的预期
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-12 18:11:12 | 显示全部楼层
wuqramy 发表于 2020-4-12 17:33
reverse()没有返回值,这么写:

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

使用道具 举报

 楼主| 发表于 2020-4-12 18:12:12 | 显示全部楼层
倒戈卸甲 发表于 2020-4-12 17:40
楼上正解,reverse()仅对列表进行一个逆序的操作。如果是其他语言你的程序会报错。但python中语法正确,只 ...

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 08:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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