我想在python中反转数字中的数字。这是我的两个实现。
一:将数字转换为字符串并反转其中的每个字符
number = 2376674032
number_s = str(number)
index = len(number_s) - 1
str_list = []
while index > -1:
str_list.append(number_s[index])
index -= 1
result = int("".join(str_list))
print(result)
二:使用简单的数学
number = 2376674032
N = 0
K = number
R = number % 10
while K > 0:
N = N*10 + R
K = K // 10
R = K % 10
result = N
print(result)
由于我对python编程很陌生,所以有人可以帮我解决以下问题:
"".join(str_list)
会为每个列表元素生成一个新字符串吗?如果是更好的方法来连接python中的字符串(类似于java中的StringBuffer
)答案 0 :(得分:1)
您可以使用-1反转字符串作为切片中的步骤。所以这有效:
number = 2376674032
number_s = str(number)
reverse_s = number_s[::-1]
reversed = int(reverse_s)
答案 1 :(得分:0)
答案 2 :(得分:0)
a = 1234
a = int("".join(reversed(str(a))))
这将得到= 4321
反向函数返回一个可迭代的对象。 如果我们这样做:
a = list(reversed(str(a)))
它将返回[“ 3”,“ 2”,“ 1”]。然后,我们将其加入并转换为int。
答案 3 :(得分:0)
要将数字设为integer
类型,我们必须使用int
函数,如下所示:
numbers=str(123456)
#or numbers="123456"
print((int(numbers[::-1])))
print((type(int(numbers[::-1]))))
输出:
654321
答案 4 :(得分:0)
我们也可以在一行中使用 [::-1]
print(int(str(int(input()))[::-1]))
答案 5 :(得分:-2)
您可以使用简单的递归操作
# count digits recursively
def reverse_digits(n):
# base case
if n == 0:
pass
#recursive case
else:
print(n%10,end='')
return reverse_digits(n//10)
# reverse 123
reverse_digits(123)