📜  如何在Python反转字符串

📅  最后修改于: 2020-10-28 01:41:56             🧑  作者: Mango

如何在Python反转字符串?

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

  • 使用for循环
  • 使用while循环
  • 使用切片运算符
  • 使用reversed()函数
  • 使用递归

使用for循环

在这里,我们将使用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')

说明:

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

在每次迭代中,str [count-1]的值连接到reverse_String并递减计数值。一会儿完成了迭代并返回了相反顺序的字符串。

使用slice([])运算符

我们还可以使用扩展的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。这意味着字符串从末尾继续遍历并到达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')

说明:

在函数主体中,我们声明了由.dot运算符分隔的空字符串。 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,则返回该字符串,否则返回递归调用该函数。

slice运算符将字符串分割为第一个字符,并连接到slice字符串的末尾。