函数习题

 第一题
 names=["alex","egon","faker","mata"]
需求;在每个姓名后面加上DSB
方法一:传统方法
 l1=[]
 for name in names:
     res=name+'DSB'
     l1.append(res)
print(l1)
方法二:列表推导式
names=["alex","egon","faker","mata"]
res=[name+'DSB'for name in names]
print(res)
"""
"""
                                             第二题
需求:['alexDSB', 'egon', 'faker', 'mataDSB']将带有DSB的取出来列成一个列表
传统方法
 names=['alexDSB', 'egon', 'faker', 'mataDSB']
l1=[]
for name in names:
     if name.endswith('DSB'):
         l1.append(name)
print(l1)
列表推导式方法
names=['alexDSB', 'egon', 'faker', 'mataDSB']
res=[name for name in names if name.endswith('DSB')]
print(res)

                                            第三题
需求:将keys=["name","age","sex"],vals=["egon",18,"male"]
转换成{'name': 'egon', 'age': 18, 'sex': 'male'}
传统方法
keys=["name","age","sex"]
vals=["egon",18,"male"]
dic={}
for v,k in enumerate(keys):
     dic[k]=vals[v]
print(dic)
字典推导式方法
keys=["name","age","sex"]
vals=["egon",18,"male"]
res={k:vals[v] for v,k in enumerate(keys)}
print(res)


                                                第四题
需求:取出工资最高的人名
salaries={
    "egon":30000,
    "mata":20000,
    "faker":10000,
    "defe":50000
}
res=max(salaries,key=lambda k:salaries[k])
print(res)
"""
"""
                                                 第五题
salaries={
    "egon":30000,
    "mata":20000,
    "faker":10000,
    "defe":50000
}
#需求1:按照工资把工资排序
salaries.values()
for v in salaries.values():
    res=sorted(salaries.values())
 print(res)
需求2,按照人名把工资排序
res=sorted(salaries,key=lambda k:salaries[k])
print(res)

                                               第六题
names=['egon','faker','mata','alex']
需求:在每个名字后面加上DSB
方法一
 res=[name+'DSB' for name in names]
 print(res)
方法二
res=map(lambda name:name+'DSB', names)
"""
"""
                                             第七题
       
names=['egonDSB', 'faker', 'mataDSB', 'alex']
需求:将带有DSB的人名过滤出来
res=filter(lambda name:name.endswith('DSB'),names)
print(list(res))
"""
"""
                                              第八题
需求:求4个数字的最大值
def max2(n1,n2):
     if n1>n2:
         return n1
     return n2
def max3(n1,n2,n3):
     m2=max2(n1,n2)
     return max2(m2,n3)
def max4(n1,n2,n3,n4):
     m3=max2(n1,n2)
     return max3(m3,n3,n4)
 res=max4(1,2,3,4)
 print(res)
"""
"""
                                            第九题
需求: 写出一个计时器记录方法执行性能的装饰器.
import time
def outter(fn):
    def inner(*args,**kwargs):
        stat_time=time.time()
        res=fn(*args,**kwargs)
        stop_time=time.time()
        print(stop_time-stat_time)
        return res
    return inner
"""
"""
                                           第十题
#问第一个人年龄,回溯条件 小两岁,第五个人说出自己的58岁年龄,推导出第一个人年龄
#条件:下一个人的年龄比这个人年纪大两岁.
def get_age(num):
    if num==1:
        return 58
    age=get_age(num-1)-2
    return age
print(get_age(5))
"""
"""
                                            第十一题
阶乘
5! = 5 * 4!    4! = 4 * 3!   ...   2! = 2 * 1
def factorial(num):
    if num == 1:
        return 1
    temp = num * factorial(num - 1)
    return temp
res = factorial(5)
print(res)
 
  第一题:写出完整的装饰器(不用考虑带参装饰器,就是普通装饰器)语法
def outter(fn):
    def inner(*args,**kwargs):
        res=fn(*args,**kwargs)
        print("新增功能")
        return res
    return inner
@outter
def fn(*args,**kwargs):
    print("你好")
fn()
"""
"""
 第二题
2.有一个计算两个数和的方法,为其添加一个确保两个参数都是int或float
类型的装饰器,保证运算不会抛异常。
def check_num(func):
    def indder(n1,n2):
        b1=isinstance(n1,int) or isinstance(n1,float)
        b2=isinstance(n2,int) or isinstance(n2,float)
        if not (b1 and b2):
            print("不能求和")
            return
        return func(n1,n2)
    return indder
@check_num
def add(n1,n2):
    return n1+n2
print(add(3,4))
"""
"""
 第三题
3.有一个一次性录入人名并返回人名的方法(人名只考虑存英文),为其添加
一个装饰器,使得处理后人名首字母一定大写
def outter(func):
    def inner():
        res=func()
        return res.title()
    return inner
@outter
def get_name():
    name=input('name: ')
    return name
print(get_name())
"""
 
 
需求:用函数修改文件
def check_file(filename,old,new):
    import os
    with open(filename,'r',encoding='utf-8') as read_f:
            with open('.filename','w',encoding='utf-8') as write_f:
                for line in read_f:
                    if old in line:
                        write_f.write(line.replace(old,new))
                    else:
                        write_f.write(line)
            os.remove(filename)
            os.rename('.filename',filename)
check_file('001.txt','鱼','胡')
 
 
 
 
 
 

转载于:https://www.cnblogs.com/jingandyuer/p/10674668.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值