python一定程度上和matlab很类似,存在较多的内置函数,供用户直接调用。通常来说,调用函数需要知道函数的名称和需要传入的参数,比如绝对值函数abs,可以在交互式命令行通过help(abs)查看abs函数的帮助信息。
调用abs函数:

>>>abs(100)
>100
>>>abs(-5)
>5

调用函数时,如果传入参数不对,系统会报错。

数据类型转换
python内置的常用函数通常包括数据类型转换,比如int()函数可以把数据类型转化为整数。

>>>int('123')
>123
>>>float('1.23')
>1.23
>str(1.23)
>'1.23'
>bool(1)
>True

韩树明其实对于一个函数对象的引用,可以使用如下方法,通过别的名称调用函数

>>>abs_new = abs
>>>abs_new(-1)
>1

函数的定义
和其他编程语言一样,用户可以定义自己写的函数,如下图所示自行定义一个简单的运算函数。

def my_function(x):result = 5*xreturn result

函数的运行结果使用return返回,如果没有return语句,函数的返回值为None。
函数可以返回多个值,可以采用多个变量进行接收,但函数返回多个值,通常是以tuple的形式保存,也就是说函数真正返回的是一个tuple,多个变量可以同时接收一个tuple,按位置对其进行赋值。定义函数的过程中,需要确定函数的名字和参数个数。

函数的参数设置

对于用户来说,在调用函数的时候,只需要向函数传递了正确的参数即可,函数内部被封装起来,调用的时候无需了解。python的参数除了必选参数外,还可以使用默认参数、可变参数和关键字参数。

默认参数
比如调用python的power()的函数,默认计算参数的平方,如果计算参数的立方、四次、五次方的时候,可以对函数进行如下定义。

def power(x,n):s = 1while n>0:n = n - 1s = s * xreturn s

经过如此定义后的power()函数,可以计算任意n次方,但之前的计算参数平方的power()函数就不能正常使用了,因为之前的函数给定的是一个参数,直接计算参数的平方。但经过我们修改过后,函数要求调用的时候提供两个参数,这个时候我们可以使用默认参数解决这个问题,可以把函数的第二个参数默认值设置为2:

def power(x,n = 2):s = 1while n>0:n = n - 1s = s * xreturn s

对函数进行这样的定义的话,当调用power(4)的时候,默认在调用power(4,2)。但如果想计算参数的其他次幂的话,就需要指明函数的参数。

在使用默认参数的时候,通常有以下几点需要注意:
1)函数的必选参数在前,默认参数在后,因为如果默认参数在前的话,系统会把你给定的第二个参数认定为第一个默认参数的给定值;
2)当函数由多个参数时,把变化大的参数放在前,变化小的参数放在后面。
默认参数降低了函数的调用难度,一旦需要复杂的调用时候,又可以传递更多的参数来实现,而不需要重新对函数进行定义。但有一点需要注意,默认参数必须只想不变对象。

可变参数

在python的函数调用中,传入的参数个数是可变的,可以是任意个。比如给定一组数A,B,C…,计算其平方的和。要定义出这个函数,必须确定输入参数,由于参数不确定,可以使用list将参数传进来,函数可以被定义如下。

def calc(numbers):sum = 0for n in numbers:sum = sum + n * nreturn sum

使用这种方式调用函数,就需要先定义出一个list。

>>>calc([1,2,3])
>14

对于这种函数可变的参数,可以使用如下方式。

def calc(*numbers):sum = 0for n in numbers:sum = sum + n * nreturn sum

定义可变参数和定义list参数相比,仅在参数前加了一个*号,在函数内部,参数numbers接收的是一个tuple。因此,函数代码完全不变,调用该函数时,可以传入任意个参数,包括0个参数。

>>>calc(1,2)
>5
>>>cals()
>0

关键字参数
可变参数允许你0个或任意个参数,这些可变参数在调用时候自动组装成一个tuple。使用关键字参数,允许你穿入0个或者人一个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。

def person(name, age, **kw):print 'name:', name, 'age:',age,'other:',kw

函数person除了必选参数name和age外,还接受关键字参数kw,在调用该函数时,可以只传入必选参数,也可以传入任意个数的关键字参数。

>>> person('Bob', 35, city='Beijing')
>name: Bob age: 35 other: {'city': 'Beijing'}
>>> person('Adam', 45, gender='M', job='Engineer')
>name: Adam age: 45 other: {'gender': 'M', 'job': 'Engineer"}

使用关键字参数可以对函数进行拓展,在上例中,保证能够接收name和age两个参数,但是如果调用者提供更多的参数,同样可以接收。

参数组合
在Python中定义函数,可以用必选参数、默认参数、可变参数和关键字参数,这4种参数都可以一起使用,或者只用其中某些,但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数和关键字参数。

比如定义一个函数,包含上述4种参数:

def func(a, b, c=0, *args, **kw):print 'a =', a, 'b =', b, 'c =', c, 'args =',   args,'kw =', kw
>>> func(1, 2)
a = 1 b = 2 c = 0 args = () kw = {}
>>> func(1, 2, c=3)
a = 1 b = 2 c = 3 args = () kw = {}
>>> func(1, 2, 3, 'a', 'b')
a = 1 b = 2 c = 3 args = ('a', 'b') kw = {}
>>> func(1, 2, 3, 'a', 'b', x=99)
a = 1 b = 2 c = 3 args = ('a', 'b') kw = {'x': 99}

Python学习笔记(9):函数调用与定义相关推荐

  1. Python学习笔记之五:类定义

    这里,我定义了一个类,初始化函数,Show函数,并且定义了文档字符串,使用了help函数和__doc__来调用文档字符串 >>> class FooClass(object):&qu ...

  2. Python学习笔记:利用timeit计算函数调用耗时

    Python学习笔记:利用timeit计算函数调用耗时 一.timeit模块简介 Timer对象包含两个参数:第一个参数是你想要计时的Python语句,第二个参数运行一次来建立测试. 默认情况time ...

  3. 廖Python学习笔记一

    1. 廖Python学习笔记 大的分类 如函数 用二级标题,下面的用三级 如输入输出 1.1.1. 输入输出 1.1.1.1. 输出 用 print() 在括号里加上字符串,就可以向屏幕上输出指定的文 ...

  4. python 学习笔记 (核心)

    python    学习笔记 (核心) Python解释器从头到尾一行接一行执行脚本 # -*- coding: UTF-8 -*-    //字符编码 不区分单引号和双引号,x='hello',x[ ...

  5. [转载] Python学习笔记——用装饰器decorator和Memoization记忆化提高效率,原理讲清楚了

    参考链接: 在Python中使用装饰器进行记忆 Python学习笔记--用装饰器decorator和Memoization记忆化提高效率 装饰器Memoization记忆化运用`functools`中 ...

  6. Python学习笔记(1)---B站黑马程序员

    Python学习笔记(1)-B站黑马程序员 Python学习笔记(2)-B站黑马程序员 Python学习笔记(3)-B站黑马程序员 文章目录 Linux基础 Python基础 一.Python介绍 0 ...

  7. python学习笔记,初学者Python3

    Python学习笔记 不推荐将python作为主力语言,但推荐作为一个辅助语言,用于日常的一些小的任务 python目前主要的应用场景: 1.机器学习,人工智能 2.爬虫 3.数据分析 4.自动化,运 ...

  8. Python 学习笔记——入门

    文章目录 〇.Python 是什么 一.推荐的教程 二.这篇学习笔记适合什么人 三.环境 1. 操作系统 对于 Windows 对于 Ubuntu 对于其他操作系统 2. Python 对于 Wind ...

  9. Python学习笔记:第十站 水晶球不调用不动

    Python学习笔记 文章目录 Python学习笔记 第十站 水晶球不调用不动 1. 函数的创建和调用 2. 函数的参数传递 3. 函数的返回值 4. 函数的参数定义 5. 变量的作用域 6. 递归函 ...

  10. 【Python学习笔记】第八章 函数

    [Python学习笔记]第八章 函数 文章目录 [Python学习笔记]第八章 函数 前言 8.1 定义函数 8.2 调用函数 8.2.1 使用位置参数调用函数 8.2.2 使用关键字参数调用函数 8 ...

最新文章

  1. Linux Centos 上一些常用的命令
  2. Leetcode 168. Excel表列名称 解题思路及C++实现
  3. 同步装饰器来替换线程安全类
  4. Windows环境下多线程编程原理与应用读书笔记(8)————信号量及其应用
  5. 奥鹏19春计算机应用基础,19春西南交《计算机应用基础》在线作业二(答案)-...
  6. 机试:Python的代码模板、OJ技巧
  7. 计算机电脑配置ppt,计算机应用基础之word2010课件.ppt
  8. UG NX二次开发(C#)-分析-测量体对象的体积
  9. HTML+CSS+JS在线客服对话框迷你版
  10. 生成mysql.sock_mysql.sock不在了,怎么手工创建一个,并设置相应属性
  11. c语言for死循环的作用,for循环死循环语句
  12. Android,什么是MVP模式?
  13. Deepin搭建Qt5开发环境
  14. 任正非语录(华为家事)
  15. [4G/5G/6G专题基础-154]: 5G无线准入控制RAC(Radio Admission Control)+ 其他准入控制
  16. ubuntu下的android JNI入门DEMO
  17. aardio web.blink打开网址
  18. 在家也能办公之上网和远程控制服务器
  19. AMOS分析技术:斜交验证性因子分析;介绍如何整理出能够放入论文的模型信效度结果
  20. matlab对实部与虚部求模,模板2

热门文章

  1. Linux下压缩某个文件夹(文件夹打包)
  2. 程序验证(六):纳尔逊-欧朋算法(Nelson-Oppen Procedure)
  3. 树莓派开发笔记(十):Qt读取ADC模拟量电压(ADS1115读取电压模拟量)
  4. python 密码生成器
  5. 学生学籍管理系统数据库
  6. 创建物理卷报错Can‘t open /dev/sdb5 exclusively. Mounted filesystem的问题解决过程记录
  7. 在雨雾中穿行--张家界之旅786
  8. 计算机网络工程专业大学排名,2021网络工程专业大学排名 最好大学排行榜
  9. PHP工程改成微擎的步骤_微擎系统搭建
  10. java导出excel设置行高列宽_POI精确设置Excel的行高和列宽