Python学习笔记7-把函数当参数传递、指定可变参数
把函数当参数传递
- # 函数参数传递
- # 面向对象编程就是把对象传来传去
- # 面向函数编程就是把函数传来传去
- def mytest(num):
- return num * 2
- # # 不光可以传递变量,还可以传递函数
- def convert(func, seq):
- print 'convert sequence of numbers to same type'
- return [func(eachNum) for eachNum in seq]
- myseq = [123, 45.67, -6.2e8, 99999999L]
- # # 面向对象编程说白了就是把对象传来传去,对象是第一要素
- # # 面试函数编程说白了就是把函数传来传去,函数是第一要素
- print convert(int, myseq)
- print convert(long, myseq)
- print convert(float, myseq)
- print convert(mytest, myseq)
函数的递归:
指定可变参数
- #--encoding:utf-8--
- print '---------------给参数指定默认值-----------------------'
- def taxMe(cost,rate=0.85):
- return cost * rate
- print taxMe(5) #4.25
- print '---------------给有默认值的参数指定值-----------------------'
- print taxMe(5,2) #10
- #在Python函数中,还可以定义可变参数。顾名思义,可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个
- #可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple
- print '---------------给函数指定可变参数(参数个数不确定)-----------------------'
- def taxMe2(cost,rate=0.85,*theRest):
- for aRest in theRest:
- cost+=cost+aRest
- print 'arg:',aRest
- return cost+cost*rate
- print taxMe2(10, 0.5,10,11,12,13,14)
- #而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。
- print '---------------给函数指定关键字参数(参数个数不确定)------------------------'
- def taxMe3(cost,rate=0.85,**theRest):
- for key in theRest.keys():
- cost +=theRest[key]
- print key,':',theRest[key]
- return cost+cost*rate
- print taxMe3(00, 0.05, electric=100, water=200, gas=300)
- #在Python中定义函数,可以用必选参数、默认参数、可变参数和关键字参数,
- #这4种参数都可以一起使用,或者只用其中某些,但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数和关键字参数。
- print '--------------给函数指定可变参数+关键字参数------------------------'
- def taxMe4(cost,rate=0.85,*theRest,**theRest2):
- cost2=0
- for forRest in theRest:
- cost2+=forRest
- print 'theRest:',forRest
- for key in theRest2.keys():
- cost+=theRest2[key]
- print 'theRest2:key:',key,',value:',theRest2[key]
- return cost+cost2+(cost+cost2)*rate
- print taxMe4(100, 50,100,150,300, electric=100 ,water=200,gas=30)
结果:
- ---------------给参数指定默认值-----------------------
- 4.25
- ---------------给有默认值的参数指定值-----------------------
- 10
- ---------------给函数指定可变参数(参数个数不确定)-----------------------
- arg: 10
- arg: 11
- arg: 12
- arg: 13
- arg: 14
- 984.0
- ---------------给函数指定关键字参数(参数个数不确定)------------------------
- water : 200
- gas : 300
- electric : 100
- 630.0
- --------------给函数指定可变参数+关键字参数------------------------
- theRest: 100
- theRest: 150
- theRest: 300
- theRest2:key: water ,value: 200
- theRest2:key: gas ,value: 30
- theRest2:key: electric ,value: 100
- 49980
更多关于函数参数的帮助:
Python学习笔记7-把函数当参数传递、指定可变参数的更多相关文章
- Python学习笔记之常用函数及说明
Python学习笔记之常用函数及说明 俗话说"好记性不如烂笔头",老祖宗们几千年总结出来的东西还是有些道理的,所以,常用的东西也要记下来,不记不知道,一记吓一跳,乖乖,函数咋这么多 ...
- Python学习笔记010——匿名函数lambda
1 语法 my_lambda = lambda arg1, arg2 : arg1 + arg2 + 1 arg1.arg2:参数 arg1 + arg2 + 1 :表达式 2 描述 匿名函数不需要r ...
- Python学习笔记:open函数和with临时运行环境(文件操作)
open函数 1.open函数: file=open(filename, encoding='utf-8'),open()函数是Python内置的用于对文件的读写操作,返回的是文件的流对象(而不是文件 ...
- python学习笔记11(函数二): 参数的传递、变量的作用域
一.函数形参和实参的区别 形参全称是形式参数,在用def关键字定义函数时函数名后面括号里的变量称作为形式参数. 实参全称为实际参数,在调用函数时提供的值或者变量称作为实际参数. >>> ...
- Python学习笔记总结(二)函数和模块
一.函数 函数的作用:可以计算出一个返回值,最大化代码重用,最小化代码冗余,流程的分解. 1.函数相关的语句和表达式 语句 例子 Calls myfunc(‘diege', ...
- Python学习笔记4(函数与模块)
1.Python程序的结构 Python的程序由包(package).模块(module)和函数组成. 模块是处理一类问题的集合,由函数和类组成. 包是由一系列模块组成的集合.包是一个完成特定任务的工 ...
- 吴裕雄--天生自然python学习笔记:Python3 函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可以自己创建函数,这 ...
- Python 学习笔记 之 03 - 函数总结
函数总结 最基本的一种代码抽象的方式. 定义函数 使用def语句进行定义, return进行函数返回. 一旦执行导return,函数就执行完毕. 即使函数未指定retur ...
- Python学习笔记五,函数及其参数
在Python中如何自定义函数:其格式为 def 函数名(函数参数): 内容
- Python学习笔记(Ⅱ)——循环/选择/函数
一.循环结构 python中提供了for循环和while循环两种操作,没有do……while语句. 1.for循环: 与其他语言中for循环的常见的写法如for (int i=0;i<10;i+ ...
随机推荐
- Oracle EBS-SQL (QA-2):检查接收未检验.SQL
SELECT rsh.receipt_num 收据号, pov.vendor ...
- KeyEvent
http://blog.csdn.net/elfylin/article/details/8008763 一. 接口KeyEvent.Callback和View.OnKeyListener 二. 流程 ...
- Ubuntu Mysql开通外网访问权限
Ubuntu Mysql开通外网访问权限 1.编辑 my.cnf 文件: sudo vi /etc/mysql/my.cnf 2.将绑定地址行注释掉或者修改为指定 IP #bind-addre ...
- 让Maven正确处理javac警告
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.1:compile (default ...
- 必学100个常用linux命令大全
1,echo “aa” > test.txt 和 echo “bb” >> test.txt //>将原文件清空,并且内容写入到文件中,>>将内容放到文件的尾部 2 ...
- css案例学习之relative与absolute
代码 <!DOCTYPE html PUBliC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.o ...
- thinkphp中神奇的create()方法
正常的表单提交会把所有的表单数据提交上来 $data = $_POST; print_r($data);exit; 结果 Array ( [status] => 1 [comment] => ...
- 将常见对象转换成json字符串
public class JsonUtil { public static String objectTojson(Object obj) { StringBuilder json = new Str ...
- MS Sql 查询数据库连接数
SELECT * FROM [Master].[dbo].[SYSPROCESSES] WHERE [DBID] IN (SELECT [DBID]FROM [Master].[dbo].[SYSDA ...
- magento产品导入时需要注意的事项
(1) 必须保证csv文件是utf-8编码的.非utf-8的编码会导致产品导入失败 (2)产品图片 (a) 产品图片必须包含image,image_label,_media_image,_media_ ...