栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python基础入门篇【22】--python中的函数:初时函数及函数的参数

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python基础入门篇【22】--python中的函数:初时函数及函数的参数

前言:
作者简介:短尾巴小鳄鱼 ,一位不放弃自己的上进卷妹
 如果文章知识点有错误的地方,请留言指正~和大家一起学习,一起进步
 人生格言:昨日种种,皆成今我。今日种种,方成新我。切莫踌躇,莫停留,莫沉溺
如果感觉博主的文章还不错的话,还请关注、点赞、收藏三连支持一下博主哦

文章目录
  • python中的函数
    • 初时函数
      • 函数的定义
      • 函数的分类
      • 创建函数--def
      • 函数结果的返回--return
    • 函数的参数
      • 什么是函数的参数?
      • 必传参数
      • 默认参数
      • 不确定参数-可变参数
      • 参数规则
    • 函数参数的数据类型
      • 参数数据类型的定义

python中的函数 初时函数 函数的定义

函数:将一个事情的步骤封装在一起并得到最终的结果,我们也把实现一个函数的功能称作实现一个方法

函数名代表了整个函数要做的事情

函数体是实现函数功能的流程

在python中,我们可以把我们的功能都封装到函数中以便重复使用。

函数的分类
  • 内置函数

    python中已经封装好可以直接使用的函数

    如:print、id、int、str、max、min、range

  • 自定义函数

创建函数–def

def是定义函数的关键字

def name(args...):
    todo something..
    返回值
函数结果的返回–return

return是将函数结果返回的关键字

return只能在函数体内使用

return支持返回所有的python类型,返回的数据可以直接赋值给一个变量

函数里return后面的代码不会被执行,效果相当于break

def add(a,b):
    c = a + b
    return c

result = add(a=1, b=1) # result来接收函数的返回值
print result

例子:

函数的参数 什么是函数的参数?

定义函数的时候,在括号内以变量的形式定义函数的参数,方便函数内部使用这些参数。

必传参数

在定义函数的时候,没有默认值且必须在函数执行的时候传递进去的参数,且顺序与参数顺序相同,就是必传参数

必传参数不传会报错

默认参数

在定义函数的时候,定义的参数含有默认值。

如果默认参数在调用函数的时候给予了新的值,函数将优先使用后传入的值

def add(a, b=1, c)   # 其中a,c是必传参数,b是默认参数

例子:

不确定参数-可变参数

没有固定的参数名和数量(不知道要传的参数名具体是什么)

def add(*args,**kwargs): 
    ...
    
add(1,2,3,4,name='xiaoming',age=20)
# *:将无参数名的值合并成元组
# **:将有参数与默认值的参数合并成字典

上面调用add函数的例子中,参数1,2,3,4将被*args合并成一个元组,而name='xiaoming,age=20'将被**kwargs合并成一个字典:

思考:如果想要往可变参数中传入元组或字典呢,像上面那样直接用逗号隔开的方式还可以正确传入吗?

不可以,运行结果如下,会将两个参数都传入第一个可变参数,且合并成了元组:

此时,我们只需要在传入参数前加入*就可以解决这个问题:

参数规则

参数的定义从左到右依次是必传参数,默认参数,可变元组参数,可变字典参数。顺序是不可变的。

我们传入参数时也要按照这个顺序。但是还是推荐用赋值语句的方式传入,方便我们清楚的看到哪个值对应的哪个参数。

特例,当我们使用赋值的方式传参的时候:

  1. 如果只有必传参数和默认参数,顺序可以变化。
  2. 如果有必传参数和可变参数,需要将可变参数放在第一位。否则会报错:

修改后如下:这种方式虽然可以避免报错,但并不推荐,我们还是优先按照必传参数->默认参数->可变元组参数->可变字典参数的顺序来定义参数。

函数参数的数据类型 参数数据类型的定义
def person(name:str,age:int=30)
	print(name,age)

注意:

  1. 只有在python3.7之后才支持对函数数据类型的定义
  2. 函数不会对参数类型进行验证

例子:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1026008.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号