Python【习题】回文数:判断一个数是否是回文数
2018-04-26 本文已影响1887人
彼岸的渔夫
人生苦短,我用Python
环境:
Windows 10 64-bit, python == 3.6.4 , PyCharm CE == 2018.1
什么是回文数:
有这样一类数,他们顺着看和倒着看是相同的数,例如:12321,1221,2332等,这样的数字就称为:回文数
题目:输入一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
- 找出5位数中所有的回文数:
方法1.使用for 循环
# 找出5位数中所有的回文数:
for i in range(10000,100000): # 遍历所有的5位数
s = str(i) # 将数转换成字符串类型,即可以用索引取出每一位上的数字
if s[0] == s[-1] and s[1] == s[-2]: # 字符串的索引
print(i)
方法2. 定义函数:
def is_huiwen(n):
reversed_str= str(n)
return reversed_str == reversed_str[-1::-1] #
output = filter(is_huiwen,range(10000,100000))
print(list(output))
- 用户自己输入一个5位数,判断是否是回文数:
# 输入一个5位数,判断它是否是回文数:
a = int(input(" 请输入一个5位整数:"))
s = str(a)
if s[0] == s[-1] and s[1] == s[-2]:
print(" %d 是一个回文数!" % a)
else:
print(" %d 不是一个回文数!" % a)
- 判断任意一个整数是否是回文数:
n = int(input('请输入一个整数:'))
s = str(n)
f = True
for i in range(len(s)//2):
if s[i] != s[-1-i]:
f = False
break
if f:
print('%d 是一个回文数' % n)
else:
print('%d 不是一个回文数' % n)