上周复习
1,python基础
2,基本数据类型
3,函数式编程
函数式编程、三元运行、内置函数、文件处理
- 容易出问题的点
函数默认返回值为none,对于列表字典,传入引用。
12
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#函数没有返回值的时候返回none
li
=
[
11
,
22
,
33
,
44
]
def
f2(arg):
arg.append(li)
ret
=
f2(li)
print
(ret)
-
-
-
-
-
none
#字典,列表等传值传引用
li
=
[
11
,
22
,
33
,
44
]
def
f2(arg):
arg.append(
55
)
f2(li)
print
(li)
-
-
-
-
-
[
11
,
22
,
33
,
44
,
55
]
- 所有为False值
所有空的 s=[],dict{},0,none,""
内置函数下
1,chr和ord:完成ASCI码和字符间的转换
1 2 3 4 5 6 7 8 9 |
|
随机数小程序
1 2 3 4 5 6 7 8 9 10 11 12 |
|
六随机验证码程序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
2,compile(),eval(),exec()
compile:将字符串编译成python代码。
eval:只能执行表达式,且有返回值。
exec:执行python代码,但是无返回值。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
3,dir:列出一个类给出了哪些功能(help)
1 2 3 4 |
|
4,divmod:对一个数取余,且将结果的商和余数存入元组
eg:某网站有156条记录,要求每页显示10行,工多少页。
1 2 3 4 5 6 7 8 9 10 |
|
5,enumerat:列举,枚举
- enumerate()是python的内置函数
- enumerate在字典上是枚举、列举的意思
- 对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值
- enumerate多用于在for循环中得到计数
- 例如对于一个seq,得到:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
6,isinstance:判断对象是某个类的实例(bool值)。
对象和类的关系:对象是类的实例
eg:s="alex"对象,他的类是字符串str。对象和类内部关联,在使用这个对象的时候就会调用换个对象类的方法。
1 2 3 4 5 6 7 8 9 |
|
7,filter:ret=filter(f2,li)(返回li中满足筛选条件f2的值,这里f2返回True元素才合法)
li:必须为可迭代的对象。f2:为执行条件。
- filter(函数,可迭代对象)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
|
- map:批量执行某一操作,返回值
map(函数,可迭代的对象(可以for循环的东西))
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
8,globals():所有的全局变量
locals():所有的局部变量
hash():生成哈希表,更虎字典key的保存
hex():将十进制转换16进制
9,len() 查看字符串有多少个字节或者字符
python2:只能按照字节看
python3:按照字节和字符都能看
10,callable:判断函数值能不能被执行,返回bool值
1 2 3 4 5 6 7 8 9 10 11 12 |
|
11.max,min,sum 求最大值、最小值和求和
1 2 3 4 5 6 7 8 |
|
12.bin,oct,int,min 分别可以做二进制、八进制、十进制、十六进制的转换。
1 2 3 4 5 6 7 8 9 10 |
|
13. pow(2,10)表示的十次方
1 2 3 |
|
14,reverse:反转
round:四舍五入
sorted:排序
zip:把两个序列合起来变成一个元组
1 2 3 4 5 6 7 8 |
|
1 2 3 |
|
1 2 3 4 5 |
|
1 2 3 4 5 6 |
|
第三周作业 解析
raw_input 获取的用户输入是字符串
1 2 3 4 5 6 |
|
################# raw_input 获取到的输入都是字符串、字符串、字符串 !!!!!!! #################
因为raw_input 获取的是字符串,所以用户输入的 ‘ {"k1":123, "k2": "wupeiqi"} ‘ 不具有字典的特性,也就不能使用 dic[‘key‘] 来获取值
如果想要将用户输入的内容转换下格式,
1 2 |
|
################# 当当当当,python的json模块可以搞搞搞 !!!!!!! #################
json模块
json模块的作用之一:根据字符串书写格式,将字符串自动转换成相应格式
1 2 3 4 5 6 7 8 |
|
学习json有什么用呢?本次作业可以用上哦!!!!!!!
作业实例:(谁要是再不清楚作业,看我下周带皮鞭去抽他...)
需求:
老板现在给你任务,公司有haproxy配置文件,希望通过python程序可以对ha配置文件进行增删改,不再是以往的打开文件进行直接操作了。
现有ha配置文件如下:
现有ha配置文件
PS:以下只是实例,有好的想法也是可以的!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
|
装饰器
软件开发的开放封闭原则:如果用户新增需求,对于原有的类和函数内部不要改,外部来修改功能。
装饰器
装饰器是函数,只不过该函数可以具有特殊的含义,装饰器用来装饰函数或类,使用装饰器可以在函数执行前和执行后添加相应操作。
格式:@+函数名,放在要装饰的函数前面:自动执行wrapper函数,将foo函数作为参数传给wrapper
1 2 3 4 5 6 7 8 9 10 11 |
|
执行步骤:
- 用户调用foo函数的时候,先执行wrapper函数。
- 然后将foo函数整体作为一个参数传入给func这个形式参数。
- 执行result函数。(1,打印before;2,执行func(),就是调用foo函数;3,打印after。)
- 给出result函数的返回值。
1,准备知识
- 如果一个函数返回值,则返回none
- 把一个函数作为参数传入另外一个函数,则调用形式参数就是执行原函数
- 如果一个函数那个过程中遇到return语句结束。
12
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def
f1():
print
(
123
)
def
f1():
print
(
456
)
f1()
def
f1():
print
(
‘123‘
)
def
f2(xxx):
xxx()
f2(f1)
-
-
-
-
-
456
123
2,装饰器参数(万能参数)
- 使用这个样的装饰器可以接受万能参数,在函数调用的时候,只要传入了对应的参数均可行
- ?注意装饰器中内部函数inner要接受原函数的返回值,保证原函数不受不受影响。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
3,装饰器的主要应用(权限控制)
这段代码很好地控制了登陆权限,在每个需要登录的功能外部,通过装饰器,控制登陆状态。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
|