python基础语法5-1函数及其参数

    xiaoxiao2022-07-13  156

    函数

    什么是函数?

    function 英文 -> 函数,功能 函数就是一个具有特定功能的语法结构。 作用:提高代码的复用率,提高开发效率,减少后期的维护成本

    定义函数

    【基本结构】: def 函数名(): 实现函数功能的代码 实现函数功能的代码 实现函数功能的代码 ...
    举个例子:
    def man(name,sex): ''' 这个函数的功能是造一个奥特曼 name:这里写你给奥特曼取得名字 sex:这里写奥特曼的性别 ''' print(name) print(sex) man("大锤","男") 特征: 1.函数不调用不会执行 2.函数可以调用N次不受次数限制 函数名的定义: 1.推荐使用英文,可以使用拼音,不可以使用汉字 2.可以使用数字,但是不能以数字开头 3.不可以使用特殊字符,除了下划线_ 4.函数名严格区分大小写 5.函数命名要有意义 6.函数名不能和系统保留关键字冲突 7.函数名尽量不要和系统已存在的内建函数同名,以免覆盖内建函数

    函数的参数

    (1)函数参数概念及分类 函数参数:调用时需要传递的数据. 函数参数大类分为形参和实参: 形参意思: 函数定义时的参数 实参意思: 函数调用时的参数 形实关系:函数调用时,形参和实参个数需要一一对应 形参种类: 普通参数,默认参数,普通收集参数,命名关键字参数,关键字收集参数 实参种类: 普通实参,关键字实参 (2)普通参数(位置参数)普通的参数,接收实参传递的值 (3)默认参数:位于普通参数后面,具有默认值的参数 语法:(x,y=2) y就是默认参数 (4)收集参数: 普通收集参数:用于专门收集多余普通参数的是普通收集参数,形成一个新的元组 语法:参数前面加* 例:*args 关键字收集参数:用于专门收集多余关键字实参的是关键字收集参数,形成一个新的字典 语法:参数前面加** 例:**kwargs (5)命名关键字参数:定义时放在*号后面的参数,调用时强制必须传入指定参数名才能调用 语法:(a,*,x) x是命名关键字参数 如果函数参数中已经有了收集参数,那么收集参数后面的参数即为命名关键字参数 语法:(*args,x,y) (6)形参声明的位置顺序: 普通参数 -> 默认参数 -> 收集参数 -> 命名关键字参数 -> 关键字收集参数 def func(a,b,c=1,*args,d,**kw) a,b为普通参数,c是默认参数,args是收集参数,d是命名关键字参数,kw是关键字收集参数 极少出现五种参数同时出现的情况 def func(a,b=2,*,c,d,**kw) a为普通参数,b是默认参数,c,d是命名关键字参数 ,kw是关键字收集参数 (7)#注意:实参将值传递给形参的过程,本质上就是变量赋值操作

    所有参数的摆放问题:

    1.实参:普通实参在前,关键字参数在后 2.形参: 关键字收集参数一定在最后出现 收集参数推荐在普通参数之后使用 推荐顺序:普通形参,收集参数,关键字收集参数

    函数文档

    1.使用help函数查看 help(函数名) 2.函数名.__doc__ print(id.__doc__)

    接下来就使用之前的那个代码来试验一下help函数查看:

    def man(name,sex): ''' 这个函数的功能是造一个奥特曼 name:这里写你给奥特曼取得名字 sex:这里写奥特曼的性别 ''' print(name) print(sex) man("大锤","男") print(help(man))

    函数的返回值

    函数执行完毕之后可以得到一个结果,该结果可以被接受或者使用

    函数划分为两大类:

    执行过程函数:函数执行之后没有任何结果可以在函数之外接收到(没有return语句的函数) res = print("你好") print(res) None 空值 具有返回值的函数:函数执行之后可以返回一个结果到函数之外被接收或者使用(具有return语句)
    res = id(1) print(res)
    def play(name): print(name,"要变身啦!") return name+"变成了假面骑士" res = play("小刚") print(res+"小智吓傻了") print(play("小刚"))
    return:返回的意思 执行过程函数:送外卖的,把外卖送给客户,结束了(送外卖是过程,送完之后没得到任何东西) 具有返回值的函数:送外卖,把外卖送给客户,结束了得到了钱(送外卖是过程,送完之后得到了钱) return的另外一个作用: 终止函数执行,函数运行过程中一旦执行了return语句,那么函数就会结束执行。
    def play(): print("hello") return 1 print("世界") play()
    id() 具有返回值的函数 type() 具有返回值的函数 int() 具有返回值的函数 .... 所有函数都是有返回值的,只是执行过程函数的返回值是None 例:print() 执行过程函数 没有返回值 只有一个None值 (None表示没有值) return四问: 1.可以在函数里面写多个return 语句吗? 可以,但不能是在同个作用域下 def func(name): if name == "小红": return "小红你来啦" elif name == "小明": return "小明滚出去" elif name == "小强": return "杀虫剂呢?" else: return "名字未出现在名单中" res = func("小绿") print(res) 2.拓展之后我们还可以写一个具有返回值的函数,模拟其他数据类型转换成字符串的函数 def str1(input_str): return str(input_str) list1 = [1,2,3,4] res = str1(list1) print(res,type(res)) 3.而我们大家知道其他数据类型转换为list,int类型转换时是会报错的,但是我们可以写一段代码让它们在转换的时候不会报错 def list1(input_type): if isinstance(input_type,int)return "对不起,int类型无法转换成列表" else: return list(input_type) num = 1 res = list1(num) print(res) 4.return 可以返回多个值吗?可以,会组成一个元组 def func(): return "你好",1,"world",[1,2,3,4] res = func() print(res,type(res))
    最新回复(0)