python学习历程——抽象(day 4)
来源:互联网 发布:城觅 网络异常 编辑:程序博客网 时间:2024/06/03 18:31
前几天学习了python的一些基础知识,比如:数据结构,了解了列表、元组、字符串、字典等,并了解学习了这些数据结构的一些方法,紧接着学习了一些语句,比如循环、if语句等,接着学习函数、参数等将在后面将用于抽象等经常用到的概念
1、函数
使用 def 定义函数,函数中的return语句非常重要,return语句是用来从函数中返回值的。有的函数并没有return,或者return语句后面并没有返回值,只用于函数结束
2、文档化函数(如果在函数开头写下字符串,他会作为函数的一部分进行存储)
>>> def square(x): 'Calculates the square of the number' return x*x>>> square.__doc__ #访问文档字符串'Calculates the square of the number'
3、参数
形参:定义函数时,函数名后面的为形参,函数调用时,函数名后面的为实参
4、函数参数表达形式
a、位置参数
>>> def example(x,y,z,f): #位置参数 return x,y,z,f>>> example('1',1,'a','a+b') #实参与形参 参数位置一一对应('1', 1, 'a', 'a+b')
b、关键字参数
>>> def hello(name,age): print('name:%s,age:%d'%(name,age)) return>>> hello(name='lili',age=12) #在调用函数时,采用关键字,在参数中明确参数意义name:lili,age:12
>>> def hello(name='lili',age=13): #也可以直接在定义函数的时候,给参数添加默认值,然后直接调用,也可在调用时设定参数不同的值 print('name:%s,age:%d'%(name,age)) return>>> hello()name:lili,age:13
位置参数和关键字参数也可联合使用,只是位置参数应该放在前面
5、收集参数
>>> def get_name(*names): #参数表示为*names,多加入一个*号 print(names) return>>> get_name('lili','anla','dd') #可传入3个参数('lili', 'anla', 'dd')>>> get_name('mm') #可传入1个参数('mm',) #且参数返回为元组类型
如上述代码参数前加上一个*号作为参数,调用时则可传入多个实参,且元组形式返回。且可以与普通参数一起使用,用于上述提到的位置参数
>>> def get_info(**params): #参数前面加两个** print (params) return>>> get_info(x=1,y=2,z=3)#以关键字参数的形式传入参数{'y': 2, 'z': 3, 'x': 1} #以字典的形式返回参数
上述参数中参数前面加两个**,调用时可传入多个关键字参数,并返回字典形式
两种形式同样也可以一起使用,并且也可以烦着来用,在调用函数的时候作为实参使用,如下:
>>> def add(x,y): return x+y>>> params=(1,2)>>> add(*params) #在调用函数时使用
>>> def get_info(name,age): print('name is %s,age is %d'%(name,age)) return>>> params={'name':'lll','age':12}>>> get_info(**params)name is lll,age is 12
6、作用域
全局变量 局部变量
globals()[‘parameters’] locals()[‘parameters]
递归
#采用递归的思想进行二分查找def select_num(numbers,num,lower,upper): if upper is None: upper=len(numbers)-1 if lower==upper: return numbers[lower] else: middle = (lower+upper)//2 if num > numbers[middle]: return select_num(numbers,num,middle+1,upper) else: return select_num(numbers, num,lower,middle)x=select_num(sorted([1,4,56,5,98,555,32,33,444,44]),5,0,None)print('查找的数字为:%d'%x )
7、函数式编程:
map(func,seq[,seq...])#对序列中每个元素应用函数filter(func,seq)#返回其函数为真的元素列表reduce(func,seq)#其中函数参数必须为两个lambda
阅读全文
0 0
- python学习历程——抽象(day 4)
- python 学习历程_基础知识(1day)
- python学习历程_基础知识(2day)
- python学习历程_语句(day 3)
- Second Day——python学习
- Second Day——Python 学习
- python机器学习day'4
- Python学习历程
- Python学习历程
- Python学习历程
- Python学习笔记Day
- Python学习笔记【六】——《python基础教程》:: 抽象
- Python学习笔记【七】——《python基础教程》:: 更加抽象
- ios学习day—1
- Python学习历程2009.10.9
- python机器学习day'2
- python机器学习day'3
- python机器学习day'5
- 移动端回到顶部
- SpringCloud微服务实战
- 36.异常
- 通信 设备
- React-Native WebView 测量网页高度
- python学习历程——抽象(day 4)
- 视频动作识别--Two-Stream Convolutional Networks for Action Recognition in Videos
- android 基于豆瓣 Api 的客户端,包含电影分类,图书分类,电影榜单,收藏功能,搜索功能。
- BCG与阿里研究院等联合揭秘中国互联网经济:成功的关键是什么?
- 自己的学习资料
- POJ
- tslib: Selected device is not a touchscreen (must support ABS and KEY event types)解决方法
- cnn网络压缩、量化和优化实现
- Ant的使用(一)