Skip to content

Latest commit

 

History

History
255 lines (184 loc) · 5.75 KB

185-529664-什么是函数.sy.md

File metadata and controls

255 lines (184 loc) · 5.75 KB
show version enable_checker
step
1.0
true

函数

回忆

  • 上一章我们学习了循环
  • 循环语句有两种
    • while
    • for
  • for可以遍历各种可迭代对象
    • 容器类(list,tuple,set)
    • 循环可以嵌套
      • 二重
      • 多重
  • 容器可以有各种推导式
    • 列表推导式
    • 集合推导式
    • 字典推导式
  • 我们这次来研究什么呢?

函数function

  • 什么是函数呢?
  • 我们直接来看一个生活中的例子

图片描述

  • 一般吵架后
    • 道歉是一个流程
  • 总共两句话
    • 老婆我错了
    • 都是我不好
  • 每次都要执行

轮子

  • 可以为这个套路定义一个函数
    • 叫做sorry
    • 反复执行

图片描述

  • 以后想用的时候
    • 装上就走
    • 这是最高效
    • 也不用走心的法门

定义函数

图片描述

  • def的意思是
    • define 定义
    • 这里定义了一个函数
  • sorry
    • 是函数的名字
    • sorry后面有小括号()说明sorry是一个函数
    • 小括号后面有冒号
    • 冒号确认函数体的开始
  • 函数体
    • 总共两句话
      • 老婆我错了
      • 都是我不好
    • 都是缩进在函数范围里面的
  • 这是一个很好用的套路
    • 大家一定熟练调用
    • 但是运行起来没有效果啊?!

定义和调用

  • 定义函数是定义好一套表情配合话术
    • def fun():

图片描述

  • 真正需要使用的时候需要调用!!!
    • call sorry()
    • 每次调用都走一个流程

函数调用

  • 前三行定义了一个函数

图片描述

  • 第5行调用了这个函数
  • 具体执行之后什么结果呢?

执行结果

图片描述

  • 注意sorry函数后面要跟着小括号
  • 这个东西怎么理解呢?

菜谱流程

  • 我们生活中有大量事情是流程化的
  • 比如菜谱步骤

图片描述

  • 我们就是按照菜谱一步步执行
  • 只要我们执行一次
  • 就会得到一盘醋溜白菜
  • 还有什么流程么?

乐谱

  • 比如乐谱
  • 唱歌或者演奏

图片描述

  • 一个一个音符地执行
  • 就像八音盒一样

图片描述

  • 把流程固定下来
  • 反复执行
  • 就会形成一个套路

套路

  • 就像练拳
  • 一般都有套路

图片描述

  • 都是前人经验的总结
  • 有很多招式按照固定序列来打

程式

图片描述

  • 不光拳谱
    • 剑谱、枪谱、棍谱
    • 下棋有棋谱
    • 其实都是一些前任总结的基本套路
  • 不懂这些套路就不靠谱
    • 就没有入门
  • 不过真打起来对方可能不按照套路出招

行业

  • 各行各业都有自己的谱子
    • 有了谱子
    • 也就有了业力

图片描述

  • 不能只以古人为师
    • 也不能只以造化为师
  • 两者得结合
    • 继承中创新
    • 发展中有传承
  • 否则就是离谱
    • 有可能被开除家谱

自创谱

  • 有了人工智能之后
    • 他也不看棋谱
    • 直接就自己跟自己下

图片描述

  • 不属于任何家谱流派
    • 但是却能妙手频出
    • 人类棋手反而需要拜他为师
    • 确实到了高手地步
    • 不能依赖套路
    • 也需要实践创造新的套路
  • 说远了
    • 我们如果要把当前套路执行3遍
    • 应该怎么做呢?

执行三遍

图片描述

  • 把第五句执行函数的语句
  • 复制出三行来
  • 可以么?
  • 试试

执行结果

图片描述

  • 好像确实可以
  • 就像我们调用print或者input函数一样
  • 可以调用我们自定义的函数
  • 目前函数可以分成两类

帮助手册

图片描述

  • 一类是内建的函数(built-in)
    • print
    • input
  • 系统已经有的函数
    • 比如input
    • 就不用重新发明一遍了
    • 不用重新发明轮子
  • 直接调用(call)就完事了

图片描述

  • 另一类是没有现成的

自定义函数

  • 另一类没有现成的的套路
  • 没有听说有统一的哄老婆话术培训的
    • 我相信没有任何人愿意接受标准化流程的道歉
    • 调用的时候要

图片描述

  • 是用户自己建立的函数(user-defined)
    • sorry
    • 这都是自己定制的
    • 没有系统版本
    • 那就自己造个轮子
  • 以后就直接调用
    • 写清函数名
    • 加上小括号

总结

  • 这次我们定义了函数
    • 函数就是一个套路、流程、惯用方法
    • 我们可以把他定义出来
    • 然后再调用
  • 调用函数
    • 定义函数就是把相关的代码封装到一个函数里面
    • 以后只要调用函数
    • 相关的代码
    • 就从头到尾地执行了

图片描述

  • 这个函数可以调试么?🤔
  • 下次再说!👋