如何在 Python 中反转字符串(5 种方法)

字符串是字符的有序列表或序列。字符串是 Python 自带的数据结构之一。在 Python 中处理字符串时,您可能希望反转所有字符。一个很好的例子是构建一个回文游戏。

反转的字符串的第一个字符是最后一个字符,依此类推。但是,Python 没有内置的反转字符串函数,但有一些方法可供您使用。

在本教程中,您将学习在 Python 中反转字符串的各种方法。

方法 1:使用 For 循环在 Python 中反转字符串

反转字符串的第一种方法是使用 for 循环,如下面的代码片段所示

Python 代码

# function for reversing a string
def reverse_string(string):
    # an empty string for storing reversed string
    reversed_string = ""
    # looping through the string
    for char in string:
        # reversing the string
        reversed_string = char + reversed_string
    # returning a reversed string
    return reversed_string

# the string to reverse
string = "Guru99"
# printing a message
print(f"String Reversal using a for loop")
# printing the original string
print(f"Original String: {string}")
# making a functional call inside a print function using an f-string
print(f"Reversed String: {reverse_string(string)}")

输出

String Reversal using a for loop
Original String: Guru99
Reversed String: 99uruG

代码解释

  • 在此代码片段中,我们可以使用 reverse_string() 函数来反转字符串,并将给定的 string 作为参数。
  • 在其中,我们可以创建一个空字符串来存储反转后的字符串,然后我们遍历该字符串。
  • 字符被反转并赋给 reversed_string 变量。
  • 最后,函数中的最后一行返回反转后的字符串。
  • 为了显示输出,我们在 f 字符串的帮助下,在 print() 函数内进行函数调用。

方法 2:使用 While 循环在 Python 中反转字符串

使用 Python 中的 while 循环 也是反转字符串的另一种方法。让我们了解下面的代码片段

Python 代码

# declaring a string to reverse
string = "Python"
# initializing an empty string to store the reversed string
reversed_string = ""
# printing a message
print(f"String Reversal using a while loop")
# printing the original string
print(f"Original String: {string}")
# find length of a string and store in count variable
count = len(string)
# a while loop for looping through the string characters
while count > 0:
    # save the value of str[count-1] in reversed_string
    reversed_string += string[count - 1]
    # decrementing index
    count = count - 1
print(f"Reversed String: {reversed_string}")

输出

String Reversal using a while loop
Original String: Python
Reversed String: nohtyP

代码解释

  • 在此 Python 代码中,我们声明了一个要反转的字符串,然后声明了一个空字符串来存储反转后的字符串。
  • 然后我们查找分配给 count 变量的字符串长度。
  • 在每次迭代中,string[count – 1] 会从后到前检索字符串字符。
  • 并将它们连接到 reversed_string,然后递减 count 值。
  • 最后,我们打印反转后的字符串。

方法 3:使用切片运算符在 Python 中反转字符串

反转字符串的另一种方法是使用切片运算符,要理解它,请看下面的代码

Python 代码

# function to reverse a string
def reverse(string):
    # the  slice syntax
    reversed_string = string[::-1]
    return reversed_string

# declaring a string to reverse
string = "Let's guru99"
# printing a message
print(f"String Reversal using Slicer Operator")
# printing the original string
print(f"Original String: {string}")
# making a functional call inside a print function using an f-string
print(f"Reversed String: {reverse(string)}")

输出

String Reversal using Slicer Operator
Original String: Let's guru99
Reversed String: 99urug s'teL

代码解释

  • 创建一个 reverse() 函数,它接受一个 string 作为参数,并在其内部
  • 在此示例中,我们有一个用于反转 stringstring[::-1] 切片运算符
  • 然后将反转后的字符串赋给一个名为 reversed_string 的新变量
  • 最后,返回新的反转字符串

方法 4:使用 reversed() 函数在 Python 中反转字符串

我们还可以使用 reversed() Python 函数来反转字符串,代码如下

Python 代码示例

# function to reverse a string
def reverse(string):
    # reversed() function inside the join() function
    string = "".join(reversed(string))
    # returning the reversed string
    return string

# declaring a string to reverse
string = "guru99"
# printing a message
print(f"String Reversal using reversed() function")
# printing the original string
print(f"Original String: {string}")
# making a functional call inside a print function using an f-string
print(f"Reversed String: {reverse(string)}")

输出

String Reversal using reversed() function
Original String: guru99
Reversed String: 99urug

代码解释

  • 在此代码中,我们有一个 reversed() 函数,其参数为 string
  • 在其中,我们初始化了一个空字符串。
  • 我们使用 join() 函数将其与 reversed(string) 的输出连接起来。
  • reversed() 函数的外部,我们声明了一个要反转的字符串,然后我们打印原始字符串和反转后的字符串。

方法 5:使用递归在 Python 中反转字符串

递归是指一个定义的函数调用它自身。当一个递归函数调用自身时,它就被称为递归。为了更好地理解,请看下面的代码示例

Python 代码

# a function to reverse a string
def reverse(string):
    # Checking the length of string
    if len(string) == 0:
        return string
    # reversing string if len(string) != 0
    else:
        # recursively calling the reverse() function
        return reverse(string[1:]) + string[0]

# declaring a string to reverse
string = "I love guru99"
# printing a message
print(f"String Reversal using Recursion")
# printing the original string
print(f"Original String: {string}")
# making a functional call inside a print function using an f-string
print(f"Reversed String: {reverse(string)}")

输出

String Reversal using Recursion
Original String: I love guru99
Reversed String: 99urug evol I

代码解释

  • 在上面的代码中,我们声明了一个 reverse() 函数,它接受一个 string 作为参数,该函数的主体是一个 if else 语句。
  • if 语句检查字符串长度是否等于 0 并返回字符串,而 else 语句递归调用 reverse() 函数,对字符串的最后一个索引进行切片,并将其添加到开头。

结论

  • 这个 Python 教程 介绍了如何在 Python 中使用各种方法反转字符串。
  • 我们可以使用 reverse_string() 函数来反转字符串,并将给定的字符串作为参数。
  • 您还可以使用“for 和 while 循环”来反转字符串。
  • 您可以使用 reversed 函数,它接受一个字符串作为参数。
  • 选择这些方法时,您应考虑它们的性能作为因素之一。