最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用Python判斷整數(shù)是否是回文數(shù)的3種方法總結(jié)

 更新時(shí)間:2021年07月07日 09:35:21   作者:一條自私的魚  
這篇文章主要給大家介紹了關(guān)于如何利用Python判斷整數(shù)是否是回文數(shù)的3種方總結(jié),回文數(shù)是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數(shù),需要的朋友可以參考下

前言

所謂回文數(shù),就是說(shuō)一個(gè)數(shù)字從左邊讀和從右邊讀的結(jié)果是一模一樣的,比如12321。本文通過(guò)三個(gè)方法詳細(xì)介紹了判斷的方法,下面來(lái)一起看看吧

方法一:逐位判斷

原理: 用一個(gè)while循環(huán),將一個(gè)數(shù)每次都取出首位和末位,判斷是否相等,只要有一次不相等退出即可。

回文數(shù)的判斷條件:加入一個(gè)變量位數(shù),如果這個(gè)數(shù)是奇數(shù),位數(shù)為1時(shí),即最中間那一位數(shù),此時(shí)退出即可,同理,偶數(shù),位數(shù)為0時(shí),退出。

問題:

  • 如何判斷位數(shù)
  • 如何逐位取值

優(yōu)點(diǎn): 思路簡(jiǎn)單

解決:

判斷位數(shù)下面程序即可

	y=x
    weishu=0
    while x:
        weishu+=1
        x=x//10

先將判斷的x賦值給y,當(dāng)x不為0時(shí),表明現(xiàn)在x還有位數(shù),位數(shù)+1,x/10減少一位,但要記住,用地板除(//)直接得到int整數(shù),否則用/會(huì)出現(xiàn)浮點(diǎn)數(shù)

逐位取值:

		a=y//(10**(weishu-1))
        b=y%10
        if a!=b:
            print("不是回文數(shù)。")
            break
        weishu-=2
        y=y//10
        y=y%(10**weishu)

取得首位只要地板除以相應(yīng)的位數(shù),把首位后面的數(shù)舍去,比如一個(gè)五位數(shù),地板除10000(10的4次方,所以是位數(shù)-1),就會(huì)得到首位,末尾比較簡(jiǎn)單,只要對(duì)10取模得到余數(shù)就是各位,a是首位,b是末位。

判斷首尾相等后,先將位數(shù)-2,然后將首尾的數(shù)字都給刪掉,刪掉末位//10即可,刪掉首位:如果是五位數(shù),現(xiàn)在刪掉末位后是四位數(shù),地板與1000取模即可

然后是判斷如何判斷退出循環(huán)

如上文,判斷位數(shù)最后的值即可

最后判斷負(fù)數(shù)和個(gè)位數(shù)即可

實(shí)現(xiàn)代碼如下:

x=int(input("請(qǐng)輸入一個(gè)整數(shù):"))
if x<0:
    print("不是回文數(shù)。")
elif not x//10:
    print("是回文數(shù)。")
else:
    y=x
    weishu=0
    while x:
        weishu+=1
        x=x//10
    while True:
        a=y//(10**(weishu-1))
        b=y%10
        if a!=b:
            print("不是回文數(shù)。")
            break
        weishu-=2
        if weishu==1:
            print("是回文數(shù)。")
            break
        if not weishu:
            print("是回文數(shù)。")
            break
        y=y//10
        y=y%(10**weishu)

方法二:得到顛倒后的數(shù)判斷

原理: 每一個(gè)回文數(shù)從中間切開前后都是相等的,所以得到一個(gè)回文數(shù)后面的數(shù)與前面的數(shù)比較即可

那么問題來(lái)了,如果是奇位數(shù),怎么判斷?

解決: 只要最后得到的前面的數(shù)或者后面的數(shù)除去末位數(shù)與另一個(gè)相等即可,因?yàn)槠嫖粩?shù)中間的數(shù)不用管,其他的數(shù)相等就可以,所以刪去末位判斷是否相等

難點(diǎn): 如何得到后面的數(shù)?

每次將后面的數(shù)乘上10,然后加上前面數(shù)的末位,前面的數(shù)地板除10消除末位即可

如何判斷后面的數(shù)已經(jīng)取好了,即退出循環(huán)的判斷條件是:

就是當(dāng)后面的數(shù)已經(jīng)大于等于前面的數(shù)就可以退出循環(huán)了

優(yōu)點(diǎn): 代碼簡(jiǎn)單

實(shí)現(xiàn)程序如下:

	hou=0
    while(x>hou):
        hou=hou*10+x%10
        x//=10
    if x==hou or x==(hou//10):
        print("是回文數(shù)。")
    else:
        print("不是回文數(shù)。")

最后判斷負(fù)數(shù)和末位是0但不是0的數(shù),他們一定不是回文數(shù),因?yàn)殚_頭不能是0

個(gè)位數(shù)此程序能夠判斷,后面的數(shù)就是此個(gè)位數(shù),地板除10之后和前面一樣都是10,即回文數(shù)

最終程序:

x=int(input("請(qǐng)輸入一個(gè)整數(shù):"))
if x<0 or(x%10==0 and x!=0):
    print("不是回文數(shù)。")
elif not x//10:
    print("不是回文數(shù)。")
else:
    hou=0
    while(x>hou):
        hou=hou*10+x%10
        x//=10
    if x==hou or x==(hou//10):
        print("是回文數(shù)。")
    else:
        print("不是回文數(shù)。")

方法三:字符串處理

原理: 字符串其實(shí)是序列,我們只要將字符串倒過(guò)來(lái)判斷是否和原字符串相等就可以了

反轉(zhuǎn)可以用x[::-1]

實(shí)現(xiàn)代碼如下

x=input("請(qǐng)輸入一個(gè)整數(shù):")
if x==x[::-1]:
    print("是回文數(shù)。")
else:
    print("不是回文數(shù)。")

要是你說(shuō)還能不能更高級(jí)一點(diǎn),還可以用條件表達(dá)式這樣寫

x=input("請(qǐng)輸入一個(gè)整數(shù):")
print("是回文數(shù)。") if x==x[::-1] else print("不是回文數(shù)。")

但是如果他給你一個(gè)09890也會(huì)報(bào)錯(cuò),具體解決可以先轉(zhuǎn)化為int,再轉(zhuǎn)化為str

最終成品:

x=int(input("請(qǐng)輸入一個(gè)正整數(shù):"))
x=str(x)
print("是回文數(shù)。") if x==x[::-1] else print("不是回文數(shù)。")

總結(jié)

到此這篇關(guān)于利用Python判斷整數(shù)是否是回文數(shù)的3種方法總結(jié)的文章就介紹到這了,更多相關(guān)Python判斷整數(shù)是回文數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python實(shí)現(xiàn)希爾伯特變換(Hilbert transform)的示例代碼

    Python實(shí)現(xiàn)希爾伯特變換(Hilbert transform)的示例代碼

    希爾伯特變換(Hilbert transform)是一個(gè)對(duì)函數(shù)產(chǎn)生定義域相同的函數(shù)的線性算子,而且希爾伯特變換在信號(hào)處理中很重要,所以本文和大家分享了Python實(shí)現(xiàn)希爾伯特變換的代碼,需要的可以參考一下
    2023-04-04
  • 詳解python tkinter教程-事件綁定

    詳解python tkinter教程-事件綁定

    這篇文章主要介紹了python tkinter事件綁定,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Python之字典及while循環(huán)解讀

    Python之字典及while循環(huán)解讀

    這篇文章主要介紹了Python之字典及while循環(huán)解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • pycharm 實(shí)現(xiàn)復(fù)制一行的快捷鍵

    pycharm 實(shí)現(xiàn)復(fù)制一行的快捷鍵

    這篇文章主要介紹了pycharm 實(shí)現(xiàn)復(fù)制一行的快捷鍵,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • python實(shí)現(xiàn)的守護(hù)進(jìn)程(Daemon)用法實(shí)例

    python實(shí)現(xiàn)的守護(hù)進(jìn)程(Daemon)用法實(shí)例

    這篇文章主要介紹了python實(shí)現(xiàn)的守護(hù)進(jìn)程(Daemon)用法,實(shí)例分析了Python進(jìn)程操作的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • Tensorflow 1.0之后模型文件、權(quán)重?cái)?shù)值的讀取方式

    Tensorflow 1.0之后模型文件、權(quán)重?cái)?shù)值的讀取方式

    今天小編就為大家分享一篇Tensorflow 1.0之后模型文件、權(quán)重?cái)?shù)值的讀取方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • selenium如何定位span元素的實(shí)現(xiàn)

    selenium如何定位span元素的實(shí)現(xiàn)

    這篇文章主要介紹了selenium如何定位span元素的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • python基礎(chǔ)之文件操作

    python基礎(chǔ)之文件操作

    這篇文章主要介紹了python基礎(chǔ)之文件操作,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有一定的幫助,需要的朋友可以參考下
    2021-04-04
  • python網(wǎng)絡(luò)編程之?dāng)?shù)據(jù)傳輸U(kuò)DP實(shí)例分析

    python網(wǎng)絡(luò)編程之?dāng)?shù)據(jù)傳輸U(kuò)DP實(shí)例分析

    這篇文章主要介紹了python網(wǎng)絡(luò)編程之?dāng)?shù)據(jù)傳輸U(kuò)DP實(shí)現(xiàn)方法,實(shí)例分析了Python基于UDP協(xié)議的數(shù)據(jù)傳輸實(shí)現(xiàn)方法,需要的朋友可以參考下
    2015-05-05
  • Python實(shí)現(xiàn)敏感詞過(guò)濾的五種方法

    Python實(shí)現(xiàn)敏感詞過(guò)濾的五種方法

    在我們生活中的一些場(chǎng)合經(jīng)常會(huì)有一些不該出現(xiàn)的敏感詞,我們通常會(huì)使用*去屏蔽它,一些罵人的敏感詞和一些政治敏感詞都不應(yīng)該出現(xiàn)在一些公共場(chǎng)合中,這個(gè)時(shí)候我們就需要一定的手段去屏蔽這些敏感詞,下面我來(lái)介紹一些簡(jiǎn)單版本的Python敏感詞屏蔽的方法,需要的朋友可以參考下
    2025-04-04

最新評(píng)論

新泰市| 镇原县| 米林县| 那坡县| 翁牛特旗| 天柱县| 藁城市| 札达县| 杂多县| 平阴县| 天等县| 丹巴县| 类乌齐县| 青神县| 武宣县| 清远市| 辽阳市| 景谷| 高安市| 阿拉善左旗| 柏乡县| 丹凤县| 琼结县| 莱西市| 闸北区| 怀仁县| 漾濞| 府谷县| 什邡市| 石阡县| 九江县| 甘孜| 浪卡子县| 河南省| 井陉县| 德阳市| 卢龙县| 福州市| 中西区| 扬中市| 丹凤县|