1.函数的介绍

在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数

定义函数的规则:

  1. 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
  2. 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
  3. 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
  4. 函数内容以冒号 : 起始,并且缩进。
  5. return [表达式] 结束函数,选择性地返回一个值给调用方,不带表达式的 return相当于返回 None。

2.函数的定义和调用

格式如下:

def 函数名():执行语句
函数名()    #调用函数

实例:

def info():print("人生苦短我用python")
info()

定义了函数之后,就相当于有了一个具有某些功能的代码,想要让这些代码能够执行,需要调用它
调用函数很简单的,通过 函数名() 即可完成调用
每次调用函数时,函数都会从头开始执行,当这个函数中的代码执行完毕后,意味着调用结束了
当然了如果函数中执行到了return也会结束函数

3.函数的参数

1.首先定义一个带有参数的函数,并且调用这个函数

实例:

def test1(a,b):   # a,b为参数c=a+bprint(c)
test1(1,2)  # 调用带有参数的函数时,需要在小括号中,传递数据

定义时小括号中的参数,用来接收参数用的,称为 “形参”
调用时小括号中的参数,用来传递给函数用的,称为 “实参”

4.参数的分类

函数参数大概分为四种:位置参数关键字参数缺省参数不定长参数

1.位置参数

格式如下:

def 函数名(参数1,参数2):代码块
函数名(值1,值2)

实例:

def fun(a,b):print("a:",a)print("b:",b)
fun(2,3)


2.关键字参数

格式如下:

def 函数名(参数1,参数2):代码块
函数名(参数1=值1,参数2=值2)

实例:

def fun(a,b):print("a:",a)print("b:",b)
fun(a=2,b=3)

参数调用时可以改变传参顺序,如果有位置参数需要位置参数放在关键字参数前面

实例:

def fun(a,b):print("a:",a)print("b:",b)
fun(3,b=2)

如果关键字参数传参要在位置参数之前,将会报错

实例:

def fun(a,b):print("a:",a)print("b:",b)
fun(a=3,2)


3.缺省参数

在形参中默认有值的参数,称之为缺省参数(也称为默认参数)

实例:

def printinfo(name,age=20):print("name:",name)print("age:",age)
printinfo(name="jack")

调用函数时,缺省参数的值如果没有传入,则取默认值(形式参数),如果传入,则取实际参数
缺省参数一定要位于位置参数的最后面

4.不定长参数

有时可能需要一个函数能处理比当初声明时更多的参数, 这些参数叫做不定长参数,声明时不会命名。

格式如下:

def printinfo(*args,**kwargs):print("args:",args)print("kwargs:",kwargs)
printinfo(参数)

加了星号(*)的变量args会存放所有未命名的变量参数,args为元组
加**的变量kwargs会存放命名参数,即形如key=value的参数, kwargs为字典

01.不定长参数*args

实例:

def printinfo(*args):print("args:",args)
printinfo(100,200,300,400)


02.不定长参数* * kwargs

实例:

def printinfo(**kwargs):print("kwargs:",kwargs)
printinfo(a=100,b=200,c=300,d= 400)


5.函数位置顺序

格式如下:

def fun(位置参数,*args,缺省参数,**kwargs):代码块
fun(参数值)

实例:

def sun(a,*args,b=22,**kwargs):print("a:",a)print("args:",args)print("b:",b)print("kwargs:",kwargs)
sun(100,200,300,b=2,m=3,n=4)

如果很多个值都是不定长参数,那么这种情况下,可以将缺省参数放到 *args的后面, 但如果有**kwargs的话,**kwargs必须是最后的

6.函数的返回值

场景:
我给儿子10块钱,让他给我买包烟。这个例子中,10块钱是我给儿子的,就相当于调用函数时传递到参数,让儿子买烟这个事情最终的目标是,让他把烟给你带回来然后给你对么,,,此时就是返回值

格式如下:

def sum():代码块return 值
sum()

实例:

def sum(a,b):return a+b
result = sum(1,2)   #保存函数的返回值
print(result)


1.多个return

实例:

def create_nums(num):print("---1---")if num == 100:print("---2---")return num + 1  # 函数中下面的代码不会被执行,因为return除了能够将数据返回之外,还有一个隐藏的功能:结束函数print("return执行之后不会继续执行")else:print("wewe")return "输入不是100"
print(create_nums(100))

一个函数中可以有多个return语句,但是只要有一个return语句被执行到,那么这个函数就会结束了,因此后面的return没有什么用处

2.返回多个数据

实例:

def divid(a, b):add = a+b    #相加reduct = a-b    #相减return add, reduct  #默认是元组
result = divid(5, 2)
print(result)

return后面可以是元组,列表、字典等,只要是能够存储多个数据的类型,就可以一次性返回多个数据

7.函数的类型

函数根据有没有参数,有没有返回值,可以相互组合,一共有4种:
1. 无参数,无返回值
2. 无参数,有返回值
3. 有参数,无返回值
4. 有参数,有返回值

1.无参数,无返回值的函数

此类函数,不能接收参数,也没有返回值,一般情况下,打印提示灯类似的功能,使用这类的函数

实例:

def printMenu():print('--------------------------')print('      xx涮涮锅 点菜系统')print('')print('  1.  羊肉涮涮锅')print('  2.  牛肉涮涮锅')print('  3.  猪肉涮涮锅')print('--------------------------')

2.无参数,有返回值的函数

此类函数,不能接收参数,但是可以返回某个数据,一般情况下,像采集数据,用此类函数

实例:

def getTemperature():# 这里是获取温度的一些处理过程# 为了简单起见,先模拟返回一个数据return 24
tem=getTemperature()
print(tem)


3.有参数,无返回值的函数

此类函数,能接收参数,但不可以返回数据,一般情况下,对某些变量设置数据而不需结果时,用此类函数

4.有参数,有返回值的函数

此类函数,不仅能接收参数,还可以返回某个数据,一般情况下,像数据处理并需要结果的应用,用此类函数

实例:

# 计算1~num的累积和
def calculateNum(num):result = 0i = 1while i<=num:result = result + ii+=1return result
cal=calculateNum(100)
print(cal)


8.函数的嵌套

一个函数里面又调用了另外一个函数,这就是所谓的函数嵌套调用

实例:

def testb():print("testb start")print("testb testb  执行")print("testb end")
def testa():print("testa start")testb()print("testa end")
testa()

如果函数A中,调用了另外一个函数B,那么先把函数B中的任务都执行完毕之后才会回到上次 函数A执行的位置

9.匿名函数

lambda函数也叫匿名函数,即函数没有具体的名称

实例:

g = lambda x :x+1
print(g(1))

lambda函数可以赋值给变量,默认是返回的,所以不用再加return关键字
例如g = lambda x:x+1,可以看成如下函数,冒号前是参数,可以有多个,用逗号隔开,冒号右边的返回值

def g(x):return x + 1
print(g(1))


10.函数小练习
1.写一个函数求三个数的和,并返回结果

def func(a,b,c):return a+b+c
print(func(1,4,7))


2.写一个函数求三个数的平均值,并返回结果

def func1(a,b,c):return (a+b+c)/3
print(func1(2,3,4))


3.写一个函数求每个数与平均值之间的差,并返回结果

def func2(a,b,c):d=(a+b+c)/3return a-d,b-d,c-d
print(func2(5,8,2))

Python中函数的介绍以及用法相关推荐

  1. PYTHON中函数的介绍

    1.函数的定义 def printme(str): #函数以def 函数名( 参数 ):"函数文档字符"print("函数体部分",str)#return [e ...

  2. python or的用法_详细介绍Python中and和or实际用法

    and 和 or 的特殊性质 在Python 中,and 和 or 执行布尔逻辑演算,但是它们并不返回布尔值:而是,返回它们实际进行比较的值之一.下面来看一下实例.>>> 'a' a ...

  3. python中readlines函数用法,python中read() readline()以及readlines()用法

    我们谈到"文本处理"时,我们通常是指处理的内容.Python 将文本文件的内容读入可以操作的字符串变量非常容易.文件对象提供了三个"读"方法: .read(). ...

  4. python教程实例-Python中函数的用法实例教程

    本文以数值计算为例讲述了Python中函数的用法,分享给大家供大家参考借鉴之用.具体如下: 我们都知道圆的面积计算公式为: S = πr2 当我们知道半径r的值时,就可以根据公式计算出面积.假设我们需 ...

  5. python数组用sum求和_对python中array.sum(axis=?)的用法介绍

    根据代码中运行的结果来看,主要由以下几种: 1. sum():将array中每个元素相加的结果 2. axis对应的是维度的相加. 比如: 1.axis=0时,对饮搞得是第一个维度元素的相加, [[0 ...

  6. python 定义函数方法,python中函数如何定义?python函数的调用方法介绍

    本篇文章给大家带来的内容是关于python中函数如何定义?python函数的调用方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1. 函数的概念,函数是将具有独立功能的代码块 ...

  7. Python中pywifi模块的基本用法

     跨平台的pywifi模块支持操作无线网卡,该模块易于使用,同时支持Windows.Linux等多个系统.pywifi模块不是Python的标准模块,需单独安装,同时该模块依赖comtypes模块,最 ...

  8. python中的随机函数random的用法示例

    这篇文章主要介绍了python中的随机函数random的用法示例,详细的介绍了python 随机函数random的用法和示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 一.random模块简介 ...

  9. python中函数和方法的区别

    本篇内容主要介绍从几个维度来介绍下python中函数和方法的区别: 首先,从分类的角度来分析. (1)函数的分类: 内置函数:python内嵌的一些函数. 匿名函数:一行代码实现一个函数功能. 递归函 ...

最新文章

  1. 升级php7_PHP5.9 升级到PHP7 遇到的一些坑(phpfpm 图解)
  2. 聚焦3D地形编程第五章GeomipMapping for the CLOD
  3. 编程笔试(解析及代码实现):字符串反转(字符串逆序输出)代码实现十多种方法对比(解析思路及其耗费时间)详细攻略
  4. 软件加入使用时间_有了抢口罩软件,电商也进行了升级,我们又有了新软件
  5. python语言特性-------python2.7教程学习【廖雪峰版】(一)
  6. oracle set autocommit,Oracle Sqlplus SET AUTOCOMMIT
  7. Java 对象的序列化
  8. 逆天了!小米将首发一亿像素手机
  9. python的进程和线程定位_Python | 进程 线程的理解拾遗
  10. python算法的缺陷和不足_决策树基本概念及算法优缺点
  11. putExtra方法
  12. 可汗学院:宏观经济学笔记
  13. eclipse无法识别ftl文件解决
  14. oracle ebs 采购入库,ORACLE EBS/ERP 采购库存模块分录
  15. python 单因子方差分析_假设检验之F检验-方差分析
  16. 软件测试车载项目,车载娱乐系统(测试模式)
  17. 二元二次方程例题_二元二次方程练习题.doc
  18. 服务器怒稳定进不了某个网址,登录服务器的一瞬间,让我感觉自己再也不是“菊外人”...
  19. 无线网感叹号不能上网怎么办
  20. 计算机切换器鼠标反应慢,kvm切换器故障操作解决方法详解

热门文章

  1. 1129 Recommendation System (25 分)【难度: 一般 / 知识点: 滑动窗口】
  2. 1107 Social Clusters (30 分)【难度: 中 / 知识点: 并查集】
  3. SQL语言之定义约束
  4. SQL语言之操作数据(Oracle)
  5. lottie插件_RN常用插件集
  6. 【PAT笔记】PAT中的散列思想
  7. java大公司后端多线程面试题最强分享
  8. mybatis教程--查询缓存(一级缓存二级缓存和整合ehcache)
  9. JavaScript教程之快速入门
  10. 去掉标题栏全屏显示代码