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!

推薦閱讀: