任何人都可以帮我完成任务 - 我必须使用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
如何将字母重新放入水平顺序?任何人?谢谢!
答案 0 :(得分:2)
您可以使用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
。
答案 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