zoukankan      html  css  js  c++  java
  • 函数的基础

    #函数的返回值
    #返回值的3种情况
    # 没有返回值 —— 返回None
    # 不写return
    # 只写return:结束一个函数的继续
    # return None —— 不常用
    # 返回1个值
    # 可以返回任何数据类型
    # 只要返回就可以接收到
    # 如果在一个程序中有多个return,那么只执行第一个
    # 返回多个值
    # 用多个变量接收:有多少返回值就用多少变量接收
    # 用一个变量接收: 得到的是一个元组

    函数的参数
    参数
    #没有参数
    #定义函数和调用函数时括号里都不写内容
    #有一个参数
    #传什么就是什么
    #有多个参数
    #位置参数
    #站在实参的角度上:
    #按照位置传参
    #按照关键字传参
    #混着用可以:但是 必须先按照位置传参,再按照关键字传参数
    # 不能给同一个变量传多个值

    #站在形参的角度上
    #位置参数:必须传,且有几个参数就传几个值
    #默认参数: 可以不传,如果不传就是用默认的参数,如果传了就用传的

    #只有调用函数的时候
    #按照位置传 : 直接写参数的值
    #按照关键字: 关键字 = 值

    #定义函数的时候:
    #位置参数 : 直接定义参数
    #默认参数,关键字参数 :参数名 = '默认的值'
    #动态参数 : 可以接受任意多个参数
    #参数名之前加*,习惯参数名args,
    #参数名之前加**,习惯参数名kwargs
    #顺序:位置参数,*args,默认参数,**kwargs
    # 动态参数有两种:可以接受任意个参数
    #*args : 接收的是按照位置传参的值,组织成一个元组
    #**kwargs: 接受的是按照关键字传参的值,组织成一个字典
    #args必须在kwargs之前
    #动态参数的另一种传参方式
    def func(*args):#站在形参的角度上,给变量加上*,就是组合所有传来的值。
    print(args)

    func(1,2,3,4,5)
    l = [1,2,3,4,5]
    func(*l) #站在实参的角度上,给一个序列加上*,就是将这个序列按照顺序打散

    参数
    #形参 定义函数的时候
    # 位置参数 :必须传
    # *args :动态参数 可以接收任意多个按位置传入的参数
    # 默认参数 : 可以不传 —— 陷阱
    # **kwargs : 动态参数 可以接受任意多个按关键字传入的参数
    #实参 调用函数的时候
    # 按照位置传参数
    # 按照关键字传参数
    # 可以混用 位置参数必须在关键字传参之前
    # 不能对一个参数重复赋值

    内置函数range(start, stop[, step])
    start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
    stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
    step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

    #命名空间 有三种
    #内置命名空间 —— python解释器
    # 就是python解释器一启动就可以使用的名字存储在内置命名空间中
    # 内置的名字在启动解释器的时候被加载进内存里
    #全局命名空间 —— 我们写的代码但不是函数中的代码
    # 是在程序从上到下被执行的过程中依次加载进内存的
    # 放置了我们设置的所有变量名和函数名
    #局部命名空间 —— 函数
    # 就是函数内部定义的名字
    # 当调用函数的时候 才会产生这个名称空间 随着函数执行的结束 这个命名空间就又消失了

    #在局部:可以使用全局、内置命名空间中的名字
    #在全局:可以使用内置命名空间中的名字,但是不能用局部中使用
    #在内置:不能使用局部和全局的名字的

    # 三元运算符
    # 接收结果的变量 = 条件为真的结果 if 条件 else 条件为假的结果
    # 接收结果的变量 = “真结果” if 条件 else “假结果”
    #
    # 命名空间 和 作用域
    # 三种:内置 全局 局部
    # 作用域:全局 局部 globals() locals()
    # global 在局部声明一个全局变量
    # nonlocal 在局部声明最近的上一层局部中的变量
    # 作用域链 : 小范围用变量的时候,先从自己的名字空间找,
    # 找不到就一层一层向外层找,知道找到为止。
    # 找不到就报错。
    # 函数的嵌套调用和嵌套定义
    # 定义在函数内部的函数不能被外界直接调用
    # 内部函数可以使用外部的变量
    # 函数名的本质
    # 就是一串内存地址
    # 可以赋值、可以作为容器类型的元素、函数的参数和返回值 —— 第一类对象

  • 相关阅读:
    ElasticSearch(ES)学习笔记
    Lucene學習日志
    velocity代码生成器的使用
    springboot学习笔记
    springmvc json 类型转换错误
    在做del业务时,传递参数,和接口中入参注释
    做add添加业务时,字符集乱码,form标签库,button的href 问题,添加后页面跳转,forward,redirect 。定制错误输出
    mybatis中联合查询的返回结果集
    mybatis分页,绝对路径的2种写法
    maven导入项目时报错,配置应用程序监听器[org.springframework.web.context.ContextLoaderListener]错误
  • 原文地址:https://www.cnblogs.com/xyhh/p/10836342.html
Copyright © 2011-2022 走看看