python第十一课

#2.写函数,检查获取伟入列表或元祖对象的所有奇数位素引对应的元素,并将其作为新列表返回给调用者.
# def func(l):
# return l[1::2]#切片
# print(func([1,2,3,4,5]))
#3.写函数,判断用户传入的值(字符串,列表,元祖)长度是否大于5
# def func(x):
# return len(x)>5
# if func('abcd'):
# print('长度确实大于5')
#4,写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者.
# def func(l):
# if len(l)>2:
# return l[:2]
# p=func([1,2,3,4])
# print(p)
#5,写函数,计算传入字符串中[数字],[字母],[空格]以及[其他]的个数,并返回结果
# def func(s): #'skghfoiw
# # num=0 # 计算数字的个数
# # alpha=0 #字母
# # space=0 #空格
# # other=0 #其它
# dic = {'num':0,'alpha':0,'space':0,'other':0}
# for i in s:
# if i.isdigit():
# dic['num']+=1
# elif i.isalpha():
# dic['alpha']+=1
# elif i.isspace():
# dic['space']+=1
# else:
# dic['other']+=1
# return dic
# print(func('+0-0sfk3j5l8s;f7j;aslfks'))

#6.写函数,检查用户传入的对象(字符串,列表,元祖)的每一个元素是否含有空内容,并返回结果
# def func(x):
# if type(x) is str and x:
# for i in x:
# if i == ' ':
# return Ture
# elif x and type(x) is list or type(x) is tuple:
# for i in x:
# if not i:
# return True
# elif not x:
# return True
# print(func([]))

#7,写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者
# def func(dic):
# for k in dic:
# if len(dic[k]) > 2:
# dic[k]=dic[k][:2]
# return dic
# dic={"k1":"v1v1","k2":[11,22,33,44]}
# print(func(dic))

#8.写函数,接收两个数字参数,返回比较大的那个数字
# def func(a,b):
# if a>b:
# return a
# else:
# return b
# print(func(1,5))
# def func(a,b):
# return a if a>b else b
# print(func(5,1))
#三元运算
# a=1
# b=5
# c=a if a>b else b #三元运算
# print(c)
#变量=条件返回True的结果 if 条件 else 条件返回Falese的结果
#必须要有结果
#必须要有if和else
#只能是简单的情况

#9.写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作
def func(filename,old,new):
with open(filename,encoding='utf-8') as f,open('%s.bak'%filename,'w',encoding='utf-8')as f2:
for line in f:
if old in line:
line=line.replace(old,new)
f2.write(line)
import os
os.remove(filename)
os.rename('%s.bak'%filename,filename)

#装饰器形成的过程:最简单的装饰器 有返回值的 有一个参数 万能参数
#装饰器的作用
#原则:开方封闭原则
#装饰器的固定模式
import time
# print(time.time())#获取当前时间
# time.sleep(10)#让程序在执行到这个位置的时候停一会儿
# print('龚启丽')
#
# def func():#被装饰的函数
# time.sleep(0.01)
# print('启丽我爱你')
#
# def timmer(f):#装饰器函数
# def inner():
# start = time.time()
# f() #装饰器函数
# end = time.time()
# print(end - start)
# return inner
# @timmer #语法糖
# func=timmer(func)
# func()
#装饰器的作用--不想修改函数的调用方式,但是还想在原来的函数前后添加功能
#timer就是一个装饰器函数,只是对一个函数,有些装饰作用

#原则:开放封闭原则
#开放:对扩展是开放的
#封闭:对修改是封闭的
#封版

#装饰带参数函数的装饰器
# def timmer(f):
# def inner(*args,**kwargs):
# #(1,2)/(1)
# start=time.time()
# ret=f(*args,**kwargs) #f(1,2)
# end=time.time()
# print(end-start)
# return ret
# return inner
# @timmer #语法糖 @装饰器函数名
# def func(a,b): #装饰器的函数
# time.sleep(0.01)
# print('启丽我爱你',a,b)
# return '启丽'
# @timmer #语法糖 @装饰器函数名
# def func1(a): #被装饰的函数
# time.sleep(0.01)
# print('启丽我爱你',a,b)
# return '启丽'
# #func=timmer(func)
# ret=func(1,2) #inner()
# ret=func(1,b=2) #inner()
# print(set)


# def wrapper(f): #装饰器函数: wrapper装饰的名字,f是被装饰的函数
# def inner(*args,**kwargs):
# '在被装饰函数之前要做的事'
# ret=f(*args,**kwargs) #被装饰的函数
# #在被装饰函数之后要作的事
# return ret
# return inner
# @wrapper #语法糖 @装饰器函数名 func=wrarpper(func)
# def func(a,b): #装饰器的函数
# time.sleep(0.01)
# print('启丽我爱你',a,b)
# return '启丽'

# def wrapper():
# def inner():
# pass
# return inner
#
# def wrapper(func): #qqxing
# def inner(*args,**kwargs):
# ret=func(*args,**kwargs) #被装饰的函数
# return ret
# return inner
# @wrapper #qqxing=wrappr(qqxing)
# def qqxing():
# print(123)
#
# ret=qqxing() #inner

猜你喜欢

转载自www.cnblogs.com/huangjianfeng/p/11297239.html