反转操作在实际中还没遇到有什么意义,权作练习
3种方法:
1、使用内置的reversed函数
注意python3中reversed函数返回的是一个迭代器。
def reversestr(astr):
bstr=’’
for i in reversed('abcde'):
bstr=bstr+i
return bstr
2、倒序处理
或不用内置函数,从字符串尾部开始处理,如
def reversestr(astr):
bstr=''
length=len(astr)
i=length-1
while i>=0:
bstr+=astr[i]
i-=1
return bstr
3、递归
利用栈的先进后出思想,依次入栈每个字符,再退栈,打印出每个字符。
def revstr(astr):
if astr=='' or not isinstance(astr,str):
return
if len(astr)==1:
return astr
return revstr(astr[1::])+astr[0]
代码将字符串从左到右的各个字符依次入栈,在栈结束的时候,依次回溯并连接。
测试用例
>>>revstr('abc123')
'321cba'
>>>revstr('a')
'a'
>>>revstr('')
>>>