Python中关于函数的具体用法范例以及介绍

 更新时间:2021年09月28日 08:46:04   作者:测试领头羊  
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数

1.函数的介绍

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

定义函数的规则:

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

2.函数的定义和调用

格式如下:

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

实例:

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

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

3.函数的参数

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

实例:

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

在这里插入图片描述

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

4.参数的分类

函数参数大概分为四种:

  • 位置参数
  • 关键字参数
  • 缺省参数
  • 不定长参数

4.1.位置参数

格式如下:

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

实例:

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

在这里插入图片描述

4.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)

在这里插入图片描述

4.3.缺省参数

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

实例:

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

在这里插入图片描述

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

4.4.不定长参数

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

格式如下:

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

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

1.不定长参数*args

实例:

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

在这里插入图片描述

2.不定长参数* * kwargs

实例:

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

在这里插入图片描述

4.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必须是最后的

4.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后面可以是元组,列表、字典等,只要是能够存储多个数据的类型,就可以一次性返回多个数据

4.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 = 0
    i = 1
    while i<=num:
        result = result + i
        i+=1
    return result
cal=calculateNum(100)
print(cal)

在这里插入图片描述

4.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执行的位置

4.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))

在这里插入图片描述

5.函数小练习

写一个函数求三个数的和,并返回结果

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

在这里插入图片描述

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

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

在这里插入图片描述

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

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

在这里插入图片描述

到此这篇关于Python中关于函数的具体用法范例以及介绍的文章就介绍到这了,更多相关Python 函数用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python self用法详解

    Python self用法详解

    这篇文章主要介绍了Python self用法的相关资料,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-11-11
  • 解决echarts中饼图标签重叠的问题

    解决echarts中饼图标签重叠的问题

    这篇文章主要介绍了解决echarts中饼图标签重叠的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • 解决Python找不到ssl模块问题 No module named _ssl的方法

    解决Python找不到ssl模块问题 No module named _ssl的方法

    这篇文章主要介绍了解决Python找不到ssl模块问题 No module named _ssl的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-04-04
  • 显卡驱动CUDA 和 pytorch CUDA 之间的区别

    显卡驱动CUDA 和 pytorch CUDA 之间的区别

    本文主要介绍了显卡驱动CUDA 和 pytorch CUDA 之间的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Windows环境中Python应用服务自启动及其监控问题

    Windows环境中Python应用服务自启动及其监控问题

    这篇文章主要介绍了Windows环境中Python应用服务自启动及其监控问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Python之DataFrame输出为csv\txt\xlsx文件问题

    Python之DataFrame输出为csv\txt\xlsx文件问题

    这篇文章主要介绍了Python之DataFrame输出为csv\txt\xlsx文件问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Python Vaex实现快速分析100G大数据量

    Python Vaex实现快速分析100G大数据量

    Vaex是一个开源的DataFrame库,它可以对表格数据集进行可视化、探索、分析,甚至机器学习,这些数据集和你的硬盘驱动器一样大。本文就来聊聊如何利用Vaex实现快速分析100G大数据量,需要的可以参考一下
    2023-03-03
  • flask 框架操作MySQL数据库简单示例

    flask 框架操作MySQL数据库简单示例

    这篇文章主要介绍了flask 框架操作MySQL数据库,结合实例形式详细分析了flask框架操作MySQL数据库的连接、表格创建、数据增删改查等相关使用技巧,需要的朋友可以参考下
    2020-02-02
  • linux系统下pip升级报错的解决方法

    linux系统下pip升级报错的解决方法

    这篇文章主要给大家介绍了关于linux系统下pip升级报错的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Python使用add_subplot与subplot画子图操作示例

    Python使用add_subplot与subplot画子图操作示例

    这篇文章主要介绍了Python使用add_subplot与subplot画子图操作,涉及Python使用matplotlib模块进行图形绘制的相关操作技巧,需要的朋友可以参考下
    2018-06-06

最新评论