鱼C论坛

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

[已解决]自编回文数但是在中间卡住

[复制链接]
发表于 2020-2-14 10:58:22 | 显示全部楼层 |阅读模式

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

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

x
  1. print('请输入一句话:',end = ' ')
  2. temp = str(input())
  3. list1 = list(temp)
  4. list2 = list1.reverse()
  5. if list1 == list2 :
  6.     print('是回文数')
  7. else:
  8.     print('不是回文数')

  9. 请输入一句话: 123321
  10. 不是回文数

  11. 请输入一句话: 123456
  12. 不是回文数
  13. >>> list1
  14. ['6', '5', '4', '3', '2', '1']
复制代码


在这里我明明是让list2赋值为list1 的相反列表,为什么我在代码运行后输出list1 就变成了相反列祖,并且我的代码应该如何修改呢,望指点
最佳答案
2020-2-14 14:19:42
list1.reverse() 没有返回值,它只能单独作为一个语句。所以应该这样:

  1. print('请输入一句话:', end=' ')
  2. temp = input()  # 此处 str() 可以省略
  3. list1 = list(temp)
  4. list2 = list1[:]
  5. list2.reverse()
  6. if list1 == list2:
  7.     print('是回文数')
  8. else:
  9.     print('不是回文数')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-14 13:02:59 | 显示全部楼层
reverse不能直接赋值给变量
直接这样写:
  1. if list1 == list1.reverse() :
  2.     print('是回文数')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-14 13:18:01 | 显示全部楼层
  1. 请输入一句话: 12321
  2. 不是回文数
  3. >>> list1
  4. ['1', '2', '3', '2', '1']
  5. >>> list2
  6. >>> print(list2)
  7. None
复制代码

我把你的代码复制下来,这样理解了吧
因为列表的reverse()函数是没有返回值的,
所以你list2=list1.reverse()是把None赋值给了list2
如果你要赋值的话可以用reversed()函数,返回被倒序后的值,不过还要再调用list函数把返回值转变成列表
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-14 13:20:09 | 显示全部楼层
qiuyouzhi 发表于 2020-2-14 13:02
reverse不能直接赋值给变量
直接这样写:

你这样也是错的,不信可以试试,因为reverse函数是直接在原列表上作改变,返回值是None,所以你这样写无论如何都是不等于
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-14 14:19:42 | 显示全部楼层    本楼为最佳答案   
list1.reverse() 没有返回值,它只能单独作为一个语句。所以应该这样:

  1. print('请输入一句话:', end=' ')
  2. temp = input()  # 此处 str() 可以省略
  3. list1 = list(temp)
  4. list2 = list1[:]
  5. list2.reverse()
  6. if list1 == list2:
  7.     print('是回文数')
  8. else:
  9.     print('不是回文数')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-15 11:43:56 | 显示全部楼层
lanshj 发表于 2020-2-14 13:18
我把你的代码复制下来,这样理解了吧
因为列表的reverse()函数是没有返回值的,
所以你list2=list1.rev ...

这回理解了 谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-15 11:45:31 | 显示全部楼层
zltzlt 发表于 2020-2-14 14:19
list1.reverse() 没有返回值,它只能单独作为一个语句。所以应该这样:

比我之前的简洁明了多了,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-11 04:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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