本节将学习如何用Python定义函数,调用函数,以及学习匿名函数的使用

1.定义函数

Python中定义函数用关键字def,如下例所示,func为函数名

def func():

print( "hello world")

2.函数参数

一个函数可以有0个或多个形式参数:

def test_add(x, y):

print (x + y)

函数的形式参数值可以初始化,使用了初始值的参数,在调用的时候可以不需要指定该参数。

def test_sum(z, x = 1, y = 0):

print(x + y + z)

调用函数:

test_sum(3) #   将打印出:4

test_sum(10, y = 1) # 将打印出:12

test_sum(y = 1, x = 2, z = 10) #将打印出:13

注意:定义函数时,没有初始化的形式参数必须放在初始化形式参数的前面,否则会报错

调用函数时,必须指定未初始化的参数,且参数的顺序要与函数定义的参数顺序一致(除非调用时指定了参数名)

3.函数返回值

Python函数可以通过return语句返回函数值,如果没有return语句或者return语句后什么都没有,函数将返回:None

字典形参(**args)例子:

def test_dict(a,**b):

print('a is:',a)

print( 'b is:',b)

调用函数方法一:

tict={'x':1, 'y':2,'z':3}

test_dict(10, **tict)

调用函数方法二:

test_dict(10,x=1,y=2,z=3)

输出结果:

>>>

a is: 10

b is: {'y': 2, 'x': 1, 'z': 3}

元组形参(*args)例子:

def test_tuple(a,*b):

print( 'a is :' ,a)

print( b)

调用函数方法一:

tup = ('a', 1, 2, 'b')

test_tuple(1, *tup)

调用函数方法二:

test_tuple(1, 'a', 1, 2, 'b')

输出结果:

>>>

a is : 1

('a', 1, 2, 'b')

5.匿名函数

Python可以用关键字lambda定义一个匿名函数,当需要一个函数类型的对象时,可以创建一个匿名函数来实现

def test_lambda(x):

return lambda x:x+y     #这里将返回一个函数对象

函数调用:

f=test_lambda(10)  #创建了一个函数对象:f

print( f(5) )       #将会打印出:15

6.要点记录

当多次调用一个具有初始化参数的函数时,该参数只会在第一次调用时被初始化一次。 这使得当形式参数为可变对象,如:列表、字典或者类的实例时,其结果可能和我们预期的不一样:

def test_param(x=[]):

x.append(10)

print(x)

多次调用函数(可能我们希望调用函数的结果是:都打印出列表[10]):

testParam()

testParam()

testParam()

testParam()

实际输出结果:

>>>

[10]

[10, 10]

[10, 10, 10]

[10, 10, 10, 10]

当形式参数为不可变对象时,又是怎样的情况呢?我们再观察另一个例子:

def testParam(x = 2):

x=x + 2

print(x)

调用函数:

testParam()

testParam()

testParam()

testParam()

实际输出结果:

>>>

4

4

4

4

备注:

python中,万物皆对象。

python中不存在所谓的传值调用,一切传递的都是对象的引用,也可以认为是传址。

不可变对象(immutable):int、字符串(string)、float、(数值型number)、元组(tuple)

可变对象(mutable):字典型(dictionary)、列表型(list)、类的实例

python定义一个匿名函数使用什么关键字_python3----函数、匿名函数相关推荐

  1. Python -- 定义一个函数,判断输入的数是不是质数

    Python – 定义一个函数,判断输入的数是不是质数 质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数,否则称为合数. #定义一个函数,判断该数是不是质数 def sum(n): ...

  2. python定义一个人类_python基础课程 第9章 面向对象编程(上) 一场人类进化史

    日月灿烂,若出其中,星汉灿烂,若出其里. -- 曹操.观沧海 东汉末年 人类文明以降,总会有无数的人通过对世界的观察和思考去总结我们从哪里来,要往哪里去. 遥远的古代我们的祖先通过想象力把数字变成了符 ...

  3. python定义一个空数组_python数组 1_python 数组最后一个元素_python定义一个空数组 - 云+社区 - 腾讯云...

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 感悟: 1.python列表操作里不允许变量类型的指针2.case1类似于冒泡排 ...

  4. 使用python定义一个神经网络结构

    使用python定义一个神经网络 python定义一个神经网络是进行深度学习或者实现神经网络的基础,那么如果定义一个深度神经网络的结构呢? import numpy as np class Netwo ...

  5. python 定义一个无限制的二维数组方法

    python 定义一个无限制的二维数组方法 自定义二维数组方式 n = int(input()) mapL = [list(map(int,input().split())) for _ in ran ...

  6. python定义一个数据自动去重的函数_110道Python面试题(真题小结)

    该文110道面试题全部来自于大家笔试面试时候拍照后发到群里求助的题目,并自己一道一道亲自做了,大部分题目属于巩固基本python知识点的题目,希望对基本知识不熟悉的同学,能认真做一遍,肯定会有不少收获 ...

  7. python定义一个函数列表排序_Python 列表(修改、添加、删除、排序)

    Python的基本数据类型有整数,浮点数,布尔,字符串,它们是最基本的数据.在实际编程中,我们要经常组织由很多基本数据组成的集合,这些集合的不同组织方式就是:数据结构,今天讲的是数据结构中的Pytho ...

  8. 用Python定义一个求绝对值的函数

    在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号,然后,在缩进块中编写函数体,函数的返回值用return语句返回.      我们以自定义一个求绝对值的my_a ...

  9. python定义一个求和函数_Python定义函数实现累计求和操作

    一.使用三种方法实现0-n累加求和 定义函数分别使用while循环.for循环.递归函数实现对0-n的累加求和 1.使用while循环 定义一个累加求和函数sum1(n),函数代码如下: 2.使用 f ...

最新文章

  1. Runnable接口和贪心算法
  2. java实现单向链表
  3. 前端小知识点(3):JavaScript 单线程
  4. python气象_Python 在气象上的应用
  5. OpenCV3学习(4.2)——图像常用滤波方法(方框、均值、高斯、中值、双边)
  6. wikipedia_教职员工可以通过Wikipedia进行教学吗?
  7. TypeScript 中类型 any,void,unknown,never之间的区别
  8. 如何定时备份远程mysql数据库
  9. Opencv图像数据结构剖析
  10. 《集体智慧编程》第8章 构建价格模型 个人笔记
  11. 山东大学软件学院计算机组成原理课程设计实验二
  12. 关于服务端渲染/预渲染/数据直出/页面直出的学习总结
  13. 用计算机0和1表达难舍之情,表达不舍之情的说说
  14. python发音小程序
  15. 自适应滤波器原理——新息过程
  16. Invalid prop: type check failed for prop “total“. Expected Number with value x, got String with valu
  17. 轻松清除Alcohol 120%的使用记录
  18. wxWidgets中从xrc文件中获取菜单选项的指针
  19. Android Vitamio的使用
  20. GTA5实用载具、人物、武器、工具、脚本、地图添加

热门文章

  1. 【图像超分辨率重建】——HAN论文阅读笔记
  2. 小孩上楼梯的方式的种类
  3. 我在MTK平台下调试音频ALSA
  4. 支持win7的无损分区大小调整软件
  5. 中软国际中期顶岗实习第一天
  6. 壳的编写(2)-- 编写壳(Stub)部分(1)
  7. Zabbix agent2安装
  8. js验证开始日期不能大于结束日期_js如何判断开始时间不能大于结束时间
  9. 戏说cosplay武媚娘传奇
  10. 一种万能解锁的解决方法