#  方法一 :使用切片

'''

# s = 'asdfasdf'
# s[::-1] 反向切片技术
然后定义为一个函数
def f(x):
return x[::-1]

a = [1,2,3,4,5,6,7,8,9,0]

print(f(a))
print(f('nihaoya'))
print(f('helloworld'))
'''

解读:切片技术中,方括号内有一个冒号 “:” 冒号左右两边的数字则分别是列表
左右位置的索引,不管是一个数字还是两个数字还是没有数字,
有数字则
a[2:] 返回 [3, 4, 5, 6, 7, 8, 9, 0]
a[:-1] 返回   [1, 2, 3, 4, 5, 6, 7, 8, 9]
没有数字的情况
a[:] 返回   [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]

有两个冒号的情况下,有所不同,右边的数表示间隔。
当左边的数字为正值,则右边的数字表示间隔,间隔距离为右边数字的
绝对值。当右边的数字为正值,则顺向间隔列出列表,如下
a[2::2]  [3, 5, 7, 9]
当为正值且右边没有数字(表示间隔为零),则表示从左边标记的索引位置
列出所有的元素,如
 a[2::]  [3, 4, 5, 6, 7, 8, 9, 0]
当右边的数字为负数,则表示反向间隔列出列表
 a[6::-2]  [7, 5, 3, 1]

当左边数字为负数,那么右边的数仍是表示间隔。

#方法二 reduce()函数

'''
from functools import reduce
#reduce(lambda x,y :y+x,'nihaooya')
#a = reduce(lambda x,y :y+x,'nihaooya')
#print(a)

#将reduce()函数定义为一个函数
def f(s):
return reduce(lambda x,y:y+x,s) #函数定义,定义数据操作的一种行为或者规则。
a ='nihaoya'
print(f(a))

'''

# 方法三 使用reverse() 函数

'''
def f(x):
l = list(x)
l.reverse()
return (''.join(l))
a = 'nihao'
print(f(a))

'''