稍微学过其他编程语言的人都应该了解函数的概念。在这里就不做过多的介绍。

Python内置了很多有用的函数,我们可以也直接调用。

可以直接从Python的官方网站查看文档:
http://docs.python.org/2/library/functions.html

类似于之前在介绍List的range() ,用于list切片介绍的zip()函数等等。都是python内置函数库提供的API。

但是python的有些内置函数需要引用包(类型于C语言的头文件)。在程序开头引用包,举个例子:

import math //引用#math包

函数定义

在Python中,定义一个函数要使用 def 语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用 return 语句返回。

举个例子:定义一个 square_of_sum 函数,它接受一个list,返回list中每个元素平方的和。

def square_of_sum(L):
sum = 0
for x in L:
sum += x*x
return sum

函数返回多值

在python中,函数也可以返回多个值。大家要记得,如果Python的函数返回多值其实就是返回一个tuple类似对象。

>>> def my_getvalue(x,y):
... if y==0:
... return
... a = x/y
... b = x%y
... return a,b
...
>>> print my_getvalue(11,5)
(2, 1)

定义默认参数

定义函数的时候,还可以有默认参数。

例如Python自带的 int() 函数,其实就有两个参数,我们既可以传一个参数,又可以传两个参数:

>>> int('')
123
>>> int('', 8)
83

int()函数的第二个参数是转换进制,如果不传,默认是十进制 (base=10),如果传了,就用传入的参数。

函数的默认参数的作用是简化调用,你只需要把必须的参数传进去。但是在需要的时候,又可以传入额外的参数来覆盖默认参数值。

注意:由于函数的参数按从左到右的顺序匹配,所以默认参数只能定义在必需参数的后面:

# OK:
def OK1(a, b=1, c=2):
pass
# Error:
def Fail1(a=1, b):
pass

举个例子:定义一个 greet() 函数,它包含一个默认参数,如果没有传入,打印 'Hello, world.',如果传入,打印 'Hello, xxx.'

>>> def greet(name = 'world'):
... print 'Hello,',name,'.'
...
>>> greet()
Hello, world .
>>> greet('python')
Hello, python .

定义可变参数

如果想让一个函数能接受任意个参数,我们就可以定义一个可变参数。

可变参数的名字前面有个 号,我们可以传入0个、1个或多个参数给可变参数。

>>> def fu(*args):
... print args
...
>>> fu()
()
>>> fu('a')
('a',)
>>> fu(1,2,3)
(1, 2, 3)

Python解释器会把传入的一组参数组装成一个tuple传递给可变参数,因此,在函数内部也可以直接把变量 args 看成一个 tuple 类型对象。

举个例子:编写接受可变参数的 average() 函数。(求平均)

>>> def average(*args):
... length = len(args)
... if length ==0:
... return 0.00
... else:
... return (sum(args)*1.0)/length
...
>>> print average(1,2)
1.5
>>> print average(1,2,3,4,5)
3.0

小结:函数对应python来讲,是比较实用的。

python学习第十天 -- 函数的更多相关文章

  1. python学习第二十九天函数局部变量如何改变外部变量

    python函数局部变量如何改变外部变量,之前我说过,局部变量是没办法改变外部变量的,除非局部变量找不到,去外部找,输出变量,使用关键词global 使变量改变外部变量. 1,使用关键词global ...

  2. Python学习第十篇——函数初步

    def make_album(name,album_name,song_nums = 1): dict_album = {name:[album_name]} if int(song_nums) &g ...

  3. Python 学习 第十篇 CMDB用户权限管理

    Python 学习 第十篇 CMDB用户权限管理 2016-10-10 16:29:17 标签: python 版权声明:原创作品,谢绝转载!否则将追究法律责任. 不管是什么系统,用户权限都是至关重要 ...

  4. Python学习笔记之常用函数及说明

    Python学习笔记之常用函数及说明 俗话说"好记性不如烂笔头",老祖宗们几千年总结出来的东西还是有些道理的,所以,常用的东西也要记下来,不记不知道,一记吓一跳,乖乖,函数咋这么多 ...

  5. Python学习笔记010——匿名函数lambda

    1 语法 my_lambda = lambda arg1, arg2 : arg1 + arg2 + 1 arg1.arg2:参数 arg1 + arg2 + 1 :表达式 2 描述 匿名函数不需要r ...

  6. python学习交流 - 内置函数使用方法和应用举例

    内置函数 python提供了68个内置函数,在使用过程中用户不再需要定义函数来实现内置函数支持的功能.更重要的是内置函数的算法是经过python作者优化的,并且部分是使用c语言实现,通常来说使用内置函 ...

  7. Python学习之路6☞函数,递归,内置函数

    一python中的函数 函数是逻辑结构化和过程化的一种编程方法. python中函数定义方法: def test(x): "The function definitions" x+ ...

  8. [python学习] 语言基础—排序函数(sort()、sorted()、argsort()函数)

    python的内建排序函数有 sort.sorted两个. 1.基础的序列升序排序直接调用sorted()方法即可 ls = list([5, 2, 3, 1, 4]) new_ls = sorted ...

  9. Python学习笔记(Ⅱ)——循环/选择/函数

    一.循环结构 python中提供了for循环和while循环两种操作,没有do……while语句. 1.for循环: 与其他语言中for循环的常见的写法如for (int i=0;i<10;i+ ...

随机推荐

  1. Android事件监听器Event Listener

    在 Android 中,我们可以通过事件处理使UI与用户互动(UI Events). UI的用户事件处理,即View处理用户的操作,在应用程序中几乎不可避免.View是重要的类,它是与用户互动的前线: ...

  2. 转:redis windows下的环境搭建

    原文来自于:http://www.2cto.com/os/201204/125971.html   下载地址:https://github.com/dmajkic/redis/downloads 下载 ...

  3. ECMA 6 记入

    好书推荐 : http://es6.ruanyifeng.com/ String.prototype -includes, startsWith, endsWith -padStart, padEnd ...

  4. Javascript Promise 学习 (中)

    时隔多日,对promise有了多一点点的了解. 最近用angularjs 做开发,所以研究了一下它的 $q 功能不算很强大,算是简化版的 Q.js 参考了一下源码,不过我的等级还差很多... 作为学习 ...

  5. 使用SQLiteDatabase进行数据库操作的步骤

    1.获取SQLiteDatabase对象,它代表了与数据库的连接.2.调用SQLiteDatabase的方法来执行SQL语句.3.操作SQL语句的执行结果,比如用SimpleCursorAdapter ...

  6. 【网贷投资手册】P2P行业揭秘

    [网贷投资手册]P2P行业揭秘     (中国电子商务研究中心讯)如果你手头有100元,你会拿它来做什么?跟好朋友去吃一顿?跟女朋友去看场电影?还是……你会想到拿100元去投资吗?100元太少了,买一 ...

  7. Android中Chronometer 计时器和震动服务控件

    Chronometer 计时器控件 首先在布局文件中添加chronometer控件:然后在mainActivity中获取到该控件 4 然后通过Button时间监听器中开启计时操作 5 chronome ...

  8. Java 反射机制详解

    动态语言 动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化.比如众所周知的ECMAScript(JavaScript)便是一个动态语言.除此之外如Ru ...

  9. javascript--瀑布流

    简单瀑布流代码实现 html代码例如以下 <!DOCTYPE html> <html> <head> <meta http-equiv="Conte ...

  10. [置顶] Android系统访问控制之Smack安全策略设计与实现

    1. 制定smack规则 “Zygote”进程由init进程创建,它负责创建系统服务进程“systemserver”.“radio”进程和APP进程.其中“radio”进程的uid是1001,它能够实 ...