枯燥的叙述不好懂 咱直接上公式和例子!!!
1.定义3个基本函数
2.编写闭包
3.使用闭包加工原始3个函数
4.给闭包添加权限
5.函数调用
6.使用@装饰器语法糖
def index():
print("登录")
def cart():
print("购物页面")
def mine():
print("个人中心")
闭包有三要素:很重要!!!严格按照这三步写闭包
1.1 外部函数嵌套内部函数
1.2 外部函数将内部函数返回
1.3 内部函数可以访问保存外部函数的局部变量
编写闭包 给闭包添加权限
def login_require(f):
def check():
username = input("输入用户名")
if username == "admin":
f()
else:
print("校验失败")
return check
index = login_require(index)
cart = login_require(cart)
mine = login_require(mine)
index()
cart()
mine()
@login_require
def index():
print("登录")
index()
@login_require
def cart():
print("购物页面")
cart()
@login_require
def mine():
print("个人中心")
mine()
计算时间开销:
1. 随机生成500个1,1000之间的整数,加到列表中,因为我用两种方法对列表进行升序,当第一种
方法进行升序后,列表是可变列表?已经将 l 进行了排序所以要复制粘贴一个跟原来的 l 一模一样才
能比较两种方法的时间消耗
import random
import time
l = []
for i in range(500):
l.append(random.randint(1,1000))
l2 = [i for i in l]
2. 编写装饰器:
def time_cost(f):
def cost():
start = time.time()
f()
print("花费",time.time()-start)
return cost
3. 编写两种升序方法的函数封装?
第一种:冒泡排序
@time_cost
def sort1():
for i in range(len(l)-1):
for j in range(i+1,len(l)): # 冒泡排序
if l[i] > l[j]:
l[i],l[j] = l[j],l[i]
sort1()
第二种:选择排序:
@time_cost
def sort2():
for i in range(len(l2)-1):
min_value = i
for j in range(i+1,len(l2)): # 选择排序
if l2[min_value] > l2[j]:
min_value = j
l2[i],l2[min_value] = l2[min_value],l2[i]
sort2()
4. 使用@装饰器语法糖
print(len("1234567")) 计算字符串的长度
print(abs(-13)) 绝对值
print(divmod(100,3)) 求整除和余
print(pow(3,4)) 次方 3的4次方
print(round(3.7)) 四舍五入
print(sum([1,2,3,4,5])) 求和 可迭代数
print(all([0,True])) all是当有一个为假就返回假 全部为真返回真
print(any([0,True])) any有一个为真就为真 全部为假才为假
print(bin(20)) 0b10100 将十进制转化成2进制数
print(hex(20)) 0x14将十进制转化成16进制数
print(oct(88)) 0o130 将十进制转化成8进制数
print(callable(lambda x:x+1)) 可调用的函数、类
print(chr(90)) Z 将ASCII码值转成字符
print(ord("a")) 97 将字符转成 ASCII码值
print(sorted(["a","g","r","f","b"])) 根据ASCII码值排序
def f1():
i = 10
f2 = locals() locals 返回局部变量放在字典字典中 在函数内部使用
return f2
print(f1())
f3 = globals() globals 返回全局变量 放在字典中
print(f3)
print 输出 input 输入 id 打印内存地址
print(max([1,3,5,7,9])) 找最大值
print(min([1,3,5,7,9])) 找最小值
内置函数详情在上方代码中? 有案例有注释!!!