Python 写一个返回倒数的函数
我正在尝试编写一个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
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