第一题
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例