day3-python的函数及参数
2024-09-02 05:10:04
函数式编程最重要的是增强代码的重用性和可读性
1
2
3
4
|
def 函数名(参数): ... 函数体 ... |
函数的定义主要有如下要点:
def:表示函数的关键字
函数名:函数的名称,日后根据函数名调用函数
函数体:函数中进行一系列的逻辑计算,如:发送邮件、计算出 [11,22,38,888,2]中的最大数等...
参数:为函数体提供数据
返回值:当函数执行完毕后,可以给调用者返回数据。
以上要点中,比较重要有参数和返回值:
1、返回值
函数是一个功能块,该功能到底执行成功与否,需要通过返回值来告知调用者。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
def 发送短信(): 发送短信的代码... if 发送成功: return True else : return False while True : # 每次执行发送短信函数,都会将返回值自动赋值给result # 之后,可以根据result来写日志,或重发等操作 result = 发送短信() if result = = False : 记录日志,短信发送失败... |
2.参数
函数的有三中不同的参数:
普通参数
默认参数
动态参数
普通参数:
普通参数的传递并没有个数和数据类型的限制,可以传递字符串,数字,列表和字典。也不限定个数,需要注意的是:函数需要多少参数,调用的时候就要按照它定义时的顺序和数据类型传递过去。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
def argtest(name,age,fruit_lst,hobby_dic): print 'Hello,me name is %s,i\'m %d year\'s old' % (name,age) print 'My favorite fruits are : %s' % '.' .join(fruit_lst) print 'My hobbies:' 5 for hobby in hobby_dic: print '\t%s' % hobby_dic[hobby] lst = [ 'www' , 'biyao' , 'com' ] dic = { 'hobby one' : 'read' , 'hobby two' : 'sport' } argtest( 'Bruce' , 18 ,lst,dic) 输出内容: Hello,me name is Bruce,i 'm 18 year' s old My favorite fruits are : www.biayo.com My hobbies: read sport |
默认参数:
默认参数是给参数加上一个默认的值,但我们调用函数的时候,如果传递了这个参数,那么使用我们传递过来的值;如果不传则使用默认的值,默认参数可以有多个,但是必须放在所有参数的最后。当我们有多个默认参数的时候,调用函数的时候可以使用参数名指定其中的某一个参数,以保证参数能准确的传递给被调用的函数。
1
2
3
4
5
6
7
8
9
10
|
def argvtest(argv1,argv2 = 'aaa' ,argv3 = 'bbb' ): print 'argv1:' ,argv1 print 'argv2:' ,argv2 print 'argv3:' ,argv3 argvtest( 'a1' ,argv3 = 'a2' ) 输出的内容: argv1: a1 argv2: aaa argv3: a2 |
动态参数:
def func(*args) 接受多个参数,内部自动构造元组,序列前加*,避免内部构造元组
def func(**kwargs) 接收多个参数,内部自动构造字典,序列前加**,直接传递字典
def func(*args,**kwargs):接受多个参数,既可以自动构造元组,又可以自动构造字典。
下图从左至右展示了自动构造元组,自动构造字典及前两者综合的参数传递方式:
最新文章
- python对Mysql操作和使用ORM框架(SQLAlchemy)
- 【leetcode】 Interleaving String (hard)
- python多进程程序之间交换数据的两种办法--Queue和Pipe
- MessageBox
- HDU 1171(01背包)
- SQL查询优化
- IOS中单例NSUserDefaults的使用(转)
- spring MVC处理请求过程及配置详解
- 《Google软件测试之道》【PDF】下载
- 搞懂spring事务
- C语言用regcomp、regexec、regfree和regerror函数实现正则表达式校验
- css流式布局
- 在js或jquery中动态添加js脚本【转】
- oracle-------window安装
- (转)Python网络爬虫实战:世纪佳缘爬取近6万条数据
- Educational Codeforces Round 49 (Rated for Div. 2)A到C题
- iOS App让自己的应用在其它应用中打开列表中显示
- Jenkins自动化构建(二)众多问题
- 【Java】【泛型】
- Redis-HA高可用方案Sentinel配置
热门文章
- 基于jQuery的让非HTML5浏览器支持placeholder属性的代码(转)
- HTML中让表单input等文本框为只读不可编辑但可以获取value值的方法;让文本域前面的内容显示在左上角,居中
- poj2987 Firing 最大权闭合子图 边权有正有负
- Shell面试题4:扫描网络内存活主机案例
- sql server 2008安装要求
- 【BZOJ】1656:[Usaco2006 Jan]The Grove 树木(bfs+特殊的技巧)
- smartJS 0.1 API 讲解 - FlowController
- HTTP请求的过程&;HTTP/1.0和HTTP/1.1的区别&;HTTP怎么处理长连接
- mybatis总结(二)
- DefaultActionInvocation类的执行action