需求:
從控制臺輸入一個五位數(shù),如果是回文數(shù)就打印“是回文數(shù)”,否則打印“不是回文數(shù)”,例如:11111 12321 12221
“回文”是指正讀反讀都能讀通的句子,它是古今中外都有的一種修辭方式和文字游戲,如“我為人人,人人為我”等。在數(shù)學中也有這樣一類數(shù)字有這樣的特征,成為回文數(shù)(palindrome number)。
設(shè)n是一任意自然數(shù)。若將n的各位數(shù)字反向排列所得自然數(shù)n1與n相等,則稱n為一回文數(shù)。例如,若n=1234321,則稱n為一回文數(shù);但若n=1234567,則n不是回文數(shù)。
回文數(shù)百度百科
分析:
輸入為純數(shù)字,長度為5
個位與萬位上的數(shù)字相同,十位與千位上的數(shù)字相同
方法一:算術(shù)運算
思想:通過整除,求模的算數(shù)運算得到各位上的數(shù)字,再通過比較前后對比(個位與萬位,十位與千位做對比),得出結(jié)論.
a = input('請輸入一個五位數(shù):')
# 判斷長度是否是5位,是否有純數(shù)字組成
if len(a) == 5 and a.isdigit():
# 將str轉(zhuǎn)為int
a = int(a)
# (萬位與各位) and (千位與十位)
if (a//10000 == a%10) and (a%10000//1000 == a%100 // 10):
print(f'{a}是回文數(shù)')
else:
print(f'{a}不是回文數(shù)')
else:
print('輸入有誤')
方法二:索引取值
思想:通過輸入的字符串進行索引取值,前后進行對比,得出結(jié)論.
a = input('請輸入一個五位數(shù):')
# 判斷長度是否是5位,是否有純數(shù)字組成
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是回文數(shù)' % (a))
else:
print('%f不是回文數(shù)' % (a))
else:
print('輸入有誤')
方法三:切片逆序
思想:input()函數(shù)輸入的數(shù)據(jù)的類型是str,str是有序的,所以可以對str切片操作,并取逆序的結(jié)果,將逆序的結(jié)果與原來的str做比較,得出結(jié)論.
a = input('請輸入一個五位數(shù):')
# 判斷長度是否是5位,是否有純數(shù)字組成
if len(a) == 5 and a.isdigit():
# 逆序切片的結(jié)果與a做比較
if a[::-1] == a:
print(f'{a}是回文數(shù)')
else:
print(f'{a}不是回文數(shù)')
else:
print('輸入有誤')
總結(jié):
熟悉各基本數(shù)據(jù)結(jié)構(gòu)的特點,可以幫助我們更好地解決問題.
到此這篇關(guān)于Python判斷回文數(shù)的三種方法的文章就介紹到這了,更多相關(guān)Python判斷回文數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- 對python判斷是否回文數(shù)的實例詳解
- Python實現(xiàn)判斷一個整數(shù)是否為回文數(shù)算法示例
- Python3實現(xiàn)的回文數(shù)判斷及羅馬數(shù)字轉(zhuǎn)整數(shù)算法示例