题目:

输出<=n的全部回文数

高教社《Python编程基础及应用》

【描述】数字121从左往右读与从右往左读是一样的,这种数称为回文数。请使用for循环以及切片方法设计一个程序, 找出>=0并且<=n的全部回文数。
注意:单个的数字0,数字1,… 数字9也认为是回文数。
输入格式:
n
输出格式:
多行输出,一行一个数
输入样例:

13

输出样例:

0
1
2
3
4
5
6
7
8
9
11

代码:

n = int(input())
for i in range(n+1):
    b = str(i)
    if b == b[::-1]:
        print(b)

解析:

核心内容是要了解如何判断一个数是不是回文数

  • 正序和倒序都是一样的就叫回文数

实现的方式有很多这里只举一个栗子:

1:倒序输出
a=input('输入:')#输入字符串
b=a[::-1]#倒序输出
if a==b:#判断是否相等
    print('是回文数')
else:
    print('不是回文数')

知识点
范围切片:a[start: end: step]
变量名[开始下标:结束下标:步长]
例如:

a = 'Hello World!'
print(a[4])#取下标为4的元素
print(a[:]) # 取出所有元素,默认步长为1
print(a[1:]) # 从下标为1开始,取出 后面所有的元素(没有结束位)
print(a[:5]) # 从起始位置开始,取到 下标为5的前一个元素(不包括结束位本身)
print(a[:-1]) # 从起始位置开始,取到 倒数第一个元素(不包括结束位本身)
print(a[-4:-1]) # 从倒数第4个元素开始,取到 倒数第1个元素(不包括结束位本身)
print(a[1:5:2]) # 从下标为1开始,取到下标为5的前一个元素,步长为2(不包括结束位本身)
print(a[::-1]) '←---这题所使用的'# 从后向前,按步长为1进行取值
o
Hello World!
ello World!
Hello
Hello World
rld
el
!dlroW olleH
掌握以上后我们可以开始进行多位数的判断
n = int(input()) #输入一个数
for i in range(n+1): #让i从0-n赋值
    b = str(i)
    if b == b[::-1]:
        print(b)

知识点
range()是一个函数
range(start, stop[, step]),分别是起始、终止和步长

for i in range () 就是给i赋值:
比如 for i in range (1,3):就是把1,2依次赋值给i
range(3)即:从0到3,不包含3,即0,1,2

所以要实现0-N 就需要在range(N)变成range(N+1)

到这里就剩下一些字符类型的转换了就不多解释了。

END

更多推荐

python:输出<=n的全部回文数 (高教社,《Python编程基础及应用》习题4-5) (15分)