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

python-函数基础

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

python-函数基础

函数
  • 函数的本质 函数可以看成是工具,定义好以后,遇到需求相似功能代码时反复使用函数就行了
    而不用函数,每次遇到相同的需求都要重新编写函数里的代码
  • 函数的语法结构
    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}
      
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1002498.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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