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函数传参是传值还是传引用?
首先还是应该科普下函数参数传递机制,传值和传引用是什么意思? 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题.基本的参数传递机制有两种:值传递和引用传 ...
随机推荐
- Git使用教程【转】
Git使用教程 一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是 ...
- error: could not read CFBundleIdentifier from Info.plist (null)解决方法之一
出现这种错误的原因可能很多,以下是我遇到的一种情况: 项目移植到新的环境 编译报错: error: could not read CFBundleIdentifier from Info.plist ...
- AngularJs开发环境搭建
1. 安装Sublime Text3 常用插件安装:AngularJs, Autoprefixer, BracketHighlighter,ConvertToUTF8,CSScomb,DocBlock ...
- Java生成随机验证码
package com.tg.snail.core.util; import java.awt.Color; import java.awt.Font; import java.awt.Graphic ...
- php-sql-parser sql防注入脚本
<?php /** * SQL Parser from: http://code.google.com/p/php-sql-parser/ * License: New BSD */ class ...
- 命令行用sublime打开当前目录
执行 ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" subl 就可以在命令行用 ...
- WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED
原文地址:http://linuxme.blog.51cto.com/1850814/375752 今天将阿里云服务器更换了一下系统盘,重启成功后,再次通过终端访问阿里云的公网IP报以下信息: @@@ ...
- mySQL数据库Sql语句执行效率检查--Explain命令
mysql性能的检查和调优方法 Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看SQL语句的执行效 果,可以帮助选择更好的 ...
- angularjs的$on、$emit、$broadcast
如何在作用域之间通信呢? 1.创建一个单例服务,然后通过这个服务处理所有子作用域的通信. 2.通过作用域中的事件处理通信.但是这种方法有一些限制:例如,你并不能广泛的将事件传播到所有监控的作用域中.你 ...
- AWT编程学习01(未完成)
本文资料来源:<java疯狂讲义> 作者:李刚 终于要学习这一部分了~~虽然很多人(明明是绝大多数的人)说学这个没有用...而且有点过时了...但我觉得很有意思啊...感兴趣就学~~反正多 ...