python 基础学习3-函数
1. 函数参数-默认参数
python函数也可以跟C语言一样,在函数的形参中设定默认值。
>>> def test(flag, port = 8080)
... print port,flag
默认参数可以节省比较多的时间,一般设定都是比较合适的值。
2.函数参数-可变长参数
有时候可能需要传入的参数是不确定的,这时候可以使用可变长度的参数列表,类似C语言中的varargs参数,python的可变长度参数有2种形式:非关键字的可变长度参数和关键字的可变长度参数。
非关键字可变长度参数:指参数是元组类型(tuple)。一般参数前面使用*表示。
def test(flag, *testtuple):
print flag
print testtuple
test(1)
输出:
>>>
1
()
test(1,4,5,6,7)
输出:
>>>
1
(4, 5, 6, 7)
关键字可变长度参数:指参数是字典类型,一般参数前面使用**表示,具有键-值对。
def test(flag, **testdict): print flag print testtuple
test(1)
输出:
>>>
1
{}
3. 函数式编程
lambda表达式:是一个快速的函数表达方式,必须是在一行,不是代码块。
>>> f=lambda a,b,c:a+b+c
>>> f(2,3,5)
10
filter函数:对给定的序列进行筛选,如果结果为真,将被添加到一个新的序列中。
>>> def f1(x):
if x>5:
return True
else: return False
>>> ls=[1,3,0,-2,5,8,2,56,6,2,9]
>>> filter(f1,ls)
[8, 56, 6, 9]
map函数:对给定的序列调用对应函数,将结果对应到序列的每个位置上,得到一个具有所有返回值的序列。map(func,seq1,seq2...),如果func为空,则相当于zip的功能。
>>> l1=[0,1,2,3,4,5]
>>> l2=[2,3,4,5,6,7]
>>> map(f2,l1,l2)
[2, 4, 6, 8, 10, 12]
reduce函数:reduce(func,seq1,seq2...), 即为化简,将上一次迭代的结果与下一个seq序列执行二元func函数。最终获得一个值,化繁为简。
>>> from functools import reduce
>>> def f3(x,y): return x+y
>>> sum = reduce(f3,(12,3,4))
>>> print sum
19
python 基础学习3-函数的更多相关文章
- python基础学习2 函数变量与赋值
学习的第一步,就是通常的输出函数:print() 1.基础主要学习了变量的赋值,变量名可以疑字母.数字.下划线(_)进行命名,但是不能以数字开头 变量的赋值:变量名 = 变量值 2.模块的导入,和调用 ...
- python基础学习Day10 函数形参的动态参数、*args **kwargs 命名空间 global 与 nonlocal
一.函数形参的动态参数 原因:为了拓展,对于实参数量不固定,故需要万能参数,即动态参数, *args **kwargs # def sum1(*args): # 在函数定义时,在*位置参数,聚合. ...
- Python基础学习四 函数
1.内置函数 Python内置了很多有用的函数,是可以直接调用的. 参考链接:https://docs.python.org/3/library/functions.html 调用函数的时候,如果传入 ...
- python基础学习Day11 函数名的应用、闭包、迭代器
一.函数名的应用 1.函数名就是函数的内存地址 def func(): print(666) func() print(func) #函数的内存地址 2.函数名可以作为变量 def func1(): ...
- python基础学习Day9 函数的初识,实参、形参、
1.函数 def my_len(): l = [,,,,,,] count = for i in l: count += print(count) my_len() 定义的my_len()方法时,其结 ...
- Python基础学习之 函数
阅读目录 第一篇: 函数初识 第二篇: 函数命名空间 作用域 闭包 第三篇: 装饰器 第四篇: 装饰器 面试题错误点 第五篇: 迭代器生成器 第六篇: 生成器进阶 第七篇: 递归 第八篇 ...
- python基础学习之函数进阶【匿名函数、作用域关系、闭包、递归】
匿名函数 lambda的用法: lambda x:x+1 解释,同等于以下函数 def test(x): return x+1 因为没有函数名,所以称为匿名函数 只适用于简易的逻辑,复杂逻辑无法实现 ...
- python基础学习之函数基础和部分内置函数
在函数调用的时候,必备参数必须要传入 函数定义: def 函数名: 代码块pass return 返回值 函数名命名规则: 字母.数字和下划线组成,和变量命名规则一致 pass在这里表示什么都没有 ...
- python学习第五讲,python基础语法之函数语法,与Import导入模块.
目录 python学习第五讲,python基础语法之函数语法,与Import导入模块. 一丶函数简介 1.函数语法定义 2.函数的调用 3.函数的文档注释 4.函数的参数 5.函数的形参跟实参 6.函 ...
- Python 基础学习 总结篇
Python 基础学习总结 先附上所有的章节: Python学习(一)安装.环境配置及IDE推荐 Python学习(二)Python 简介 Python学习(三)流程控制 Python学习(四)数据结 ...
随机推荐
- Ubuntu13.04使用Mesa
3年前写过一些关于如何使用Mesa的文章,如今再试.有些东西已经变了. 首先安装: sudo apt-get install libgl1-mesa-dev sudo apt-get install ...
- 用python写爬虫
Python提供了许多Module,通过这些Module,可以很简单的做一些工作.比如,要获得cloga这个词在百度搜索结果页中的排名结果(排名结果+URL),这就是一个很简单的爬虫需求. 首先,要通 ...
- jedis使用api
Jedis 是 Redis 官方首选的 Java 客户端开发包. 工作过程总结的一个示例,贴出来,如下: package com.wujintao.redis; import java.util.Da ...
- 64位linux报错Could not initialize class java.awt.image.BufferedImage
最近碰到一个问题: 64位linux报错Could not initialize class java.awt.image.BufferedImage 在WIN平台下运行正常BufferedImage ...
- 微信小程序开源项目库汇总
最近做了一个微信小程序开源项目库汇总,里面集合了OpenDigg 上的优质的微信小程序开源项目库,方便移动开发人员便捷的找到自己需要的项目工具等,感兴趣的可以到GitHub上给个star. UI组件 ...
- JS设计模式之观察者模式
观察者模式,即发布与订阅模式,实现一对多的一种关系模式,当一种对象接受信号时其他所有依赖均有行为.我们在写code的时候总是会去自定义一些事件,这就是观察者常常使用的地方: JS中的观察者模式应用: ...
- CodeForces 384C Milking cows
水题. 对于两个$0$,肯定是先删去后面的$0$,再删去前面的$0$. 对于两个$1$,肯定是先删去前面的$1$,再删去后面的$1$. 对于一个$0$和一个$1$,无论先删哪一个,对答案做出的贡献都是 ...
- 集中式(CVS、SVN)VS分布式(Git)
集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器.中央服务器就好比是一个图 ...
- less基本语法
1.新建less文件 xx.less 和css文件存放在一起 2. 在less文件里声明编码格式 @charset "utf-8"; 3.把项目拖入Koala里 4.选中less文 ...
- 校门外的树 OpenJudge 1.6.06
06:校门外的树 总时间限制: 1000ms 内存限制: 65536kB 描述 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米.我们可以把马路看成一个数轴,马路的一端在数轴0 ...