鱼C论坛

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

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

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

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

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

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

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

本帖被以下淘专辑推荐:

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

使用道具 举报

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

下面是一个修正后的代码示例:
i = input("请输入一个整数:")
s = str(i)  # 将输入的整数转为字符串

# 使用切片来反转字符串
if s == s[::-1]:
    print(i, "是一个回文数")
else:
    print(i, "不是一个回文数")

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

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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

input 返回的就是一个字符串 为啥还要用str转
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-22 10:01:30 | 显示全部楼层
没有问题啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2024-7-23 15:32:19 | 显示全部楼层
s.reverse() 让列表 s 反转,但是它既不返回 s ,也不返回反转后的 s 。s.reverse() 返回 None 。
>>> s = ['5','6','7','8','9']
>>> s
['5', '6', '7', '8', '9']
>>> print(s.reverse())
None
>>> s
['9', '8', '7', '6', '5']
由于非空列表与 None 显然不相等,所以 s == s.reverse() 返回 False

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

if s == s[::-1]:
    print(i,"是一个回文数")
else:
    print(i,"不是一个回文数")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-8 09:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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