Python:函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
定义和调用
>>> def add(x,y):
... print('x=',x) #Python3必须加"()"
... print('y=',y)
... return x+y
...
>>> add(1,2)
x= 1
y= 2
3
参数收集
#当参数不确定时,使用*定义函数,并返回一个元组
def func(x,*arg):
print (x)
result=x
print (arg)
for i in arg:
result +=i
return result
print (func(1,2,3,4,5,6,7,8,9))
#返回结果
1 #对应print (x)
(2, 3, 4, 5, 6, 7, 8, 9) #对应print (arg)
45 #最后print (func(1,2,3,4,5,6,7,8,9))结果
#当参数为赋值语句时,使用**定义函数,并返回一个字典
>>> def f(**karg):
... print (karg)
...
>>> f(a=1,b=2,c=3) #当参数为非赋值语句时,报错
{'c': 3, 'a': 1, 'b': 2}
*和**定义函数综合举例
>>> def foo(x,y,z,*arg,**karg):
... print (x)
... print (y)
... print (z)
... print (arg)
... print (karg)
...
>>> foo('taylor',1989,'adele')
taylor
1989
adele
()
{}
>>> foo(1,2,3,4,5)
1
2
3
(4, 5)
{}
>>> foo(1,2,3,4,5,name="taylor")
1
2
3
(4, 5)
{'name': 'taylor'}
几种定义方式汇总
1. def a(p1,p2,p3) #参数的位置很重要
2. def a(p1=v1,p2=v2) #定义的时候直接赋值
3. def a(*arg) #适用不确定个数
4. def a(**arg) #必须接收arg=val的形式
几个函数
lambda
>>> num=[1,2,3,4,5]
>>> lam=lambda x:x+1 #函数后直接使用变量,变量后为冒号隔离表达式,表达式的结果为函数的返回值
>>> n=[]
>>> for i in num:
... n.append(lam(i))
...
>>> n
[2, 3, 4, 5, 6]
map
map(func,seq),对可迭代对象的每个元素执行func函数
>>> num=[1,2,3,4,5]
>>> list(map(lambda x:x+1,num)) #python3需要将map转换成list格式,否则报错,因为直接使用map返回的是iterators
[2, 3, 4, 5, 6]
>>> l1=[1,2,3,4,5]
>>> l2=[9,8,7,6,5]
>>> list(map(lambda x,y:x+y,l1,l2))
[10, 10, 10, 10, 10]
reduce
reduce(func,seq),func必须为二元操作函数,先对集合中的第1,2个数据进行操作,得到的结果再与第三个数据用func()函数运算,最后得到一个结果。横向运算。
>>> from functools import reduce #python3无法直接使用reduce函数,需先引用
>>> reduce(lambda x,y:x+y,[1,2,3,4,5]) #“横着”依次计算
15
filter
filter(func, iterable),对iterable中的元素执行func,并将满足func的元素返回新list中
>>> l=[1,2,3,4,5]
>>> list(filter(lambda x:x>3,l)) #同reduce函数
[4, 5]
等价语句
>>> [x for x in l if x>3] #三元操作符
[4, 5] #三元操作符
A=Y if x else Z
如果x为真,执行A=Y
如果x为假,执行A=Z
Python:函数的更多相关文章
- python 函数之day3
一 函数的语法及特性 什么是函数? 定义:函数是一个功能通过一组语句的集合,由名字(函数名)将其封装起来的代码块,要想执行这个函数,只要调用其函数名即可. 特性: 减少重复代码 使程序变的可扩展 使程 ...
- Python函数作用域的查找顺序
函数作用域的LEGB顺序 1.什么是LEGB? L:local 函数内部作用域 E:enclosing 函数内部与内嵌函数之间 G:global 全局作用域 B:build-in 内置作用域 2.它们 ...
- Python函数讲解
Python函数
- Python函数信息
Python函数func的信息可以通过func.func_*和func.func_code来获取 一.先看看它们的应用吧: 1.获取原函数名称: 1 >>> def yes():pa ...
- Python函数参数默认值的陷阱和原理深究"
本文将介绍使用mutable对象作为Python函数参数默认值潜在的危害,以及其实现原理和设计目的 本博客已经迁移至: http://cenalulu.github.io/ 本篇博文已经迁移,阅读全文 ...
- Python开发【第四章】:Python函数剖析
一.Python函数剖析 1.函数的调用顺序 #!/usr/bin/env python # -*- coding:utf-8 -*- #-Author-Lian #函数错误的调用方式 def fun ...
- Python函数解析
对于Python的函数,我们需要记住的是: 1. 函数的默认返回值是None. 2. python是一个自上而下逐行解释并执行的语言.因此,函数的定义必须在函数被调用之前.同名的函数,后定义的会覆盖前 ...
- Python入门笔记(18):Python函数(1):基础部分
一.什么是函数.方法.过程 推荐阅读:http://www.cnblogs.com/snandy/archive/2011/08/29/2153871.html 一般程序设计语言包含两种基本的抽象:过 ...
- Python函数1
Python 函数命令的使用 想想我们之前数学中学到的函数,首先我们需要定义一个函数,例如f(x)=x, 当x输入任意数的时候,f(x)都能输出和x相等的数值. 那么在Python中是如何实现的呢? ...
- python函数传参是传值还是传引用?
首先还是应该科普下函数参数传递机制,传值和传引用是什么意思? 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题.基本的参数传递机制有两种:值传递和引用传 ...
随机推荐
- JS—实现拖拽
JS中的拖拽示例: 1)实现拖拽思路:当鼠标按下和拖拽过程中,鼠标与拖拽物体之间的相对距离保持不变 2)实现拖拽遇到的问题: 问题1:当鼠标按下移动过快时,离开了拖拽的物体时 ...
- JS表单验证
1. 长度限制 <script> function test() { if(document.a.b.value.length>50) { alert("不能超过50个字符 ...
- 《机器学习实战》学习笔记一K邻近算法
一. K邻近算法思想:存在一个样本数据集合,称为训练样本集,并且每个数据都存在标签,即我们知道样本集中每一数据(这里的数据是一组数据,可以是n维向量)与所属分类的对应关系.输入没有标签的新数据后,将 ...
- 学习Git的总结与体会
学习Git的总结 blog 第一次学习Git是完全按照廖雪峰老师的教程学习的,学的过程中基本上没有遇到什么问题,但是自己实际操作就问题不断了. 首先,还是按照惯例,来膜拜一下廖雪峰老师精简的教程知识吧 ...
- nodejs笔记
“多读书多看报,少看视频多睡觉.”在2015年即将结束之际,我把这句话作为我2016年的个人签名,希望它能时刻提醒我自己应该去好好读书,查漏补缺,充实自己,遇到不清楚的漏洞就努力去弄懂弄通. 在web ...
- django 富文本展示 以及 post提交出错
1.富文本转义 使用 {{ content.record.content | safe }} 2.post提交报错 页面表单内追加 <form id="f"action=&q ...
- The Same Game-POJ1027模拟
The Same Game Time Limit: 1000MS Memory Limit: 10000K Description The game named "Same" is ...
- DirectDraw创建Windows窗口
KWindow.h KWindow.cpp KDDrawWindow.cpp #define STRICT #define WIN32_LEAN_AND_MEAN #include <wind ...
- SQL锁死解决办法
SQL Server 表,记录 死锁解决办法 1. 先根据以下语句 查询 哪些表被 死锁,及 死锁的 spid SELECT request_session_id spid,OBJECT_NAME(r ...
- DPI
[iOS]查找数组NSArray中是否包含指定的元素 http://blog.csdn.net/zyq527758142/article/details/51278172 Dpi(每平方英寸像素数目) ...