Python实现寻找回文数字过程解析

回文数字是很有意思的数字,不管从最高位开始念,还是从个位开始念,最终结果都一样,有一种对称美。

下面是回文数字的函数判断方式:

def is_palindrome(n):
  str_num = str(n)
  len_num = len(str_num)
  if len_num <= 2 and str_num[0] == str_num[-1]:
    return True
  else:
    half_len = round(len_num/2)
    for i in range(half_len):
      if not str_num[i] == str_num[-(i+1)]:
        return False
    return True

下面我们举个栗子,看3000以内有哪些回文数,以及有多少个这样的数字:

result = list(filter(is_palindrome, range(0, 3000)))
print(result, '\n', len(result))

输出如下:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55, 66, 77, 88, 99, 101, 111, 121, 131, 141, 151, 161, 171, 181, 191, 202, 212, 222, 232, 242, 252, 262, 272, 282, 292, 303, 313, 323, 333, 343, 353, 363, 373, 383, 393, 404, 414, 424, 434, 444, 454, 464, 474, 484, 494, 505, 515, 525, 535, 545, 555, 565, 575, 585, 595, 606, 616, 626, 636, 646, 656, 666, 676, 686, 696, 707, 717, 727, 737, 747, 757, 767, 777, 787, 797, 808, 818, 828, 838, 848, 858, 868, 878, 888, 898, 909, 919, 929, 939, 949, 959, 969, 979, 989, 999, 1001, 1111, 1221, 1331, 1441, 1551, 1661, 1771, 1881, 1991, 2002, 2112, 2222, 2332, 2442, 2552, 2662, 2772, 2882, 2992]
129

可以看到3000以内的自然数中,有129个回文数。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Python实现判断一个整数是否为回文数算法示例

    本文实例讲述了Python实现判断一个整数是否为回文数算法.分享给大家供大家参考,具体如下: 第一个思路是先将整数转换为字符串,再将字符串翻转并与原字符串做比较 def isPalindrome(self, x): """ :type x: int :rtype: bool """ #思路:先将整数转换为字符串,再将字符串翻转并与原字符串做比较 x = str(x) return x == x[::-1] 代码简洁 第二个思路,尝试着不用字符串,

  • 对python判断是否回文数的实例详解

    设n是一任意自然数.若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数.例如,若n=1234321,则称n为一回文数:但若n=1234567,则n不是回文数. 上面的解释就是说回文数和逆序后的结果是相等的.这就是判断一个数值是否是回文数的标准. 代码也是根据这个思路来实现的. # -*- coding: utf-8 -*- """ Created on Sun Aug 5 09:01:38 2018 @author: FanXiaoLei ""

  • python代码打印100-999之间的回文数示例

    打印100-999之间的回文数(即百位和个位的数字相等),并每10个打印一行 i = 100 x = 0 # 使用计数器,每10个换行打印 while i <= 999: if i // 100 == i % 10: # 百位整除,个位取余 print(i, end=" ") x += 1 # 如果是回文数,则计数器+1 if x % 10 == 0: # 当计数器数值每满10,就打印一个换行 print() i += 1 结果打印如下: 知识点归纳: 1.while循环基本语法

  • 使用python实现回文数的四种方法小结

    回文数就是指整数倒过来和原整数相等. Example 1: Input: 121 Output: true Example 2: Input: -121 Output: false Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome. Example 3: Input: 10 Output: false Expla

  • Python计算回文数的方法

    本文实例讲述了Python计算回文数的方法.分享给大家供大家参考.具体如下: 这里检查数字是不是回文数,用196算法生成一个数字的回文数 num = 905; def is_Palindrome(num): """ 判断一个数字是不是回文数,这里有些取巧了 :param num: :return: """ """ :param num: :return: """ temp = "

  • Python回文字符串及回文数字判定功能示例

    本文实例讲述了Python回文字符串及回文数字判定功能.分享给大家供大家参考,具体如下: 所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的.回文数字也是如此. python2代码如下: def huiwen(s): s1=str(s) if s1==''.join(reversed(s1)): return True else: return False 运行结果: >>> huiwen('abccba') True >>> huiwen('abc')

  • 解决Python中回文数和质数的问题

    一.前言 今天学习视频时课后作业是找出1000以内既是素数又是回文数的数,写代码这个很容易,结果一运行遇到了bug,输出结果跟预期不一样,调试了快30min,再接着一通搜索和回看视频才发现问题所在.所以特地写下来,方便以后查看.问题的关键是判断素数过程中for-else的用法上(具体看后面代码) 二.实现判断素数的功能 质数(Prime number),又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个因数的数).via--Wikiped

  • Python3实现的回文数判断及罗马数字转整数算法示例

    本文实例讲述了Python3实现的回文数判断及罗马数字转整数算法.分享给大家供大家参考,具体如下: 回文数 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向右读, 为 -121 . 从右向左读, 为 121- .因此它不是一个回文数. 示例 3: 输入: 10 输出: false 解释: 从右向左读, 为 01 .因此它不是一个回文数. 进阶:你

  • Python实现寻找回文数字过程解析

    回文数字是很有意思的数字,不管从最高位开始念,还是从个位开始念,最终结果都一样,有一种对称美. 下面是回文数字的函数判断方式: def is_palindrome(n): str_num = str(n) len_num = len(str_num) if len_num <= 2 and str_num[0] == str_num[-1]: return True else: half_len = round(len_num/2) for i in range(half_len): if no

  • Python最长回文子串问题

    目录 Python最长回文子串 1.暴力解法(Brute Method) 2.中心扩散法 3.动态规划 python练习–最长回文子串 题目描述 解题思路 代码 Python最长回文子串 1.暴力解法(Brute Method) 暴力求解是最容易想到的,要截取字符串的所有子串,然后再判断这些子串中哪些是回文的,最后返回回文子串中最长的即可. 这里我们可以使用两个变量,一个记录最长回文子串开始的位置,一个记录最长回文子串的长度,最后再截取. class Solution:     def long

  • Python使用微信接入图灵机器人过程解析

    这篇文章主要介绍了Python使用微信接入图灵机器人过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.wxpy库介绍 wxpy 在 itchat 的基础上,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展. 文档地址: https://wxpy.readthedocs.io 从 PYPI 官方源下载安装 pip install -U wxpy 2.图灵机器人 首先注册一个账号:http://www.turingapi.com/

  • Python unittest工作原理和使用过程解析

    这篇文章主要介绍了Python unittest工作原理和使用过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.unittest的工作原理: TestCase:一个testcase就是一条测试用例. setUp:测试环境的准备 tearDown:测试环境的还原 run:测试执行 TestSuite:测试套件或集合,多个测试用例的集合就是1个suite,一个suite可以包含多条测试用例,测试套件suite里面也可以嵌套测试套件suit

  • Python实现"验证回文串"的几种方法

    一.LeetCode--125.验证回文串 1.问题描述 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 2.示例 示例 1: 输入: "A man, a plan, a canal: Panama" 输出: True 示例 1: 输入: "race a car" 输出: False 示例 3: 输入: "!!!" 输出: True 二.解题分析 在排除空格及特殊

  • java 实现判断回文数字的实例代码

    前言: 有这样一类数字,它们顺着看和倒着看是相同的数,例如:121.656.2332等,这样的数字就称为回文数字.编写一个Java程序,判断从键盘接收的数字是否为回文数字. 2.解题思想 从回文数字的特点出发,弄清楚其特点是解决本问题的关键.解决方案可以通过将该数字倒置的办法来判断它是否是回文数字,例如:586,它的倒置结果为685,因为586!=685,故586不是回文数字. 3.Java代码 import java.util.Scanner; public class Palindrome

  • Python socket模块ftp传输文件过程解析

    这篇文章主要介绍了Python socket模块ftp传输文件过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 使用环境:python3,window环境,需要在头部声明# -*- coding:utf-8 -*- 实现功能: 将sever端所处文件夹的文件,传输到client端所处的文件夹中. 并且通过md5检测是否出错. 客户端命令的形式是: get 文件名 client处的新文件是 文件名.new ftp_sever.py impo

  • python redis 批量设置过期key过程解析

    这篇文章主要介绍了python redis 批量设置过期key过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在使用 Redis.Codis 时,我们经常需要做一些批量操作,通过连接数据库批量对 key 进行操作: 关于未过期: 1.常有大批量的key未设置过期,导致内存一直暴增 2.rd需求 扫描出这些key,rd自己处理过期(一般dba不介入数据的修改) 3.dba 批量设置过期时间,(一般测试可以直接批量设置,线上谨慎操作) 通过

随机推荐