使用def在python中反转字符串

问题描述 投票:0回答:5

任何人都可以帮我完成任务 - 我必须使用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

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

python string function reverse
5个回答
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


0
投票

你非常接近:

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

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

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


0
投票

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

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

print ex1("hello world")

0
投票
name=input("Whats your name ?")

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

-1
投票
print(name[x]), # <= add that comma

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

sys.stdout.write(name[x])

记住import sys

© www.soinside.com 2019 - 2024. All rights reserved.