第一题
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)
方法一:传统方法
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)
"""
第二题
需求:['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)
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))
转换成{'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
"""
第八题
需求:求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)
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)
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 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','鱼','胡')
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','鱼','胡')