Skip to content

Latest commit

 

History

History
384 lines (277 loc) · 8.79 KB

192-1019968-函数_套路_反复调用.sy.md

File metadata and controls

384 lines (277 loc) · 8.79 KB
show version enable_checker
step
1.0
true

函数参数

回忆

  • 上次我们调试了自己定义的函数sorry
  • 调试有这样一些命令
    • step
      • 步进到函数里面
        • 和 next步过 不同
        • 和 continue继续到下个断点 也不同
      • 跳入当前行所在函数
    • return
      • 跳出当前函数回到调用的位置
    • where
      • 告诉我现在执行到了哪里
      • 当前播放头的程序栈位置
  • 有了这样一些命令
  • 我们就可以更好地调试python程序了

图片描述

  • 我们生活中也会遇到这些套路吗?🤔

套路

  • 我们身边到处都是套路

图片描述

  • 为什么会有套路?

好使

  • 套路是经过前人千百次的错误总结出来的实践经验
  • 真的好使

图片描述

  • 套路就是实践验证合理的

菜谱流程

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

图片描述

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

乐谱

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

图片描述

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

图片描述

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

套路

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

图片描述

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

程式

  • 不光拳谱
    • 剑谱、枪谱、棍谱
  • 下棋
    • 有棋谱
  • 盖楼
    • 有 图纸和施工方案

图片描述

  • 其实都是 一些前人总结的 基本套路

敏感

  • 不懂这些套路就不靠谱
    • 就没有入门

图片描述

  • 不过真打起来
    • 对方可能也不按照套路出招

行业

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

图片描述

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

自创谱

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

图片描述

  • 不属于任何家谱流派
    • 但是却能妙手频出
    • 人类棋手反而需要拜他为师
    • 确实到了高手地步
    • 不能依赖套路
    • 也需要实践创造新的套路

骨骼肌肉

  • 我们的肌肉和骨骼就是dna编程的结果
  • 也是经过35亿年不断修改代码的结果

图片描述

  • 就连我们的走路跑步都是套路

走路

  • 刚出生的时候我们还要学习走路
  • 逐渐我们就熟悉了目前的套路

图片描述

  • 走路的时候不需要思考和感知了
  • 按照套路走就可以了
  • 可是套路有套路的问题

套路

  • 套路固定僵化
  • 容易被针对

图片描述

  • 无脑放战术
  • 其实不太走心

失去真心

  • 放弃观察和思考
  • 顶级高手都是灵活应对的

图片描述

  • 我们究竟应该怎么办?

怎么办?

  • 套路无处不在
    • 城市套路深
    • 我要回农村
    • 农村路也滑
    • 套路更复杂
    • 农村已整改
    • 套路深似海

图片描述

  • 套路用多了
    • 就老套了
    • 就俗了
    • 但是从俗中再产生新的套路
    • 就脱俗了

脱俗

  • 情书是我抄的
  • 套路我是学的
  • 但喜欢你是真心的

图片描述

  • 尝试用左手
    • 拿筷子
    • 刷牙
    • 写字
  • 换了一个模式
  • 有助于延缓老年痴呆
  • 但是还是老套路

反复道也

  • 这世界本没有道
  • 道可道
  • 也就成了道
  • 真正的套路不是一次
  • 而是一次又一次

图片描述

  • 社会学家说
    • 套路是传统
  • 心理学家说
    • 套路是习惯的思路
    • 基于经验降低风险的思路
  • 音乐家说
    • 套路是反复重复是最有效
    • 是各种音乐流派
  • 画家说
    • 套路是画风
    • 是惯用的笔法
  • 手工艺人说
    • 套路是经典的款式
  • 电子工程师说
    • 套路就是反复执行的模块

反复洗衣服

  • 表面上我们是在使用各种各样的模式

图片描述

  • 实际上我们是在执行程序,控制
    • 水位
    • 水温
    • 速度
    • 是否浸泡
    • 是否加漂洗
  • 等等能够精确控制
    • 电机
    • 传感器
    • 时间等

具体模式

  • 棉麻温度 30 高水位速度 1200 浸泡 加漂洗
  • 牛仔温度 60 高水位 速度800 浸泡 加漂洗
  • 衬衣温度40 一般水位速度800 浸泡 加漂洗

图片描述

  • 29分钟快洗 高水位 温度常温 速度400 浸泡加漂洗
  • 单漂洗 温度常温 速度1200 无浸泡 本身就是漂洗
  • 函数可以实现相应的功能

分析函数

# -*- coding: utf-8 -*-

dict={'17888888888':'111',
      '13999999999':'222',
      '13888888888':'333'}

def showCommands():
	print('|--Добро пожаловать в bookva---|')
	print('|---1:Поиск всех контактов---|')
	print('|---2:Поиск конкретного контакта---|')
	print('|---3:Вставьте новый контакт---|')
	print('|---4:Удалить контакт---|')
	print('|---5:Отпуск bookva---|')
	print('\n')

def queryAll():
    if dict=={}:
        print('Информация об этом контакте не найдена')
    else:
        i=1
        for a,b in dict.items():
            print('{0}Номер телефона:{1},Имя :{2}'.format(i,a,b))
            i=i+1

def queryOne():
    c=input('Номер телефона, который вы хотите найти:')
    print(c+':'+dict.get(c,'Контакт не существует'))

def insertOne():
    e=input('Номер телефона, который вы хотите вставить:')
    if e in dict:
        print('Номер телефона уже существует\n'+'-->>'+e+':'+dict[e])
    else:
            dict[e]=input('Имя, пожалуйста:')

def deleteOne():
    f=input('Номер контакта, который вы хотите удалить')
    b=dict.pop(f,'g')
    if b=='g':
        print('Этот контакт не существует')
    else:
        print('Связь '+f+'Удалить ')

def esc():
    print('Спасибо')

def main():
    while True:
    	showCommands()
        n=input()
        if n=='1':
            queryAll()
        elif n=='2':
            queryOne()
        elif n=='3':
            insertOne()
        elif n=='4':
            deleteOne()
        elif n=='5':
            esc()
            break

main()
  • 这是一个什么样的程序呢?

俄语通信录

  • 由于函数功能明确
    • 感觉我都可以看懂俄语了

图片描述

  • 电压力锅 的 功能明确吗?

电压力锅

  • 电压力锅也是如此的方式
  • 电饭煲工作流程(蒸饭)
    • 加热到100度
    • 正常放气降压
    • 保持100度持续25分钟
    • 之后进入保温模式
    • 保持温度在40度
  • 电压力锅工作流程(熬汤)
    • 加热到100度
    • 不放气继续加压加温
    • 保持温度115度
    • 内部压力加到70kpa
    • 保持(115度,70pa)20分钟
    • 慢慢降压

图片描述

  • 我们来试试做一个电压力锅的程序

总结

  • 对于程序员来说
    • 函数就是封装好的一个套路
    • 这封装好的套路也可以接收参数
    • 就像洗衣机、电饭煲一样可以设定一些模式

图片描述

  • 我们试一下
    • 电压力锅的模式
  • 下次再说!👋