1.introduction

函数是重用的程序段。允许给一块语句起一个名称,然后可以在程序的任何地方使用这个名称,任意多次地运行这个语句块。这被称为函数调用。在Python1中我们已经用过内建函数,比如len和range。

函数通过def关键字定义。def关键字后跟一个函数的标识符名称,然后跟一对圆括号。圆括号之中可以包括一些变量名,该行以冒号结尾。接下来是一块语句,它们是函数体。

2.函数形参

函数取得的参数是提供给函数的值。这些参数就像变量一样,只不过它们的值是在我们调用函数的时候定义的,而非在函数本身内赋值。参数在函数定义的圆括号对内指定,用逗号分割。当我们调用函数的时候,我们以同样的方式提供值。

#function_para.py
def printMax(a,b):if a>b:print a, 'is maximum';else:print b, 'is maximum';printMax(3,4); #poss parameters

3.局部变量

在函数定义内声明变量的时候,它们与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是局部的。这称为变量的作用域 。所有变量的作用域是它们被定义的块,从它们的名称被定义的那点开始。

#functionLocal.py
def func(x):print 'x is ', x;x = 10;print 'Change x to local is ', x;x = 100;
func(x);
print 'x is still',x;

4.默认参数值

对于一些函数,可能希望它的一些参数是可选的,如果用户不想要为这些参数提供值的话,这些参数就使用默认值。这个功能借助于默认参数值完成。可以在函数定义的形参名后加上赋值运算符(=)和默认值,从而给形参指定默认参数值。注意,默认参数值应该是一个参数。更加准确的说,默认参数值应该是不可变的。

#function_default.py
def say(message,time=2):print message*time;say('Hello');
say('Hello',10);

5.关键参数

如果某个函数有许多参数,而只想指定其中的一部分,那么可以通过命名来为这些参数赋值,这被称作关键参数。使用名字而不是位置来给函数指定实参。这样做有两个优势 :1.由于不必担心参数的顺序,使用函数变得更加简单了;2.假设其他参数都有默认值,可以只给我们想要的那些参数赋值。

#function_key.py
def func(a,b=10,c=20):print 'a is :', a;print 'b is :', b;print 'c is :', c;func(3,7);
func(25,c=24);
func(c=100,a=0);

6.return语句

return语句用来从一个函数返回即跳出函数,从函数返回一个值 。

#func_return.py
def maximum(x,y):if x > y :return x;else:return y;print maximum(100,10);

7.DocString语句

Python有一个很奇妙的特性,称为文档字符串 ,通常简称为 docstrings 。DocStrings是一个重要的工具,由于它帮助你的程序文档更加简单易懂,你应该尽量使用它。你甚至可以在程序运行时,从函数恢复文档字符串!

#func_doc.py
def printMax(x,y):'''Prints the maximun of two numbers,The two value must be in tegers.''';x = int(x);y = int(y);if x > y :print x, ' is maximun.';else:print y, ' is maximum.';printMax(3.2,6.9);
print printMax.__doc__

python2:function相关推荐

  1. Python2.x与3​​.x版本区别

    Python的3 .0版本,常被称为Python 3000,或简称Py3k.相对于Python的早期版本,这是一个较大的升级. 为了不带入过多的累赘,Python 3.0在设计的时候没有考虑向下相容. ...

  2. python输入语句-python2 和 pyhton3 输入语句写法

    Python的输入语句类型 1 python2的输入语句 在python2中有两种常见的输入语句,input()和raw_input(). (1)input()函数 可以接收不同类型的参数,而且返回的 ...

  3. python3报错:importError: dynamic module does not define module export function (PyInit_cv_bridge_boost

    1 在使用python3调用cv_bridge报错 1.在使用python3调用cv_bridge报错:importError: dynamic module does not define modu ...

  4. ueditor版本python3_GitHub - crazyinstall/DjangoUeditor3: Django Ueditor 兼容Python3改进,Python2上也可用...

    本模块帮助在Django应用中集成百度Ueditor HTML编辑器,Django是Python世界最有影响力的web框架. Ueditor HTML编辑器是百度开源的在线HTML编辑器,功能非常强大 ...

  5. python map lambda 分割字符串_python之lambda、filter、map、reduce的用法说明(基于python2)...

    python中有一些非常有趣的函数,面试的时候可能会遇到.今天也来总结一下,不过该类的网上资料也相当多,也没多少干货,只是习惯性将一些容易遗忘的功能进行整理. lambda 为关键字.filter,m ...

  6. python2异步编程_最新Python异步编程详解

    我们都知道对于I/O相关的程序来说,异步编程可以大幅度的提高系统的吞吐量,因为在某个I/O操作的读写过程中,系统可以先去处理其它的操作(通常是其它的I/O操作),那么Python中是如何实现异步编程的 ...

  7. python 2x与python 3x是否兼容_使.next()与Python2和3兼容

    不要直接调用.next()方法.在迭代器上使用^{} function:for u in up: head = next(u)[1:].strip() q = "".join(s. ...

  8. 【Python2】Keras_ResNet 在Cifar10数据集上分类,Flask框架部署目标检测模型

    文章目录 1.导入库 2.数据准备 2.1 加载训练集 2.2 加载测试集 2.3 对类别做One-Hot编码 2.4 对图片像素的0-255值做归一化,并减去均值 3.搭建神经网络 3.1 定义函数 ...

  9. Python2 常见问题

    Python编程时遇到过一些问题,整理了以下内容,含解决办法. 1.SyntaxError: Non-ASCII character '\xe4' in file 文件中出现了中文,且没有编码声明,P ...

最新文章

  1. MVC ---- EF高级增删改
  2. POJ - 1961 最小循环节
  3. 用 Go 构建一个区块链 -- Part 6: 交易(2)
  4. 第5章 定时器Timer
  5. CSS3实现多样的边框效果
  6. linux attach 指令,以太坊实战-attach命令详解
  7. Java SecurityManager checkAwtEventQueueAccess()方法与示例
  8. shopxo二次开发:博客系统项目 (后台使用 - 教程篇)
  9. 大数据上的“大产品”
  10. Python还能走多远?
  11. placeholder字体大小以及颜色的修改
  12. java的 jre是什么_Java中JRE介绍,JRE是什么
  13. 需求分析师如何分析功能性需求
  14. javascript动态插入html元素
  15. 音频-音频术语名词解释
  16. 解决 Java poi 3.8 等版本 操作 word 插入 图片 不成功的问题
  17. Parameter Attribute
  18. C语言用数组1. 简单约瑟夫环问题: N个人,编号从1~N围成一圈,输入一个数T,从1号开始报数,报到T的人出圈;下一人又从1开始报数,下一个报到T的人出圈,输出出圈顺序。 考虑问实现约瑟夫环问题
  19. python自动刷新12306抢票
  20. 什么是范式?第一范式、第二范式、第三范式的区别?

热门文章

  1. 关于javascript中的回调函数
  2. Android测试中被测应用挂了怎么办?
  3. 虚拟机配置网络eth1
  4. 树的更多相关算法-3
  5. windowsDOS命令
  6. 程序员相亲记之准博士mm
  7. nyist-508(余数求和)
  8. Codeforces Round #587 (Div. 3)
  9. jsonpath的用法
  10. jquery-validae