# 第43期-回文数

Python是一门需要不断实践练习的编程语言,本文档将AI大学堂学员交流群的Python每周练习进行汇总,希望各位小伙伴能够多进行实践练习,逐渐爱上这门神奇的编程语言,掌握它并在生活中能够使用它。

# 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
2
3
4
5
6
7
8
9
10
11
12
13

第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函数值

代码运行结果为:
image.jpg

# 方法二

x = input('请输入任意位数的数字:')
if x == x[::-1]:
    print('%s是个回文数' % x)
else:
    print('%s不是回文数' % x)

1
2
3
4
5
6

第1行: 输入数字x(这时候是字符串类型)
第2行: 判断字符串与翻转后的字符串是否相等
第3行: 若相等则输出其是回文数
第4-5行: 若不相等则输出其不是回文数

代码运行结果为:
image.jpg

这里用到了一些字符串以及列表的操作方法:


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],也就是从最后一个元素到第一个元素复制一遍。

# 4 视频解析

高清视频讲解,请查看AI大学堂Python基础实战100例 (opens new window)
关注『讯飞AI大学堂』公众号,发送 python100 即可领取Python基础实战100例源代码
AI大学堂公众号.png

更新于: 12/28/2021, 7:43:14 AM