函数习题2

第一题
# 1.写出完整的装饰器(不用考虑带参装饰器,就是普通装饰器)语法
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())
4.需求:用函数修改文件
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','鱼','胡')
 
5.需求:写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
def check_list(list):
    if len(list)>2:
        list=list[0:2]
        return list
    else:
        return list
print(check_list([1]))
难点:list=list[0:2]
 
5、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
def check_list(list):
    return list[::2]
print(check_list([1,2,3,4,5,6]))
 
 
 
 
 
 
 
 
 

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值