Intermediate Python学习
来源:互联网 发布:软件安装包制作工具 编辑:程序博客网 时间:2024/04/29 04:42
- args 和 kwargs
- Debugging
- 迭代器与生成器
- mapfilterreduce
- 1map
- 2filter
- 3reduce
- 推导式
- 7捕获异常
1. args 和 kwargs
不是非要用命名为args和kwargs,只是前面的*
和**
,有点类似于C语言的指针,*
可以取一维数组的数据,**
可以取二维数组的数据
*args:类似一个列表
**kwargs:类似一个字典
def test_args(*args): for i in args: print(i)test_args("q",'w','e','r')def test_kwargs(**kwargs): for i in kwargs.keys(): print('{0}:{1}'.format(i,kwargs.get(i)))test_kwargs(a=1,b=2,c=3)def test_args_kwargs(fargs,*args,**kwargs): print(fargs) print("start print args ") for i in args: print(i) print("start print kwargs") for i in kwargs: print('{0}-{1}'.format(i,kwargs.get(i)))test_args_kwargs('a','1','b','2',{'c':'3','d':'4'})输出结果:qwera:1c:3b:2astart print args 1b2{'d': '4', 'c': '3'}start print kwargs
2.Debugging
python自带的代码调试包,但是感觉没有IDE中的好用
c
: 继续执行w
: 显示当前正在执行的代码行的上下文信息a
: 打印当前函数的参数列表s
: 执行当前代码行,并停在第一个能停的地方(相当于单步进入)n
: 继续执行到当前函数的下一行,或者当前行直接返回(单步跳过)
import pdbdef make_bread(): print("111") pdb.set_trace() print("222") return "I don't have time"print(make_bread())python pdb_debug.py,然后输入上述的命令,查看过程
3.迭代器与生成器
迭代器: 可以用for 语句依次循环取出每一个元素,
生成器:一边循环一边计算,yield,可以通过next(),获取值,取不到是会暴StopIteration()错误
生成器也是迭代器的一种,for中也是通过next方法获取到值,也会有StopIteration()错误,只不过它自动处理了
#使用生成器def fib(n): a =b=1 for i in range(n): yield b a ,b=b,a+bfor i in fib(10): print i 使用for迭代def fib(n): a = b=1 result = [] for i in range(n): result.append(a) a,b= b,a+b return result for i in fib(10): print i
5.map、filter、reduce
1、map
将list中的数据依次传到一个函数中,并将结果返回成一个新的list
#map的使用add_list = [1,2,3,4]list1 = list(map(lambda x:x+2,add_list))print(list1)#列表推导式print([i+2 for i in add_list])
2、filter
将list中的数据依次传到一个函数(判断True False),获得满足函数的结果,成为一个新的list
#filterfilter_list = range(1,20)two_list = filter(lambda x:x%2,filter_list)print(list(two_list))#列表推导式print([i for i in range(1,20) if i%2])
3、reduce
将list中的数据递归的传到一个函数中,计算出最后的结果,只有一个值
#reducefrom functools import reducereduce_list = range(1,20)sum_list =reduce((lambda x,y:x+y),reduce_list)print(sum_list)
6.推导式
简单的说,使用对应的符号,[ ],{ }来包含想要的结果
1、列表推导式
In [1]: [i for i in range(30) if i%2==0]Out[1]: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28]
2、字典推导式
#装换字典的key、valueIn [5]: mcase = {'a':1,'A':2,'b':3,'B':4,'c':5}In [6]: {k:v for v,k in mcase.items()}Out[6]: {1: 'a', 2: 'A', 3: 'b', 4: 'B', 5: 'c'}#将字典相同的字母不管大小写相加In [7]: mcase_add ={ i.lower():mcase.get(i.lower(),0)+mcase.get(i.upper(),0) fo ...: r i in mcase.keys()}In [8]: mcase_addOut[8]: {'a': 3, 'b': 7, 'c': 5}
3、集合推导式
In [3]: squard = {x**2 for x in [1,2,3,4,5,3,2,1]}In [4]: squardOut[4]: {1, 4, 9, 16, 25}
7、捕获异常
In [2]: try: ...: file = open('test.txt','rb') ...: except IOError as e: ...: print('An IOError occurred. {}'.format(e.args[-1])) ...:An IOError occurred. No such file or directory
0 0
- Intermediate Python学习
- Intermediate Python笔记
- class Intermediate Python for Data Science
- ogre学习笔记-Intermediate Tutorial 1234
- ogre学习笔记-Intermediate Tutorial 567
- 关于GPSID(GPS Intermediate Driver )的学习了解
- Intermediate Perl
- Intermediate Perl 翻译
- CHAPTER2 Intermediate Foundations
- GPS Intermediate Driver 简介
- GPS Intermediate Driver
- intermediate.manifest VC
- GPS Intermediate Driver
- Intermediate Studio Tutorial
- GPS Intermediate Driver
- (intermediate) UVA 10358 Matrix
- (intermediate) UVA 1455 Kingdom
- 【索引】Exercises: Intermediate
- Spring Boot How To
- ARM刷机问题汇总
- AS运行小机器人上有红叉
- C++的初步知识
- db文件查看工具SQLiteExpert
- Intermediate Python学习
- 设置数据库连接属性
- spring-boot集成ehcache实现缓存机制
- Bzoj 1729 [Usaco2005 dec] Cow Patterns 牛的模式匹配
- 写给一位初中生的信——如何应付应试英语
- [机器学习]特征选择常用算法综述
- SpringIOC的源码简单分析 eclipseIDE debug
- 求三个数中的最小值,以一定的格式输出
- 深度学习斯坦福cs231n 课程笔记