任何人都可以帮我完成任务 - 我必须使用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
如何将字母重新放入水平顺序?任何人?谢谢!
您可以像这样使用str.join
和list comprehension:
>>> def ex1(name):
... return "".join([name[x] for x in range(len(name)-1,-1,-1)])
...
>>> print(ex1('abcd'))
dcba
>>>
另外,请注意我使函数返回字符串而不是打印它。如果您的老师希望您使用def
来完成这项工作,那么他们也可能也想要这样做。如果没有,那么你可以随时用return
替换print
。
你非常接近:
def ex1(name):
reverseName=""
for x in range(len(name)-1,-1,-1):
reverseName+=name[x]
print reverseName
print
语句在每行之后打印换行符(换行符),这就是为什么你让你的角色处于垂直状态。解决方案不是在每个循环中打印字符,而是在字符串中收集它们并在结束时立即打印最终字符串。
请注意,有更有效的方法可以做到这一点(请参阅其他答案),但它可能是最直接的方式,也是最接近您已经完成的方式。
这是另一种可以反转字符串的方法。
def ex1(name):
length = len(name)
return "".join([name[length-x-1] for x in range(0, length)])
print ex1("hello world")
name=input("Whats your name ?")
def reversemyname(name):
x=name[::-1]
return x
reversedname=reversemyname(name)
print(reversedname)
print(name[x]), # <= add that comma
如果你想要像这样的kroy wen
输出那么试试这个:
sys.stdout.write(name[x])
记住import sys