python面试题总结(一)字符串反转,写取指定数函数

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 s1
    else:
        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+num2

b=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 li

c=numli(100)
print(c)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值