如何用Python编写一个判断回文数的程序

如何用Python编写一个判断回文数的程序,第1张

def ishuiweinum(num):

    if not isinstance(num,int):

        return False

    if num<0:

        return False

    numlist=[]

    while num>0:

        numlistappend(num%10)

        num/=10

    reverselist=numlist[:]

    reverselistreverse()

    return reverselist==numlist

if __name__=='__main__':

    print(ishuiweinum(12345))

    print(ishuiweinum(1234321))

def isPrime(n):

    if n <= 1:

        return False

    i = 2

    while i  i <= n:

        if n % i == 0:

            return False

        i += 1

    return True

n = 0

m = 11

while n < 100:

    if isPrime(m) and str(m) == str(m)[ ::-1 ]:

        n += 1

        print('{:>6}'format(m), end=' ' if n % 10 else '\n')

    m += 1

以下我以“//”来表示注释开始

def isPalindrome(s)://函数申明,函数名为isPalindrome,参数为s

"""Return True if s is a palindrome and False otherwise""" //函数的说明,相当于函数简介

#如果是回文(palindrome),返回True;否则返回False //这是python的注释

if len(s) <=1: return True //如果s的长度小于或等于1,则返回True

else: return s[0] == s[-1] and isPalindrome(s[1:-1]) //否则计算s的开头1位字符和末尾1位字符是否相等(结果1),并计算s的子串(从第2个字符开始到倒数第2个字符结束,包含第2个字符和倒数第2个字符)是否是回文串(结果2),把这2个结果做逻辑与返回

你的补充里的问题:

这个是python的元组的语法,假设元组a,则a[s:e]表示的是a的子元组(如果把a看作有顺序的集合,那么a[s:e]就表示a的子集,并且开始元素是下标为s的元素,结束元素的下标是e,如果s,e小于0,则表示从末尾开始计数得到的下标,比如s[1:-2]就表示从正数下标为1,一直到从末尾数下标为2之间的结果)

这个有好几种方式实现,最简单的首先数字转换成字符串x=12321 y=str(x),然后使用list[start:end:span]这种句式将字符串转换成list并倒序输出y[::-1],其中span小于0时倒序,大于0时正序,-1按顺序倒序输出,-2隔一个倒序输出。

具体如下

x = input("请输入任意数字")

if x == x[::-1]:

print("回文数")

else:

print("不是回文数")

from itertools import product

def palind(n):

return [n'%s'%tuple( list(i) + list(i[-(n%2)-1::-1]) ) for i in product(( [range(1,10)]+[range(10)]((n-1)/2)) )]

print map(palind, [3,4,5])

如果需要产生回文数,一般会判断是否对称或比较反转后是否还是自身然后过滤,范围较大时,效率就不高了

n位的回文数是其实是由前Ceiling(n/2)位决定的,以上代码采用构造法生成回文数,生成10位以内的回文数<1s (不输出)

以上就是关于如何用Python编写一个判断回文数的程序全部的内容,包括:如何用Python编写一个判断回文数的程序、python回文素数前一百个、请帮忙详解以下 Python 递归回文程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10172593.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存