如何在PYTHON里处理解决整数反转问题
1、打开JUPYTER NOTEBOOK,新建一个空白的PY文档。

2、x = 123
for i in range(len(x)):
print(x[::-1])
首先我们要知道整型是不能遍历的,因为没有长度。

3、x_str = str(x)
print(x_str)
type(x_str)
for i in range(len(x_str)):
print(x_str[::-1])
但是如果转成字符串类型,那么就是可以遍历的了。

4、x_str[::-1]
int(x_str[::-1])
x = -123
if x < 0:
x_str = str(x)[::-1]
print(x_str)
如果遇到负数的话,这种倒置的方法这样是不可行的,因为有个负号。

5、x = 130
if x % 2 == 0:
x_list = list(str(x))[::-1]
for i in x_list:
if i == "0":
x_list.remove("0")
print(int("".join(x_list)))
elif x < 0:
x_str = str(x)[-1:0:-1]
print(x_str)
elif x > 0:
x_str = str(x)[::-1]
我们可以尝试遇到0就把0给去掉,这样如果遇到后面很多0的也不怕。

6、x = 130
if x < 0:
x *= -1
if x % 2 == 0:
x_list = list(str(x))[::-1]
for i in x_list:
if i == "0":
x_list.remove("0")
print(int("".join(x_list))*(-1))
elif x > 0:
print(int(str(x)[::-1]))
else:
print(0)
我们可以设置负号为一个变量。

7、x = -130
n = -1
while x % 10 == 0:
x //= 10
if x < 0:
x *= n
x_str = str(x)[::-1]
x = int(x_str) * n
print(x)
elif x >= 0:
x_str = str(x)[::-1]
x = int(x_str)
print(x)
另外的方法是while循环可以不断减去后面的零。

8、x = -130
if x < 0:
x = -1 * int(str(-x)[::-1])
print(x)
elif x >= 0:
x = int(str(x)[::-1])
print(x)
if x > 2147483647 or x < -2147483647:
print(x)
但是因为字符串变成整型的时候前面的零会自动去掉,所以没必要用WHILE。

9、x = -130
if x < 0:
x = -1 * int(str(-x)[::-1])
else:
x = int(str(x)[::-1])
if x > 2147483647 or x < -2147483647:
x = 0
print(x)
优化一下,这样写就是最简单的。
