使用def在python中反转字符串

时间:2013-11-22 22:07:26

标签: python string function reverse

任何人都可以帮我完成任务 - 我必须使用def来反转一个字符串。我不允许使用像[:: - 1]或.reversed这样的方法...... 以下功能有效,但垂直打印:

def ex1(name):    
    for x in range(len(name)-1,-1,-1):
        print(name[x])

k
r
o
Y

w
e
N

如何将字母重新放入水平顺序?任何人?谢谢!

5 个答案:

答案 0 :(得分:2)

您可以使用str.joinlist comprehension,如下所示:

>>> def ex1(name):
...     return "".join([name[x] for x in range(len(name)-1,-1,-1)])
...
>>> print(ex1('abcd'))
dcba
>>>

另外,请注意我使函数返回字符串而不是打印它。如果您的老师希望您使用def来完成这项工作,那么他们也可能也想要这样做。如果没有,那么您可以随时将return替换为print

答案 1 :(得分:0)

你非常接近:

def ex1(name):
    reverseName=""
    for x in range(len(name)-1,-1,-1):
        reverseName+=name[x]
    print reverseName

print语句在每行之后打印换行符(换行符),这就是为什么你的角色是垂直的。解决方案不是在每个循环中打印字符,而是在字符串中收集它们并在结束时立即打印最终字符串。

请注意,有更有效的方法可以做到这一点(参见其他答案),但它可能是最直接的方式,也是最接近你已经完成的方式。

答案 2 :(得分:0)

这是另一种可以反转字符串的方法。

def ex1(name):
    length = len(name)
    return "".join([name[length-x-1] for x in range(0, length)])

print ex1("hello world")

答案 3 :(得分:0)

name=input("Whats your name ?")

def reversemyname(name):
    x=name[::-1]
    return x
reversedname=reversemyname(name)
print(reversedname)

答案 4 :(得分:-1)

print(name[x]), # <= add that comma

如果你想要这样的输出kroy wen,那么试试这个:

sys.stdout.write(name[x])

请记得import sys