成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

如何利用Python判斷整數(shù)是否是回文數(shù)

這篇文章主要介紹“如何利用Python判斷整數(shù)是否是回文數(shù)”,在日常操作中,相信很多人在如何利用Python判斷整數(shù)是否是回文數(shù)問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何利用Python判斷整數(shù)是否是回文數(shù)”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

創(chuàng)新互聯(lián)公司長期為上千多家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為什邡企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站,什邡網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

方法一:逐位判斷

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

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

問題:

  • 如何判斷位數(shù)

  • 如何逐位取值

優(yōu)點(diǎ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ù),否則用/會出現(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ù)舍去,比如一個五位數(shù),地板除10000(10的4次方,所以是位數(shù)-1),就會得到首位,末尾比較簡單,只要對10取模得到余數(shù)就是各位,a是首位,b是末位。

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

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

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

最后判斷負(fù)數(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ù)與另一個相等即可,因?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): 代碼簡單

實(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

個位數(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ù)。")

方法三:字符串處理

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

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

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

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

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

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

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

最終成品:

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

到此,關(guān)于“如何利用Python判斷整數(shù)是否是回文數(shù)”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

分享名稱:如何利用Python判斷整數(shù)是否是回文數(shù)
鏈接地址:http://jinyejixie.com/article36/pgigsg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、微信公眾號Google、虛擬主機(jī)營銷型網(wǎng)站建設(shè)、電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
宁都县| 湖口县| 营口市| 日照市| 武山县| 含山县| 响水县| 葵青区| 阳山县| 寿阳县| 新龙县| 宁国市| 托里县| 丹江口市| 凤台县| 双城市| 贺州市| 长丰县| 合江县| 化德县| 宁波市| 绍兴县| 固始县| 花垣县| 巫溪县| 河源市| 仁寿县| 始兴县| 虞城县| 惠安县| 阜城县| 紫云| 呼和浩特市| 新郑市| 铅山县| 尤溪县| 江西省| 葵青区| 江门市| 女性| 平安县|