鱼C论坛

 找回密码
 立即注册
查看: 2401|回复: 3

[已解决]能不能用字符串的形式来判断回文数

[复制链接]
发表于 2022-10-30 11:27:25 | 显示全部楼层 |阅读模式

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

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

x
for i in str(int(input("请输入一个正整数:"))):
    if str(input)==str(input).reversed:
        print("是回文数")
    else:
        print("不是回文数")
最佳答案
2022-10-30 12:14:04

input 函数接收用户输入,返回的本身就是字符串,不需要你后续同通过 str 函数进行转换

而且你 if 中判断 将 input 函数体转换为 str 肯定不行,而且 reversed 函数,字符串没有此方法

但 Python 有自带 reversed 函数。需要 reversed(xxx) 这样使用,返回的还是一个逆序生成器,需要将元素取出才能进行比较

使用 reversed 函数参考代码:

  1. string = input("请输入一个正整数:")
  2. if list(string) == list(reversed(string)):
  3.     print("是回文数")
  4. else:
  5.     print("不是回文数")
  6. string = input("请输入一个正整数:")
  7. if list(string) == list(reversed(string)):
  8.     print("是回文数")
  9. else:
  10.     print("不是回文数")
复制代码


这里不需要用 for 循环,使用 for 循环也可以这样实现:

  1. string = input("请输入一个正整数:")

  2. for i in range(len(string) // 2):
  3.     if string[i] != string[len(string) - 1 - i]:
  4.         print("不是回文数")
  5.         break
  6. else:
  7.     print("是回文数")
复制代码


最简单的还是使用切片,设置步长为 -1,相当于将字符串倒叙,参考 2L 代码

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

使用道具 举报

发表于 2022-10-30 11:31:32 | 显示全部楼层
本帖最后由 jackz007 于 2022-10-30 11:33 编辑
  1. s = input('输入一个正整数:')
  2. if s == s[::-1]:
  3.     print("是回文数")
  4. else:
  5.     print("不是回文数")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-30 11:47:29 From FishC Mobile | 显示全部楼层
str(input)这是啥,看不懂啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-30 12:14:04 | 显示全部楼层    本楼为最佳答案   

input 函数接收用户输入,返回的本身就是字符串,不需要你后续同通过 str 函数进行转换

而且你 if 中判断 将 input 函数体转换为 str 肯定不行,而且 reversed 函数,字符串没有此方法

但 Python 有自带 reversed 函数。需要 reversed(xxx) 这样使用,返回的还是一个逆序生成器,需要将元素取出才能进行比较

使用 reversed 函数参考代码:

  1. string = input("请输入一个正整数:")
  2. if list(string) == list(reversed(string)):
  3.     print("是回文数")
  4. else:
  5.     print("不是回文数")
  6. string = input("请输入一个正整数:")
  7. if list(string) == list(reversed(string)):
  8.     print("是回文数")
  9. else:
  10.     print("不是回文数")
复制代码


这里不需要用 for 循环,使用 for 循环也可以这样实现:

  1. string = input("请输入一个正整数:")

  2. for i in range(len(string) // 2):
  3.     if string[i] != string[len(string) - 1 - i]:
  4.         print("不是回文数")
  5.         break
  6. else:
  7.     print("是回文数")
复制代码


最简单的还是使用切片,设置步长为 -1,相当于将字符串倒叙,参考 2L 代码

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 07:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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