python-函数(1)

函数

  • 函数的本质

    函数可以看成是工具,定义好以后,遇到需求相似功能代码时反复使用函数就行了
    而不用函数,每次遇到相同的需求都要重新编写函数里的代码
  • 函数的语法结构

    def 函数名(参数):
    	"""注释"""
    	函数体代码
    	return
    
    1. def:定义函数的关键字
    2. 函数名:类似于变量名,也要尽量见名之意
    3. 参数:在括号内传入零个或多个参数,用于接收外部传递给函数内部的数据,不论有没有函数,括号都必不可少
    4. 注释:用于说明函数的作用和返回值
    5. 函数体代码:这里就是调用函数后执行的代码
    6. return:用以控制函数的返回值
  • 函数的定义与调用

    # 1. 函数要先定义后调用
    fn()  # NameError:名称“fn”没有定义
    def fn():
    	pass
    fn()  # 在定义函数后调用就不会报错
    
    # 2. 定义函数使用关键字def,函数名和括号
    def fn:  # SyntaxError:无效语法  必须要加上括号
    	pass
    
    # 3. 函数在定义时只会检查语法,不会执行代码
    def fn():
    	if  # 这里也会保无效语法错误
    
    def fn():
    	abc  # 这里语法通过检测,不会报错
    	
    def fn():
    	abc
    fn()  # 只有在执行时才会报错,名称'abc'没有定义
    
    # 4.函数名:函数名就类似于变量名,绑定一个内存地址,里边存放函数体代码
    #  			不过想要运行代码,需要使用函数名加括号
    
  • 函数的分类

    1. 内置函数:
    	解释器提前定义好的函数,可以直接调用
    2. 自定义函数:
    	1. 空函数:函数体代码使用pass顶替,没有任何功能
    		def fn():
    			pass
    	2. 无参函数:定义函数是括号内没有添加参数
    		def fn():
    			print('无参函数')
    	3. 有参函数:定义函数时括号内添加了参数
    		def fn(a):
    			print(a)
    
  • 函数的返回值

    返回值就是调用函数完毕后返回给外界的值
    # 返回值使用return关键字,如果没有使用则默认返回None
    def fn():
    	pass
    res = fn()
    print(res)  # None
    
    # 若只使用return关键字,还是返回默认值None
    def fn():
    	return
    res = fn()
    print(res)  # None
    
    # 在return关键字后添加了数据值,则返回这个数据值
    def fn():
    	a = 1
    	return a
    res = fn()
    print(res)  # 1
    
    # 如果在return后添加多个数据值,则返回数据值组成的元组
    def fn():
    	return 1, 2, 3, 4, 5
    res = fn()
    print(res)  # (1, 2, 3, 4, 5)
    
    # 在使用return后直接结束函数体代码,return后的代码就不再执行
    def fn():
    	print('return前')
    	return
    	print('return后')
    fn()  # return前
    
  • 函数的参数

    • 形参和实参
      • 形参:形式参数,在定义函数时在括号内填写的参数(相当于变量名)
      • 实参:实际参数,在调用函数时在括号内填写的参数(相当于数据值)
    • 位置参数
      """位置形参:在定义函数时在括号内从左到右依次填写的参数"""
      def fn(a, b, c):  # 括号内的a,b,c就是位置形参
      	pass
      
      """位置实参:在调用函数时在括号内从左到右依次传入的参数"""
      def fn(a, b, c):
      	pass
      fn(1, 2, 3)  # 括号内的1, 2, 3就是位置实参
      
      """位置参数必须要一一对应,不能多一个也不能少一个"""
      
    • 关键字参数
      关键字实参:在调用函数传参时,以形参名等于实参的方式传入被称为关键字实参
      def fn(a, b):
      	print(a, b)
      fn(b=1, a=2)  # 2 1
      
      def fn(a, b):
      	print(a, b)
      fn(a=2, 3)  # SyntaxError:位置参数跟随关键字参数
      """ 位置参数必须在关键字参数前"""
      
      def fn(a, b):
      	print(a, b)
      fn(3, a=2)  # TypeError:Fn()获得参数“a”的多个值
      """一个参数只能传一次值"""
      
    • 默认值参数
      默认值形参:在定义函数时,以形参等于什么的方式填写的形参被称为默认值形参
      def fn(a, b, c=0):
      	print(a, b, c)
      fn(1, 2)  # 1 2 0, 如果没有给默认值形参传入参数,则使用默认参数
      fn(1, 2, 3)  # 1 2 3, 如果传入了值就使用传入的值
      
      def fn(a=1, b, c):
      	print(a, b, c)
      fn(1, 2, 3)  # SyntaxError:非默认参数跟在默认参数后面
      """和关键字相同,位置形参不能跟在默认值形参后"""
      
    • 可变长参数
      可变长参数:可以接收任意数量的实参传入
      def fn(*args):
      	print(args)
      fn()  # ()
      fn(1)  # (1,)
      fn(1, 2, 3, 4, 5)  # (1, 2, 3, 4, 5)
      fn([1, 2, 3], [4, 5, 6])  # ([1, 2, 3], [4, 5, 6])
      """
      *可以接收多余的位置实参,以元组的形式赋值给后边的变量名
      """
      def fn(**kwargs):
      	print(kwargs)
      fn()  # {}
      fn(a=1)  # {'a': 1}
      fn(a=1, b=2, c=3)  # {'a': 1, 'b': 2, 'c': 3}
      """
      **可以接收多余的关键字实参,以字典的形式赋值给后边的变量名
      """
      # *和**配合使用,可以接收所有参数
      def fn(*args, **kwargs):
      	print(args, kwargs)
      fn([1, 2, 3], [4, 5, 6], a=1, b=2, c=3)  # ([1, 2, 3], [4, 5, 6]) {'a': 1, 'b': 2, 'c': 3}
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值