您的位置:

Python 中如何反转字符串?

Python 字符串是 Unicode 字符的集合。Python 有很多字符串操作的函数,但是 Python 字符串库不支持内置的“reverse()”函数。但是有各种方法来反转弦。我们正在定义以下方法来反转 Python 字符串。

  • 用于循环
  • 边循环边使用
  • 使用切片操作符
  • 使用反转()功能
  • 使用递归

用于循环

这里,我们将使用 for循环反转给定的字符串。


def reverse_string(str):
    str1 = ""   # Declaring empty string to store the reversed string
    for i in str:
        str1 = i + str1
    return str1    # It will return the reverse string to the caller function

str = "JavaTpoint"    # Given String     
print("The original string is: ",str)
print("The reverse string is",reverse_string(str)) # Function call

输出:

('The original string is: ', 'JavaTpoint')
('The reverse string is', 'tniopTavaJ')

解释-

在上面的代码中,我们已经声明了 reverse_string() 函数并传递了 str 参数。在函数体中,我们已经声明了空字符串变量 str1 ,它将保存反转的字符串。

接下来,for循环迭代给定字符串的每个元素,在开头连接每个字符并存储在 str1 变量中。

完成迭代后,它将逆序字符串 str1 返回给调用者函数。它将结果打印到屏幕上。

使用 While循环

我们也可以使用 While循环来反转字符串。让我们理解下面的例子。

示例-


# Reverse string
# Using a while loop

str = "JavaTpoint" #  string variable
print ("The original string  is : ",str) 
reverse_String = ""  # Empty String
count = len(str) # Find length of a string and save in count variable
while count > 0: 
    reverse_String += str[ count - 1 ] # save the value of str[count-1] in reverseString
    count = count - 1 # decrement index
print ("The reversed string using a while loop is : ",reverse_String)# reversed string

输出:

('The original string  is : ', 'JavaTpoint')
('The reversed string using a while loop is : ', 'tniopTavaJ')

说明:

在上面的代码中,我们已经声明了一个保存字符串值的字符串变量。我们用字符串值初始化了一个 While循环。

在每次迭代中,串【计数-1】的值连接到反向 _ 串并递减计数值。一会儿完成了它的迭代并返回了逆序字符串。

使用 slice ([])运算符

我们也可以使用扩展切片操作符反转给定的字符串。让我们理解下面的例子。

示例-


#  Reverse a string  
# using  slice syntax 
# reverse(str) Function to reverse a string 
def reverse(str): 
    str = str[::-1] 
    return str 

s = "JavaTpoint"
print ("The original string  is : ",s) 
print ("The reversed string using extended slice operator  is : ",reverse(s))

输出:

('The original string  is : ', 'JavaTpoint')
('The reversed string(using extended slice syntax) is : ', 'tniopTavaJ')

说明:

通常,切片操作符接受三个参数-开始、停止和步进。我们为开始和结束索引提供了 no 值,这表示默认情况下开始索引为 0,结束索引为 n-1。步长为-1;这意味着字符串从末尾继续遍历,并到达 1 索引位置。

结合使用反函数

Python 提供了 reversed() 功能来反转字符串。让我们理解下面的例子。

示例-


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

s = "JavaTpoint"

print ("The original string is : ",s) 
print ("The reversed string using reversed() is : ",reverse(s) )

输出:

('The original string is : ', 'JavaTpoint')
('The reversed string using reversed() is : ', 'tniopTavaJ')

说明:

在函数体中,我们声明了由。点运算符。 reversed() 字符串返回它与使用 join() 函数分隔的空字符串连接的反向字符串。

使用递归()

也可以使用递归来反转字符串。递归是函数调用自身的过程。考虑下面的例子。

示例-


# reverse a string  
# using recursion 

def reverse(str): 
    if len(str) == 0: # Checking the lenght of string
        return str 
    else: 
        return reverse(str[1:]) + str[0] 

str = "Devansh Sharma" 
print ("The original string  is : ", str)   
print ("The reversed string(using recursion) is : ", reverse(str))

输出:

('The original string is : ', 'JavaTpoint')
('The reversed string(using reversed) is : ', 'tniopTavaJ')

说明:

在上面的代码中,我们定义了一个接受字符串作为参数的函数。

在函数体中,我们定义了递归的基本条件,如果一个字符串的长度为 0,则返回该字符串,如果不是,则递归调用该函数。

切片操作符对字符串进行切片,需要第一个字符并连接到切片字符串的末尾。