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

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

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

前言

所謂回文數(shù),就是說一個數(shù)字從左邊讀和從右邊讀的結果是一模一樣的,比如12321。本文通過三個方法詳細介紹了判斷的方法,下面來一起看看吧

方法一:逐位判斷

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

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

問題:

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

優(yōu)點: 思路簡單

解決:

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

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

先將判斷的x賦值給y,當x不為0時,表明現(xiàn)在x還有位數(shù),位數(shù)+1,x/10減少一位,但要記住,用地板除(//)直接得到int整數(shù),否則用/會出現(xià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)

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

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

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

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

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

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

x=int(input("請輸入一個整數(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ù)判斷

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

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

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

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

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

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

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

優(yōu)點: 代碼簡單

實現(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ù)。")

最后判斷負數(shù)和末位是0但不是0的數(shù),他們一定不是回文數(shù),因為開頭不能是0

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

最終程序:

x=int(input("請輸入一個整數(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ù)。")

方法三:字符串處理

原理: 字符串其實是序列,我們只要將字符串倒過來判斷是否和原字符串相等就可以了

反轉可以用x[::-1]

實現(xiàn)代碼如下

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

要是你說還能不能更高級一點,還可以用條件表達式這樣寫

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

但是如果他給你一個09890也會報錯,具體解決可以先轉化為int,再轉化為str

最終成品:

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

總結

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

相關文章

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

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

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

    詳解python tkinter教程-事件綁定

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

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

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

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

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

    python實現(xiàn)的守護進程(Daemon)用法實例

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

    Tensorflow 1.0之后模型文件、權重數(shù)值的讀取方式

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

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

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

    python基礎之文件操作

    這篇文章主要介紹了python基礎之文件操作,文中有非常詳細的代碼示例,對正在學習python的小伙伴們有一定的幫助,需要的朋友可以參考下
    2021-04-04
  • python網絡編程之數(shù)據傳輸UDP實例分析

    python網絡編程之數(shù)據傳輸UDP實例分析

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

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

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

最新評論

丁青县| 涿州市| 六枝特区| 高州市| 铜梁县| 于都县| 绍兴县| 和硕县| 会昌县| 武清区| 遂川县| 赫章县| 于田县| 奈曼旗| 温泉县| 小金县| 太谷县| 沭阳县| 枣庄市| 岳阳县| 紫金县| 黄平县| 盐津县| 武胜县| 阳西县| 宜黄县| 乐清市| 曲沃县| 博客| 九台市| 金寨县| 东明县| 沐川县| 罗江县| 四会市| 忻州市| 醴陵市| 博罗县| 潍坊市| 黄龙县| 建始县|