鱼C论坛

 找回密码
 立即注册
查看: 471|回复: 5

判断一个数是否是回文数,请问我的代码应该怎么改?

[复制链接]
发表于 2024-7-21 22:27:34 | 显示全部楼层 |阅读模式

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

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

x
  1. i = input("请输入一个整数:")
  2. s = [n for n in str(i)]

  3. if s == s.reverse():
  4.     print(i,"是一个回文数")
  5. else:
  6.     print(i,"不是一个回文数")

复制代码

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-7-21 22:28:43 | 显示全部楼层
你这个代码的思路是对的,但有几个地方需要修改。首先,我们要把输入的整数转为字符串才能进行反转操作。然后,`reverse()`是一个方法,但它并不会直接返回反转后的字符串,而是将原字符串就地反转,所以我们需要使用切片的方法或者 `reversed()` 函数来实现。

下面是一个修正后的代码示例:

  1. i = input("请输入一个整数:")
  2. s = str(i)  # 将输入的整数转为字符串

  3. # 使用切片来反转字符串
  4. if s == s[::-1]:
  5.     print(i, "是一个回文数")
  6. else:
  7.     print(i, "不是一个回文数")
复制代码


这里的 `s[::-1]` 是一个非常 Pythonic 的用法,它能够快速反转字符串。现在你的代码就可以正常判断输入的整数是否为回文数了!

希望这段代码能帮助你找到所有的“数中之友”!如果还有问题,尽管问我哦!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-22 08:49:24 | 显示全部楼层
FishC 发表于 2024-7-21 22:28
你这个代码的思路是对的,但有几个地方需要修改。首先,我们要把输入的整数转为字符串才能进行反转操作。然 ...

input 返回的就是一个字符串 为啥还要用str转
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-22 10:01:30 | 显示全部楼层
没有问题啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-22 10:47:14 | 显示全部楼层
reverse()不会直接返回反转后的字符串,而是将原字符串就地反转, 返回值是None
需要使用切片或者 reversed()
球最佳~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-23 15:32:19 | 显示全部楼层
s.reverse() 让列表 s 反转,但是它既不返回 s ,也不返回反转后的 s 。s.reverse() 返回 None 。
  1. >>> s = ['5','6','7','8','9']
  2. >>> s
  3. ['5', '6', '7', '8', '9']
  4. >>> print(s.reverse())
  5. None
  6. >>> s
  7. ['9', '8', '7', '6', '5']
复制代码

由于非空列表与 None 显然不相等,所以 s == s.reverse() 返回 False

修改:运用切片获取 s 的反转。此时 s 不发生变化。
  1. i = input("请输入一个整数:")
  2. s = [n for n in str(i)] #即使 s 是一个字符串,也可以用切片反转,因此这一行可以删去

  3. if s == s[::-1]:
  4.     print(i,"是一个回文数")
  5. else:
  6.     print(i,"不是一个回文数")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-21 15:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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