第43期-回文数
1 问题描述
说到回文数,大家可能会比较的陌生,但是在我们的日常生活中常会遇到这样的数字,只是你不知道它是回文数罢了。
例如:12321,这组数字就是回文数。
设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数,这是大百度为我们的解释
输入一个数字,判断其是否是回文数
2 解题思路
- 第一步: 可以将两者转化为列表类型,通过列表的翻转来判断
- 第二步: 也可以直接使用字符串的翻转来判断
3 解题方法
方法一
def Type(num): if num > 0: num = str(num) list1 = list(num) list2 = list1[:] list2.reverse() if list1 == list2: return f'{num}是回文数' else: return f'{num}不是回文数' num = int(input("输入一个数:")) print(Type(num))
第1行: 定义函数Type,用于判断数字是否是回文数,其内自变量为num
第2行: 判断num是否大于0,大于0才可以是回文数
第3行: 将num转化为str字符串类型,用于变成列表
第4行: 使用list函数将字符串num变成列表,每个数字变成一个元素
第5行: 复制另一个列表list2,用于翻转原列表
第6行: 使用reverse函数翻转liat2列表
第7行: 判断翻转后的列表是否与原列表相等
第8行: 若相等,则返回函数值num是字符串
第9-10行: 若不相等则返回其不是字符串
第12-13行: 输入num的值并转化为int类型,并输出Type函数值
代码运行结果为:
方法二
x = input('请输入任意位数的数字:') if x == x[::-1]: print('%s是个回文数' % x) else: print('%s不是回文数' % x)
第1行: 输入数字x(这时候是字符串类型)
第2行: 判断字符串与翻转后的字符串是否相等
第3行: 若相等则输出其是回文数
第4-5行: 若不相等则输出其不是回文数
代码运行结果为:
这里用到了一些字符串以及列表的操作方法:
list()函数
list()函数是Python的内置函数。它可以将任何可迭代数据转换为列表类型,并返回转换后的列表。当参数为空时,list函数可以创建一个空列表。
语法:
list(object)
参数说明:
object:待转换为列表的数据类型(可省略的参数)
list2 = list1[:]
用于列表复制
直接使用list2 = list1的话,修改其中一个,会导致另一个也跟着变化
reserved()函数
reverse() 函数用于反向列表中元素。
语法:
list.reverse()
该方法没有返回值,但是会对列表的元素进行反向排序。
a[::-1]
a[::-1]相当于 a[-1:-len(a)-1:-1],也就是从最后一个元素到第一个元素复制一遍