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

码农学技术————六个月学习python全栈【Day11】

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

码农学技术————六个月学习python全栈【Day11】

今日学习目标:

  • 函数的定义与调用
  • 理解运用函数的参数
    今日学习内容: 内容简要:

    函数的定义与调用函数的分类函数的返回值函数的参数(内容较多)


    内容详细: 函数的定义与调用

    1.函数一定要遵循先定义后调用的原则
    2.函数在定义阶段只检测语法不执行代码
    3.函数体代码只有在调用函数的时候才会执行
    4.函数名其实相当于是变量名指向的是内存中函数体代码所在的位置

    对于函数的定义和调用更加详细的运用技巧请参考我上一篇博客


    函数的分类

    对于python的函数类型的分类,在函数定义方式上来看会被分成两大类:内置函数,自定义函数。

    名称解释
    内置函数python解释器提前定义好可以直接调用的函数
    自定义函数程序员自己编写的函数

    在自定义函数上又有了一些分类:

    名称解释
    无参函数在函数定义阶段括号内没有参数
    有参函数在函数定义阶段括号内有参数
    空函数在定义阶段函数体代码是用pass或者…占位

    举例:

    1.内置函数:

    	类似:print(), input(),len(),open()....
    	这些可以直接调用的方法都是属于内置函数
    

    2.自定义函数:

    在编写脚本的过程中,对于要重复完成的工作,我们可以提取出来,将其编写为函数,在脚本中使用时,调用即可,在python中,函数必须先声明,然后才能在脚本中使用。使用函数时,只要按照函数定义形式向函数传递必须的参数,就可以调用函数完成所需的功能。

    2.1:无参函数
    举例:

    def index():
        print('hi,python!')
    # 调用无参函数:括号内也不需要写参数
    index()
    

    运行结果:

    2.2:有参函数
    举例:

    def index(a):
        print('hi,python!',a)
    # 调用有参函数:在函数调用阶段括号内也必须传参数>>>:类似于变量值
    index()
    

    运行结果:

    2.3:空函数
    举例:

    def index():
        pass
    

    运行结果:

    空函数感觉一点用都没有啊 但是非常有用
    前期能够通过空函数快速的罗列出程序中大致的功能
    让程序整体框架清晰 空函数大量的使用在项目前期的功能框架搭建eg:编写一套钢铁侠程序
    功能也可以看成是函数 函数也可以看成是功能


    函数的返回值

    1.什么是函数返回值 ?

    函数的返回值其实就是在调用函数之后返回的结果

    2.如何获取函数的返回值 ?:

    '''
    变量名 = 函数调用
    '''
    

    3.如何操作返回值 ?

    类别详情
    方式一当函数体代码没有return关键字的时候 返回值是None
    方式二当函数体代码写了return但是没有跟任何值得时候 返回值也是None
    方式三当函数体代码写了return并且跟了数据 那么写什么就返回什么
    方式四return后面还可以跟多个值 逗号隔开 会自动组织成元组返回出去后

    举例:

    # 方式一:
    def index():
    	print('方式一')
    
    res = index()
    print(res)  # None
    
    # 方式二:
    def index():
    	print('方式二')
    	return
    
    res = index()
    print(res)  # None
    
    # 方式三:
    def index():
    	print('方式三')
    	name = 'jason'
    	return name
    
    res = index()
    print(res)  # jason
    
    # 方式四:
    def index():
    	print('方式四')
    	return 111, 'jason', 222
    
    res = index()
    print(res)  # (111,'jason',222)
    

    函数体代码里面写return相当于循环体代码里面写break,遇到了就立刻结束函数和循环的执行


    函数的参数(重要)

    1.函数的参数分类:

    名称解释
    形参函数在定义阶段括号内写的参数 ,我们称之为’形式参数’
    实参函数在调用阶段括号内写的参数,我们称之为’实际参数’

    2.形参与实参的关系

    形参类似于是变量名、实参类似于是变量的值,在调用函数的时候传入实参 会与形参临时绑定,函数运行结束之后自动解除绑定

    举例

    	def index(a,b):  # a和b就是index函数的形参
    		print(a,b)
    	index(1,2)  # 1和2就是index函数的实参
    
      1会临时绑定给形参a 2会临时绑定给形参b
      函数体代码运行期间 可以通过形参直接使用到实参
      函数体代码运行完毕之后 解除绑定 
      形参ab处于没有绑定值得状态 等待下一次函数调用传入实参进行绑定
    

    3.参数分类

    3.1.位置参数

    名称详情
    位置形参函数定义阶段括号内从左往右依次填写的变量名
    位置实参在函数调用阶段括号内从左往右依次传入的真实数据

    位置参数的特征:
    1.位置形参与位置实参在绑定关系的时候就是按照从左往右的顺序依次绑定
    2.位置形参与位置实参的个数要一致 多一个不行少一个也不行

    例子

    def index(a, b):
    	print('a=%s' % a, 'b=%s' % b)
    
    index(2, 1)  # a=2 b=1
    # index()  # 报错
    # index(111)  # 报错
    # index(111,222,333)  # 报错
    

    3.2.关键字参数

    出现在实参中指名道姓的给形参传值 不需要遵循位置

    例子

    def index(a, b):
    	print(a, b)
    index(b=111, a=222)  # 指名道姓的说形参a接收数据222 b接收数据111
    index(b=333,222)  # 报错 关键字参数必须放在位置参数的后面
    index(222,a=111)  # 报错 形参只能指向一个实参
    index(222,b=111)  # 可以 相当于位置参数 
    

    实参"222"会按照位置绑定给形参a 然后又通过关键字参数给形参a重复绑值 这种情况是不被允许的!!!

    3.3.默认参数

    出现在形参中
    在函数定义阶段就已经给一些形参赋值了
    后续如果不传值则使用默认的
    后续如果传值则使用传入的
    默认参数的出现也打破了形参与实参之间个数一致的情况
    默认参数必须定义在位置参数的后面

    例子

    def register(name, age, gender='猛男'):
    """
    函数的形参在命名的时候也应该见名知意
    """
    	print("""
    	学员姓名:%s
    	学员年龄:%s
    	学员性别:%s
    	""" % (name, age, gender))
    register('jason', 18)  # 不传就使用默认的
    register('jerry',22,'美女')  # 传了就使用自己的
    

    运行结果

    3.4.可变长参数(重要)
    需求:定义一个函数 无论传多少位置实参都可以正常执行

    方法:

    ’ * '号在形参中
    可以接收多余的位置参数 并组织成元组的形式赋值给*号后面的变量名
    举例

    	def func(*a):
    		print(a)
    	func()  # ()
    	func(1,2)  # (1, 2)
    	func(1,2,3,4,5,6)  # (1, 2, 3, 4, 5, 6)
    

    ’ ** ‘号在形参中
    用于接收多余的关键字参数 并且组织成字典的形式赋值给’ ** '后面的变量名
    举例

    	def func(**k):
    		print(k)
    	func()  # {}
    	func(a=1,b=2)  # {'a': 1, 'b': 2}
    	func(a=1,b=2,c=3,d=4)  # {'a': 1, 'b': 2, 'c': 3, 'd': 4}
    

    思考题:如何定义一个无论接收多少个任意类型的参数都可以正常执行的函数

    ’ * ‘和’ ** '在形参中的使用 后面的变量名并不是关键 但是针对这两个特殊符号后面的变量名

    def func(*a,**k):
    	print(a,k)
    func()  # () {}
    func(1,2,3,4,name='jason',age=18)  # (1, 2, 3, 4) {'name': 'jason', 'age': 18}
    

    补充说明(重要)

    *和**不单单可以在形参中使用 还可以在实参中使用

    """
    *号在实参中 
    可以将列表或者元组打散成位置参数一一传入
    def index(*[11,22,33])  等价于 index(11,22,33)
    def index(*(11,22,33))  等价于 index(11,22,33)
    如果真的理解不了 可以看成是*号会将列表和元组的括号去除 暴露出里面一个		个元素
    """
    
    """
    **号在实参中
    	可以将字典打散成关键字参数一一传入
    def index(**{'name':'jason'})  等价于  index(name='jason')
    """
    

    今日学习时间:

    这里统计计划学习的时间

    1、 上午8:30~12:30
    2、 下午2:30~5:30
    3、 晚上6:30~9:30


    今日学习产出:

    这里统计学习计划的总量

  • 1、 技术笔记 1遍
  • 2、CSDN 技术博客 1篇
  • 3、每日录音,预习明日内容
  • 转载请注明:文章转载自 www.mshxw.com
    本文地址:https://www.mshxw.com/it/768080.html
    我们一直用心在做
    关于我们 文章归档 网站地图 联系我们

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

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