一、简单版(只实现这两个需求)
num=input('你好呀,请输入一个不多于五位的正整数>>>')
print('嗯,我看过了,这是一个'+str(len(num))+'位数。')
#len函数可以查看字符串的长度,也就是能得出这是一个几位数,用str转换成字符串之后才能跟前后文字拼接
print('我把它倒过来给你看看:',''.join(list(reversed(num))))
#reversed函数把原数字反转过来,返回的结果是迭代器
#用list函数把迭代器变成列表
#用join方法连接list里的所有元素,得到列表,用于连接的字符是什么也没有,所以就会无缝拼接
但是有一些数字翻转过来跟原来是一样的,比如8,88,858,8558,85658,所以下面的升级版会把这些无聊的翻转考虑进去,让程序更智能一点,更,em,可爱一点……
二、升级版
num=input('你好呀!请输入一个不多于五位的正整数:')
print('嗯,我看过了。它是一个'+str(len(num))+'位数。')
if (len(num)==1) or (len(num)<=3 and num[0]==num[-1]) or (num[0]==num[-1] and num[1]==num[-2]):
#这里提出了三种懒得反转的情况,分别是只有一位数,比如8
#两位或者三位数,第一个数字和最后一个数字相同,比如88,858
#四位或者五位数,第一个数字和最后一个数字相同,第二个数字和倒数第二个数字相同,比如8558,85658
print('我本来想把它倒过来给你看看,但是它倒着写不好玩儿,算了吧~')
else:
print('我把它倒过来了,现在它变成了',''.join(list(reversed(num))))
三、自己造轮子(关注算法的请看)
num=input('请输入一个不超过5位的正整数>>>')
num=int(num)
#变量res用于存储逆转之后的数字
res=0
#变量count用于存储数字位数
count=0
#下面是这个算法的核心
while num !=0:
#用取余数的方式取出当前的个位数字,
# 把结果中原来已有的部分乘以10,加上刚取出来的个位数字。
#这就相当于把原来的部分往前挪了一下,给新来的个位数腾出来一个地方
res=res*10+num%10
#用除以10并向下取整的方式把已经处理过的数位去掉
num//=10
#每处理一次,就给计数器count加1,用这样的方式计算num是几位数
count+=1
print(f'这是一个{count}位数,它的逆序数字是{res:0>{count}}')
为了帮助大家更好地理解上述算法的核心,请看下面的图解: