鱼C论坛

 找回密码
 立即注册
查看: 1893|回复: 11

[已解决]019讲作业中的回文联判断问题

[复制链接]
发表于 2017-7-28 17:52:30 | 显示全部楼层 |阅读模式

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

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

x
  1. def palindrome(string):
  2.     list1 = list(string)
  3.     list2 = list1.reverse()
  4.     if(list1 == list2):
  5.         return 1
  6.     else:
  7.    
  8.     return 0
  9. string = input('请输入一句话:')
  10. if(palindrome(string)==1):
  11.     print('是回文联!')
  12. else:
  13.     print('不是回文联!')
复制代码

请各位鱼油看一下哈,这个程序老是报错:expected an indented block,究竟怎么一回事?
最佳答案
2017-7-29 11:04:58
本帖最后由 Castieler 于 2017-7-31 17:00 编辑

def palindrome(string):
        list1 = list(string)
       
        list2=list1.copy()#深拷贝 把list1拷贝给list2 (属于两个内存地址)

        list1.reverse()
        #list2 = list1.reverse() reverse()是可变对象(字典、列表)的方法,
        # 无参数,无返回值,sreverse()会改变可变对象,因此无需返回值
        #所以不能返回逆序的列表给list2  list1本身的值已经逆序
        print(list1)
        if (list2 == list1):
                return 1
        else:
       
                return 0

string = input('请输入一句话:')
if (palindrome(string) == 1):
        print('是回文联!')
else:
        print('不是回文联!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-7-28 19:03:45 | 显示全部楼层
把08行右移4位。
另程序还有问题,你打印一下list2看看是什么值?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-7-28 19:21:32 | 显示全部楼层
第8行空格没空 else下面没有东西了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-28 19:28:53 | 显示全部楼层
  1. def palindrome(string):
  2.     list1 = list(string)
  3.     list2 = list1.reverse()
  4.     if(list1 == list2):
  5.         return 1
  6.     else:   
  7.         return 0
  8. string = input('请输入一句话:')
  9. if(palindrome(string)==1):
  10.     print('是回文联!')
  11. else:
  12.     print('不是回文联!')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-29 00:22:32 | 显示全部楼层
冬雪雪冬 发表于 2017-7-28 19:03
把08行右移4位。
另程序还有问题,你打印一下list2看看是什么值?

对啊对啊,那个return缩进我已经改过来了但是我在shell里面试了一下reverse()方法,发现根本没有反应,这又是怎么一回事
  1. >>> string = 'xuemingwu'
  2. >>> list(string)
  3. ['x', 'u', 'e', 'm', 'i', 'n', 'g', 'w', 'u']
  4. >>> list1 = list(string)
  5. >>> list1
  6. ['x', 'u', 'e', 'm', 'i', 'n', 'g', 'w', 'u']
  7. >>> list1.reverse()
  8. >>> list2 = list1.reverse()
  9. >>> list2
  10. >>>
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-29 00:25:08 | 显示全部楼层

那这个程序好像只是改了return缩进,虽然程序不会报错,但程序不对。程序运行结果如下:
>>>
请输入一句话:'上海自来水来自海上'
不是回文联!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-29 00:26:05 | 显示全部楼层
马云 发表于 2017-7-28 19:21
第8行空格没空 else下面没有东西了

改过来了,但是还是不对。程序改过来结果是这样:
>>>
请输入一句话:'上海自来水来自海上'
不是回文联!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-29 09:41:07 | 显示全部楼层
suasuperhero 发表于 2017-7-29 00:25
那这个程序好像只是改了return缩进,虽然程序不会报错,但程序不对。程序运行结果如下:
>>>
请输入一 ...

该自已动脑子的时候还得自己动脑呀。
  
如果照你这么下去,直接给你一段完整的代码不就完事了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-29 11:04:58 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Castieler 于 2017-7-31 17:00 编辑

def palindrome(string):
        list1 = list(string)
       
        list2=list1.copy()#深拷贝 把list1拷贝给list2 (属于两个内存地址)

        list1.reverse()
        #list2 = list1.reverse() reverse()是可变对象(字典、列表)的方法,
        # 无参数,无返回值,sreverse()会改变可变对象,因此无需返回值
        #所以不能返回逆序的列表给list2  list1本身的值已经逆序
        print(list1)
        if (list2 == list1):
                return 1
        else:
       
                return 0

string = input('请输入一句话:')
if (palindrome(string) == 1):
        print('是回文联!')
else:
        print('不是回文联!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2017-7-29 22:23:19 | 显示全部楼层
ba21 发表于 2017-7-29 09:41
该自已动脑子的时候还得自己动脑呀。
  
如果照你这么下去,直接给你一段完整的代码不就完事 ...

。。。如果说是思路打不开,不需要你来提醒我我自己会动脑,这个可能是细节问题,我只是需要人来提醒我一下那个细节可能被我遗忘了。。。如果你是大佬或者想装大佬,请绕行谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-29 22:27:55 | 显示全部楼层
Castieler 发表于 2017-7-29 11:04
def palindrome(string):
        list1 = list(string)
       

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

使用道具 举报

发表于 2017-7-29 23:06:25 | 显示全部楼层
suasuperhero 发表于 2017-7-29 22:23
。。。如果说是思路打不开,不需要你来提醒我我自己会动脑,这个可能是细节问题,我只是需要人来提醒我一 ...

这个程序老是报错:expected an indented block,究竟怎么一回事!~
给你来解决问题,倒是讨骂了
问题是解决了,你倒是又要答案,于了叫你自己动下脑。又说我装大佬。好了,不好意思,是我多事了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 07:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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