1.题目详情
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。
2.解题思路
1. python中如何实现反转?
2. 正数和负数有什么区别?
3. 如何避免0098这种最高位数为零情况出现?
3.代码实现
import math
number=(input())
if number.isdigit() and int(number)>=0: #isdigit() 方法检测字符串是否只由数字组成。
number_new=number[::-1] #反转
number_result=int(number_new.lstrip("0")) #lstrip() 方法用于截掉字符串左边的空格或指定字符,即截掉0
else:
# 负数的情况,首先转为正数:
# 把负号去掉
# number=number[1:]
# print("fushu:",number)
# number_new=-int(number[::-1])#这种写法也可以
number_result =-int((number[1:][::-1]).lstrip("0"))
print(number_result)
4.知识点
- 反转有两种方式:
使用python中列表里的reverse()方法,实现反转,注意是列表;
python中列表,字符串,元组都可以用[::-1]实现反转 - n.isdigit()判断是否是数字
- n.istrip()可截取掉字符串左边的想要截取的东西
- 从列表的[1:]开始就可以去掉不好处理的负号了