1.请至少用一种方法下面字符串的反转?
# 1.请至少用一种方法下面字符串的反转?
s = 'hello'
print()
print('-a1-切片,简单的步长为-1, 即字符串的翻转(常用)-')
#方法一:切片,简单的步长为-1, 即字符串的翻转(常用);
a1=s[::-1]
print(a1)print()
print('-a2-reverse()函数-')
#方法二:reverse()函数
li=list(s)
li.reverse()
a2=''.join(li)
print(a2)print()
print('-a3-递归函数, 递归的方式, 每次输出一个字-')
#方法三:递归函数, 递归的方式, 每次输出一个字
def digui(s1):if s1 == "":return s1else:return digui(s1[1:]) + s1[0]a3=digui(s)
print(a3)print()
print('-a4-reduce函数-')
#方法四:reduce函数
from functools import reduce
def rev(s):return reduce(lambda x, y : y + x, s)
a4=rev(s)
print(a4)print()
print('-a5-空字符串添加反转-')
#方法五:
a5=''.join(reversed(s))
print(a5)print()
print('-a6-for循环-')
#方法六:for循环
a6 = ''
for i in range(len(s) - 1, -1, -1):a6 += s[i]
print(a6)print()
print('-a7-交换前后字母的位置-')
#方法七:交换前后字母的位置;
t = list(s)
l = len(t)
for i,j in zip(range(l-1, 0, -1), range(l//2)):t[i], t[j] = t[j], t[i]a7="".join(t)
print(a7)print()
print('--a8-双端队列, 使用extendleft()函数-')
#方法八:双端队列, 使用extendleft()函数;
from collections import deque
def next(s1):d = deque()d.extendleft(s1)return ''.join(d)
a8=next(s)
print(a8)
2.请手写一个lambda函数
# lambda 传入参数 : 返回值
# lambda num1,num2 : num1+num2b=lambda x:x*2
print(b(3))
3.请手写一个函数,用来取出1—100(均包含)中9的倍数或者有数字9的所有整数
# 3.请手写一个函数,用来取出1—100(均包含)中9的倍数或者有数字9的所有整数
li = []
def numli(num):for i in range(1, num + 1):if i % 9 == 0 or str(i).find('9') != -1:li.append(i)return lic=numli(100)
print(c)