周计划 补完工程 第十周 python进阶(1)
来源:互联网 发布:ipad如何升级淘宝店铺 编辑:程序博客网 时间:2024/06/05 20:28
这份博客是个人的学习笔记以及总结,观看课程为廖雪峰在慕课上发布的《python》进阶。
一些关于python的基础操作以及安装,可以参考我之前的文章。
点击打开链接,点击打开链接
这份课程一开始会回顾之前学过的东西:
之前学过的有以下几点:
1python内置的基本类型 变量
2LIst 和turple 顺序的集合类型
3条件判断和循环
4dictheset :根据key访问的集合类型。
5函数
6切片
7迭代
8列表生成式
二本周课程目录:
1函数式编程
2模块使用。
3面向对象编程
4定制类
三学习目标
掌握函数式和面向对象以及模块化编程
四课程开始
4.1函数式编程概念:
functional 抽象的编程模式。 更高的抽象等级
语言层级对语言调用的影响。
4.2特点
1计算视为函数而非指令
2纯函数式编程,不需要变量。
3支持高阶函数,代码简洁。
4.3 python支持的
1不是纯函数时编程,支持高阶函数和闭包,有限支持匿名函数。
4.4高阶函数的概念
直接调用函数,和使用变量的效果一样。
可以修改库函数的内涵。
高阶函数:将函数作为参数的函数。(数分里的算子)
demo:
def add(a,b,c):
return c(x)+c(y)
add( 1,9,abs)
高阶函数的例子
五练习时间
题目1
编写一个简单的高阶函数,实现
输入 x和y得到 根号(x)加根号(y)
解答:
import math
def add(x,y,f):
return f(x)+f(y)
print (add(25,9,math.sqrt))
题目2
编写一个map映射程序实现将输入的字符串首字母大写其他字母小写的功能。
example for map
def f(x):
return x*x
print(list(map(f,[1,2,3,4,5,6,7,8,9])))
输出结果为
[1,4,9,16,25,36,49,64,81]
解答:
def format_name(s):
return s.capitalize()
print(list(map(format_name,['adam','LISA','barT'])))
题目3
reduce函数的使用,reduce函数和map函数一样是个高阶函数,
区别在于,reduce会对列表里面的参数反复调用。
要求编写一个函数实现连乘。
example:
from functools import reducedef f(x,y):
return x+y
print(reduce(f,[1,3,5,7,9]))
输出结果为:25
解答:
from functools import reduce
def f(x,y):
return x*y
print(reduce(f,[2,4,5,7,12]))
题目4
filter()函数的使用,该函数是python内置的另一个有用的高阶函数,filter()函数接受一个函数f和一个list()
这个函数f的作用是对每个元素进行判断,返回true或者false,filter()根据判断结果自动过滤掉不符合条件的元素
,返回由符合条件元素组成的新list。
example:
def is_not_empty(s):
return s and len(s.strip())>0
print(list(filter(is_not_empty,['test',None,'','str','','END'])))
- 周计划 补完工程 第十周 python进阶(1)
- 周计划 补完工程 第十四周 R 语言ggplot2(1)
- 周计划 补完工程 第十一周 matlab练习
- 周计划 补完工程 第九周 python入门(1)
- 周计划 补完工程 第七周 python基础第二周
- 周计划 补完工程 第六周 python基础第一周
- 周计划 补完工程 第十二周 matlab 练习
- 周计划 补完工程 第十三周 matlab练习
- 周计划 补完工程 第十五周 R 语言ggplot2(2)
- python进阶--补-冒泡排序
- leetcode-python 第十周
- 【南大软院大神养成计划:第十一天】JS,进阶的巨人(一)
- 【南大软院大神养成计划:第十二天&第十三天】JS,进阶的巨人(二)
- C++补全计划1
- 【代码】 状态压缩 周伟论文 代码补全计划
- 每周项目 补完计划 第八周 R语言基础
- Python实现欧拉计划第十题
- 第十四周 平衡二叉树(补)
- STL简介
- Spring MVC快速体验
- RecyclerView的使用
- cmd编译运行java程序
- 代理模式の动态代理
- 周计划 补完工程 第十周 python进阶(1)
- Unity 各个方面的性能优化
- 无序数组中,三个数的乘积最大
- 生活日记1
- 647.Palindromic Substrings(动态规划)
- EasyDarwin流媒体服务器高性能优化方向
- 浅谈App原生开发、混合开发及HTML5开发的优劣
- Codeforces 868 D. Huge Strings 字符串思维乱搞
- android开发-Hashmap源码解析