函数习题

it2022-05-08  11

第一题  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@outterdef 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_numdef add(n1,n2):    return n1+n2print(add(3,4))"""""" 第三题3.有一个一次性录入人名并返回人名的方法(人名只考虑存英文),为其添加一个装饰器,使得处理后人名首字母一定大写def outter(func):    def inner():        res=func()        return res.title()    return inner@outterdef get_name():    name=input('name: ')    return nameprint(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

相关资源:excel函数练习题500例

最新回复(0)