一抹明媚的忧伤

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

 

'''def func():
    print(123)
def wahaha(f):
    f()
    return f
qqxing = wahaha(func)  #函数名可以作为函数的参数
qqxing()'''
#闭包:嵌套函数,内部函数调用外部函数的变量

#def outer():
#   a = 1
#   def inner():
#       print(a)
#   print(inner.__closure__)
#outer()
#print(outer)

#def outer():
#    a = 1
#    def inner():
##        print(a)
 #   return inner
##inn = outer()
#inn()

#import urllib  #模块
from urllib.request import urlopen
'''
ret = urlopen('https://www.china-agr.com/ChinaAgr').read()
print(ret)
def get_url():
    url = 
    ret = urlopen('https://www.china-agr.com/ChinaAgr').read()
    print(ret)
'''
def get_url():
    url = 'https://www.china-agr.com/ChinaAgr'
    def get():
        ret = urlopen(url).read()
        print(ret)
    return get
get_func = get_url()
get_func()
#装饰器

  

#装饰器形成的过程
#装饰器的作用
#原则:开放封闭原则
#装饰的固定模式
#懂技术的公司
#不懂技术
#bug
import time
#time.sleep(5)#让程序在执行到这个位置的时候停一会
def func():
    start = time.time()
    print('老板好同事好大家好')
    end = time.time()
    print(end-start)
func()

  

import time
# 装饰器
def timmer(f):
    def inner(*args,**kwargs):
        start =time.time()
        ret = f(*args,**kwargs)
        end =time.time()
        print(end-start)
        return ret
    return inner
@timmer      #语法糖 @timmer= func = time(func)@装饰器的函数名被装饰的函数名 
def func():
    time.sleep(0.01)
    print('can you speak')
    return '新年好'
ret = func()
#func = timmer(func)
func()
print(ret  )
#第一步 def func() 2 def timmer(f) 3 func =timmer(func) 赋值给 timmer(f)#f=func
#4 return inner 返回给 func  调用func() 实际调用的是def inner

  

'''def inner()
a=1
def haha()
print(a)
return haha()
inn = outer()
inn()
'''
#def sum_func(*args):
# total = 0
# for i in args:
# total += i
# return total

#print(sum_func(1,2,3,8,23,6))
'''
读代码,回答:代码中打印出来的值a,b,c分别是什么?为什么?
a = 10 #第一步
b = 20
def test5(a,b):
print(a,b)
c = test5(b,a) #test(20,10)
print(c)
a=20
b=20
def test5(a,b):
a=3
b=5
print(a,b)
c=test5(b,a)
print(c)
'''
#写函数检查获取传入列表或元组最新的所有奇数位索引对应的元素,并将其作为新列表返回给调用者
#def number_1(l = [])
# for i in l:
# if 索引 % = 0
# 不输出
# return number1
#def func()
'''
def func(l):
return l[1::2]
print(func([1,2,3,4,5]))
'''
'''
def func(x):
return len(x)>5
print(func('abcd'))
'''
#写函数,检查传入列表的长度,如果大于2
#那么仅保留前两个长度的内容,并将新的内容返回给调用者。
'''
def inner(l =[])
for i in l:
if leng(l) > 2:
sex = print(l(0::1)
return sex
def func(l):
if len(l) >2:
return l[:2]

print(func([1,2,3,4]))
def inner(l):
if len(l) > 2:
sex = print(l(0::1)
return sex
'''
#写函数,计算传入字符串中【数字】、【字母】、【空格】以及【其他】的个数,并返回结果。
'''
def func(s):
#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(sfunc('dsgasjkdhflkjau.ssd.a.a.s.d.asd'))
#6,写函数,检查用户传入的对象(字符串、列表、元祖)
#每一个元祖是否含有空内容,并返回结果。
#

def func(x):
if type(x) is str and x:
for i in x:
if i == ' ':
return True
elif x and type(x) is list or type(x) is tuple:
for i in x:
if not i:
return True
else:
return True
print(func([1,'',2,3]))
#7写函数,检查传入字典的每一个value的长度,如果大于2,
#那么仅保留前两个长度的内容,并将新内容返回给调用者。
#dic = {"k1":"v1v1","k2":[11,22,33,44]}
#ps:字典中的value只能是字符串或列表
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(dunc(dic))
#8,写函数,接收两个数字参数,返回比较大的那个数字。
def func(a,b):
if a > b:
return a
else:
return b
print(func(1,5))
#三元运算
a = 1
b = 5
c = a if a>b else b
print(c)

#变量 = 条件返回true的结果 if 条件 else 条件返回false的结果
#必须要有结果
#必须要有if 和else
#只能是简单的判断
def func(a,b)
return a if a>b esle b
#9、写函数,用户传入修改的文件名,与要修改的内容,执行的函数,完成整个文件的批量修改操作(进阶)
def func(filename,old,new):
with open(dilename,encoding='utf-8') as f,open('%s.bak'%filename,'w',encoding='utf-8')
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)
'''


posted on 2019-02-28 15:47  一抹明媚的忧伤  阅读(73)  评论(0编辑  收藏  举报