python周报第五周

1.装饰器进阶 -- 双层装饰器

先直接上代码,咱们在来分析。

 1 USER_INFO = {}
 2
 3 def check_login(func):
 4     def inner(*args,**kwargs):
 5         if USER_INFO.get("is_login",None):
 6             ret = func(*args,**kwargs)
 7             return ret
 8         else:
 9             print("请登录")
10     return inner
11
12
13 def check_admin(func):
14     def inner(*args,**kwargs):
15         if USER_INFO.get("user_type",None) == 2:
16             ret = func(*args,**kwargs)
17             return ret
18         else:
19             print("无权查看")
20     return inner
21
22
23 def login():
24     userinput = input("请输入用户名: ")
25     pwdinput = input("请输入密码: ")
26     if userinput == "lk" and pwdinput == "123":
27         USER_INFO["is_login"] = True
28     elif userinput == "liukai" and pwdinput == "234":
29         USER_INFO["is_login"] = True
30         USER_INFO["user_type"] = 2
31     index()
32
33
34 @check_login
35 @check_admin
36 def index(*args,**kwargs):
37     print("哈喽,管理员大大")
38
39
40 def main():
41     while True:
42         userinput = input("请输入:1,管理;2,登陆: ")
43         userinput = int(userinput)
44         if userinput == 1:
45             index()
46         elif userinput == 2:
47             login()
48
49 main()

执行结果如下:

 1 请输入:1,管理;2,登陆: 1
 2 请登录
 3 请输入:1,管理;2,登陆: 2
 4 请输入用户名: lk
 5 请输入密码: 123
 6 无权查看
 7 请输入:1,管理;2,登陆: 2
 8 请输入用户名: liukai
 9 请输入密码: 234
10 哈喽,管理员大大

程序剖析:

时间: 2024-10-29 10:04:17

python周报第五周的相关文章

python学习--第五周

本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configparser hashlib subprocess logging模块 re正则表达式 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才能完成(函数又可以在不同的.p

python周报第七周

1.模块进阶 1. configparser [email protected]:~/PycharmProjects/s13/day7$ cat testfile [info1] name = liukai age1 = 19 [info2] name = lk age1 = 22

python周报第三周

1.set 集合 1.set 方法解析 1.定义一个set s1 = "caesary" set1 = set(s1) print(set1) l1 = [1,2,3,4] set2 = set(l1) print(set2) t1 = (1,1,1,2,3) set3 = set(t1) print(set3) 执行结果如下 {'y', 'e', 's', 'r', 'c', 'a'} {1, 2, 3, 4} {1, 2, 3} 总结:set集合有去重功能,类似awk数组:并且是无

python周报第六周

1.初识算法 1.冒泡排序 冒泡排序算法的原理如下:(从后往前) 1.比较相邻的元素.如果第一个比第二个大,就交换他们两个. 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 3.针对所有的元素重复以上的步骤,除了最后一个. 4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较. 冒泡算法初级代码如下: 1 ##冒泡 2 a=[9,2,1,55,33] 3 4 for i in range(len(a)): 5 for j

Python学习第五周之内置模块之time与datetime

1.模块分为三类: 标准库:sys.os等内置模块: 开源模块:第三方模块 自定义模块 2.标准库中时间模块有time跟datetime (1)格式化的时间字符串表示:2019-08-24 08:23:05 (2)时间戳:本质是秒数,使用time.time()来打印,是从1970年01月01日00:00开始按秒计算的偏移量 >>> time.time() 1566616449.2671971 >>> x=time.time() >>> x/3600/2

Python入门学习第五周:字符串·作业

python学习第五周字符串相关学习内容总结与作业 第五周主要是对字符串相关操作的学习包括 字符串的定义字符的序列 基本字符运算 求长度len(str)函数 拼接+str = str1 + 'pinjie' 重复*name * 3 就是把name的字符串内容输出三次 成员运算in判断一个字符串是否是另一个字符串的子串 for语句 枚举字符串中的每个字符 字符串索引每个字符串都有一个索引值索引从0前向或-1后向开始索引运算符[] 切片操作选择字符串的子序列语法 [start : finish] s

每周进度条(第十五周)

第十五周进度条   第十五周 所花时间 1h 代码量(行)  100 博客量(篇)  1 学到的知识 对图片的处理 在Android程序中加入图片

201405644 嵌入式程序设计第五周学习总结

嵌入式课程设计第五周学习总结 标准 I/O 编程 标准 I/O 提供流缓冲的目的是尽可能减少使用 read()和 write()等系统调用的数量.标准 I/O 提供了 3 种类型 的缓冲存储.全缓冲.行缓冲.不带缓冲. 打开文件 打开文件有三个标准函数,分别为:fopen().fdopen()和 freopen().其中 fopen()可以指定打开文件的路径和模式,fdopen()可以指定打开的文件描述符和模式,而 freopen() 除可指定打开的文件.模式外,还可指定特定的 I/O 流. f

第五周的学习进度情况

第五周,不在状态,关于软件工程的学习并没有以往那么用心了,是该好好反思.   第四周 所花时间(包括上课) 8 代码量(行) 200+ 博客量(篇) 3 了解到的知识 软件需求分析的重要性 练习对编程学习的重要 虽然上周不在状态,但是,感觉周末表现良好,心也慢慢的收回来了,身边这么多榜样,一定要坚持,做好该做的!