Python 写一个返回倒数的函数

Python 写一个返回倒数的函数,python,python-2.7,Python,Python 2.7,我正在尝试编写一个Python函数,该函数将一个数字作为input,并将其反向数字作为output返回。例如:1234返回4321 这是我尝试的,但它只返回' 有什么想法吗 def reverse(num): return str(num)[::-1] 或一行: lambda x: str(x)[::-1] 那么,简单的解决方案是: >>> int(str(1234)[::-1]) 4321 您的代码可以通过更改零件来修复 for i in L: x.jo

我正在尝试编写一个Python函数,该函数将一个数字作为
input
,并将其反向数字作为
output
返回。例如:1234返回4321

这是我尝试的,但它只返回
'

有什么想法吗

def reverse(num):
    return str(num)[::-1]
或一行:

lambda x: str(x)[::-1]

那么,简单的解决方案是:

>>> int(str(1234)[::-1])
4321
您的代码可以通过更改零件来修复

for i in L:
    x.join(i)
    return x

或者,只需将该部分替换为

return ''.join(L)
你的代码出了什么问题?由于缩进错误,在for循环的第一次迭代中返回。您从未为
x.join(i)
指定名称,因此返回值丢失。你期望加入什么我不知道

def reverse(num)
    return str(num)[::-1]

首先,有一种更简单的方法,可以转换为字符串,将字符串切片,然后将其转换回数字

def reverse(num):
    return int(str(num)[::-1])
其次,代码中存在多个错误:

1) 您的return语句在循环中,因此它将在第一次迭代后返回

2)
x
不会更改,因为
x.join()
会创建一个新字符串,并且不会修改字符串
x
(顺便说一下,该字符串是不可变的)

3) 无需将字符串转换为列表,因为您可以直接迭代字符串(
for i in x:…


4)
join()
将迭代器作为参数。不需要第二个循环:
返回“”。join(L)
其他用户已经给出了很好的答案。这里是另一个,供学习之用

num = 1234
print "".join(reversed(str(num)))
# 4321

您可以在以后转换为int。

谢谢大家的帮助

以下是我的解决方案:

         def reverse(n):
            reverse=0
            while(n>0):
                    dig=n%10
                    reverse=reverse*10
                    reverse=reverse+dig
                    n=n/10
            return reverse

阅读关于python的
pythonic-way
zen
(在解释器中键入
导入此
)@AlexeyAstahov这不是很有帮助。@timgeb写9行而不是一行不是很有帮助。Python不是C/C++或smth。Topicstarter必须学会如何思考更多的Python。我的答案很有帮助——“多想想蟒蛇”并不是对某个特定问题的有用答案。我没有看到你也发布了一个有用的答案——对此我很抱歉。
num = 1234
print "".join(reversed(str(num)))
# 4321
         def reverse(n):
            reverse=0
            while(n>0):
                    dig=n%10
                    reverse=reverse*10
                    reverse=reverse+dig
                    n=n/10
            return reverse