使用循环在Python中反转字符串?

Dan*_*äck 2 python string reverse loops function

我停留在一个练习中,我需要在一个函数中使用一个循环(for循环或while?)来反转一个随机字符串.

我不能在这里使用".join(reversed(string))string[::-1]方法,所以这有点棘手.

我的代码看起来像这样:

def reverse(text):
    while len(text) > 0:
        print text[(len(text)) - 1],
        del(text[(len(text)) - 1]
Run Code Online (Sandbox Code Playgroud)

我用它,来打印出同一行文本中的每一个字母!

我的语法无效 del(text[(len(text)) - 1]

有什么建议?

Psi*_*dom 6

Python字符串不可变,因此您无法使用该del语句来删除字符.但是,您可以在循环原始字符串时构建新字符串:

def reverse(text):
    rev_text = ""
    for char in text:
        rev_text = char + rev_text
    return rev_text

reverse("hello")
# 'olleh'
Run Code Online (Sandbox Code Playgroud)


Muk*_*ham 5

问题是你不能del在 python 中使用字符串。然而,这段代码无需 del 即可工作,并且有望达到目的:

def reverse(text):
    a = ""
    for i in range(1, len(text) + 1):
        a += text[len(text) - i]
    return a

print(reverse("Hello World!")) # prints: !dlroW olleH
Run Code Online (Sandbox Code Playgroud)