函数初识

定义:def--关键字

​ 将某个功能封装到一个空间中就是一个函数

功能:

​ 减少重复代码

函数的调用

​ 函数名+():调用函数和接收返回值

函数的返回值

  1. return 值 == 返回值
  2. 可以返回任意的数据类型
  3. return 返回多个内容是元祖的形式
  4. return 下方不执行,并且会终止当前函数
  5. return 不写或者写了return 后面不写值都会返回None
  6. 函数的返回值返回给函数的调用者
  7. 函数的返回值可以有多个结果

函数的参数

  1. 分类:

    1. 位置参数:一一对应
    2. 默认参数:参数定义是括号中写好的就是默认参数(不进行传参就使用默认参数,使用传参时使用传递的参数)
    3. 关键字参数,按照关键字进行传参
    4. 位置参数必须放在默认参数之前
    5. 混合参数:位置参数和关键字参数一起传参
  2. 形式参数:函数定义阶段括号中的参数叫做形参
  3. 实参:函数调用阶段括号中的参数叫做是实参
  4. 传参:将实参传递给形参的过程叫传参

三元运算:

格式:条件成立的结果 条件 条件不成立的结果

参数:

*args,**kwargs:万能传参

  1. *args(函数定义阶段代表聚合,返回的是一个元祖): 大家共用的一个名字,可以修改但是不建议,接受多余的位置参数

  2. **kwargs(聚合关键字参数,返回的是一个字典)接收多余的关键字参数

    def eat(*args):	#函数的定义阶段	*聚合(打包)
    print(args) #元祖
    print(*args)#函数体中的*,打散(解包)

优先级

  • 位置参数 > 动态位置参数 > 默认参数 > 动态默认参数

函数体中的*代表什么

  • 第一个代表:聚合
  • 第二个代表:打散 函数体中* kwargs 只用一个*,

形参中参数定义的位置:

  • 位置参数:定义在函数体开头的时候
  • 动态位置参数:先执行位置参数,位置参数接收后额外的参数动态位置进行接收,获取到的是一个元祖
  • 默认参数:函数接受体接收到的参数
  • 动态关键字参数:先执行默认参数,默认参数接收后,额外的默认参数动态进行接收,获取到的是一个字典

实参中的位置:

  • “*” 打散
  • “**” 实参可以使用

函数的注释

  1. 查看注释:函数名.__ doc __
  2. 查看函数的名字:函数名.__ name __

从入门到自闭之Python函数初识的更多相关文章

  1. 从入门到自闭之Python基础——函数初识

    1. 文件操作: 读操作: 格式:f = open("文件路径",mode = "r",encoding = "utf-8") f : 代表 ...

  2. 从入门到自闭之Python高阶函数

    高阶函数:内部帮忙做了一个for循环 filter:筛选过滤 语法: filter(function,iterable) function: 1.指定过滤规则(函数的内存地址) 2.用来筛选的函数,在 ...

  3. 从入门到自闭之Python内置函数

    内置函数一 eval:执行字符串类型的代码 exac:执行字符串社类型的代码 eval与exac 禁止使用 hash()作用就是区分可变数据类型与不可变数据类型 # print(hash(" ...

  4. 从入门到自闭之Python集合,深浅拷贝(大坑)

    小数据池 int: -5~256 str: 字母,数字长度任意符合驻留机制 字符串进行乘法时总长度不能超过20 特殊符号进行乘法时只能乘以0 代码块: 一个py文件,一个函数,一个模块,终端中的每一行 ...

  5. 从入门到自闭之Python序列化

    序列化(背) json :将数据类型转换成字符串(序列化),将字符串装换成原数据类型(反序列),支持dict,list,tuple等,序列后都变成了列表 dumps,loads ------ 用于网络 ...

  6. 从入门到自闭之Python名称空间

    名称空间: 内置空间:python解释器自带的一块空间 全局空间:py文件中顶格写的就是全局空间 局部空间:函数体中就是局部空间 加载顺序: 内置空间 全局空间 局部空间 # def func(): ...

  7. 从入门到自闭之Python自定义模块

    自定义模块 定义:一个文件就是一个模块(能被调用的文件,模块就是一个工具箱,工具就是函数) 作用: 将代码文家化管理,提高可读性,避免重复代码 拿来就用(避免重复造轮子),python中类库比较多,提 ...

  8. 从入门到自闭之Python三大器--生成器

    1.什么是生成器 核心:生成器的本质就是一个迭代器 迭代器是python自带的的 生成器是程序员自己写的一种迭代器 编写方式: 基于函数编写 推导式编写 def func (): print(&quo ...

  9. 从入门到自闭之Python三大器--迭代器

    函数名的第一类对象(概述): 使用方式: 函数名可以当做值赋值给变量 def func(): print(1) print (func) #查看函数的内存地址 a = func print (a) # ...

随机推荐

  1. 「HNOI2014」世界树

    题目链接 问题分析 首先观察数据范围可以知道要用虚树.但是要考虑怎么维护原树的距离信息. 如果只有两个关键点,我们可以很方便地找到中点将整棵树划分为两部分.而如果有多个关键点,看起来有效的方法就是多源 ...

  2. Work Queues(工作队列)

    1.模型 2.创建生产者 package com.dwz.rabbitmq.work; import java.io.IOException; import java.util.concurrent. ...

  3. BZOJ1706奶牛接力跑

    这个东西思路还是不错的. 解法就是把矩阵幂的加法改成取min,乘法改成加法就好,和floyed是一样的.这样的话,矩阵操作一次就相当于松弛了一次最短路. 建矩阵的过程也比较简单,可以离散化,当然下面有 ...

  4. 关于PHP内部类的一些总结学习

    前言: 这篇文章主要对一些可以进行反序列化的php内置类的分析总结(膜lemon师傅之前的总结),当然不是所有的php内置类在存在反序列化漏洞时都能够直接利用,有些类不一定能够进行反序列化,php中使 ...

  5. C++ 学习时的错误记录

    1. 关于C++相关的文件扩展名 c++程序中的头文件扩展名包括: .h .hpp .hxx C++程序中源文件的扩展名包括: .cc .cpp .cxx 2.C++程序编译过程 3. 处理错误 4. ...

  6. .NET DLL 保护措施详解(非混淆加密加壳)

    为什么要保护DLL,我就不多说了,各人有各人的理由.总的来说,就是不想核心逻辑泄露及授权验证被破解两大方面的因素.市面上的混淆加密工具对.NET源码保护的效果天差地别,很多网上下到的混淆工具破解版对. ...

  7. 理解Dubbo

    1.Dubbo应用场景 2.Dubbo支持的协议 3.Dubbo性能比较 4.负载均衡策略 5.容错方案 6.Dubbo vs SpringCloud 7.深入Dubbo需要的技能

  8. 过滤器demo-编码统一处理

    package com.loaderman.demo.a_loginFilter; import java.io.IOException; import java.lang.reflect.Invoc ...

  9. 阶段3 3.SpringMVC·_03.SpringMVC常用注解_1 RequestParam注解

    新建param.jsp页面.里面一个a标签. 新建Controller 输出字符串 重新部署 传参数 接收这个username并输出 把username换成name 接收不到. 使用RequestPa ...

  10. 必会SQL笔试题

    ()表名:购物信息 购物人 商品名称 数量 A 甲 B 乙 C 丙 A 丁 B 丙 …… 给出所有购入商品为两种或两种以上的购物人记录 答:); ()表名:成绩表 姓名 课程 分数 张三 语文 张三 ...