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学习(四)数据结 ...
随机推荐
- 如何让msvsmon.exe 以服务方式运行
通常我们在VS上调试程序用的都是msvsmon.exe, 使用管理员权限运行再选项设置任何人可以调试就可以了,而这个在绝大多数情况下都没有问题.而我想说的就是特殊的情况,跟msvsmon的运行权限相关 ...
- DEV gridcontrol 设置行数据超宽换行
第一 在main > columns 的 某个gridcolumn下的 columnEdit为新建为 repositoryitemmemoedit 第二 repositor下的optionvie ...
- c/c++ 算法之快速排序法 冒泡排序法,选择排序法,插入排序法
本文详细叙述和实现了快速排序算法,冒泡排序 选择排序 插入排序比较简单,原理在这里不再详述,直接用代码进行了实现. 快速排序法(quicksort)是目前所公认最快的排序方法之一(视解题的对象而定), ...
- 代码用于脚本语言开发平台Script.NET即将开源
文章结束给大家来个程序员笑话:[M] 为了放慢Script.NET的开展,蓝蚂蚁工作室将在近期将Script.NET的全部代码开源,因为开源之前需要将代码先整理一遍,大约需要一周时间,筹划7月初可以整 ...
- android中使用Http下载文件并保存到本地SD卡
1.AndroidMainfest.xml中设置权限 <uses-permission android:name="android.permission.INTERNET"& ...
- ClassLoader的类结构分析
摘自深入分析java web技术内幕
- Django Function Based View(FBV)和Class Based View (CBV)对比
一.FBV处理过程 首先来看一下FBV逻辑过程: 1.简单过程(借用官方示例): urls: from django.conf.urls import url from . import views ...
- Zookeeper 安装和配置
单机模式 下载zookeeper的安装包之后, 解压到合适目录. 进入zookeeper目录下的conf子目录, 创建zoo.cfg: tickTime=2000 dataDir=/Users/app ...
- magento模块的建立
所有路径都是从根目录开始的: 1.建立模块的配置文件: 路径:app/etc/models/下建一个文件(模块名称是Orderlottery)为Bf170_Orderlottery.xml,内容如下: ...
- kali2.0 + LAMP
0x01 更新源 leafpad /etc/apt/sources.list #中科大kali源 deb http://mirrors.ustc.edu.cn/kali sana main non-f ...