Python判斷回文數的三種方法實例
需求:
從控制臺輸入一個五位數,如果是回文數就打印“是回文數”,否則打印“不是回文數”,例如:11111 12321 12221
“回文”是指正讀反讀都能讀通的句子,它是古今中外都有的一種修辭方式和文字遊戲,如“我為人人,人人為我”等。在數學中也有這樣一類數字有這樣的特征,成為回文數(palindrome number)。
設n是一任意自然數。若將n的各位數字反向排列所得自然數n1與n相等,則稱n為一回文數。例如,若n=1234321,則稱n為一回文數;但若n=1234567,則n不是回文數。
回文數百度百科
分析:
輸入為純數字,長度為5
個位與萬位上的數字相同,十位與千位上的數字相同
方法一:算術運算
思想:通過整除,求模的算數運算得到各位上的數字,再通過比較前後對比(個位與萬位,十位與千位做對比),得出結論.
a = input('請輸入一個五位數:') # 判斷長度是否是5位,是否有純數字組成 if len(a) == 5 and a.isdigit(): # 將str轉為int a = int(a) # (萬位與各位) and (千位與十位) if (a//10000 == a%10) and (a%10000//1000 == a%100 // 10): print(f'{a}是回文數') else: print(f'{a}不是回文數') else: print('輸入有誤')
方法二:索引取值
思想:通過輸入的字符串進行索引取值,前後進行對比,得出結論.
a = input('請輸入一個五位數:') # 判斷長度是否是5位,是否有純數字組成 if len(a) == 5 and a.isdigit(): # 對a[0]和a[4],a[1]和a[3],進行對比 if (a[0] == a[4]) and (a[1] == a[3]): print('%f是回文數' % (a)) else: print('%f不是回文數' % (a)) else: print('輸入有誤')
方法三:切片逆序
思想:input()函數輸入的數據的類型是str,str是有序的,所以可以對str切片操作,並取逆序的結果,將逆序的結果與原來的str做比較,得出結論.
a = input('請輸入一個五位數:') # 判斷長度是否是5位,是否有純數字組成 if len(a) == 5 and a.isdigit(): # 逆序切片的結果與a做比較 if a[::-1] == a: print(f'{a}是回文數') else: print(f'{a}不是回文數') else: print('輸入有誤')
總結:
熟悉各基本數據結構的特點,可以幫助我們更好地解決問題.
到此這篇關於Python判斷回文數的三種方法的文章就介紹到這瞭,更多相關Python判斷回文數內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 一文教你將Visual Studio Code變成Python開發神器
- Python實現求解最大公約數的五種方法總結
- python反轉一個三位整數的多種實現方案
- Python的數據類型與標識符和判斷語句詳解
- Python中異常處理用法