Skip to content

Latest commit

 

History

History
141 lines (91 loc) · 3.26 KB

50-548476-执行字符串(exec).sy.md

File metadata and controls

141 lines (91 loc) · 3.26 KB
show version enable_checker
step
1.0
true

执行字符串

回忆上次内容

  • unicode 里面有各种字体
    • 扑克
    • 国际象棋
    • 麻将
    • 各种好玩的编码
    • 甚至还有emoji
  • 字符编码就是这样一步步发展过来的
    • 其实我们的pythoon也是由字符串所组成的
    • python语言就是把字符串解释执行的
    • 能否直接执行一个字符串呢?

图片描述

  • 去哪里找呢?

搜索内建(builtins)函数

图片描述

  • 真的好多啊
  • 有个exec函数
  • 具体什么意思呢?

查询

  • help(exec)

图片描述

  • 可以执行一个源(source)
  • 我们去执行一下

例子

图片描述

  • 字符串确实能执行

图片描述

引号

  • 如果有引号需要转义(escape)

图片描述

  • 如果里面还有引号需要转义
  • 可以执行输出么?
  • 动手试试

输出

图片描述

  • 有点复杂
  • 但是可以用三引号解决转义的问题么?

三引号

图片描述

图片描述

  • 好像是可以的
  • 可以执行多行python代码么?

执行多行代码

图片描述

  • 确实可以!!!
  • 可以自己执行自己么?

套娃

图片描述

  • 这不是套娃么?
  • 禁止禁止套娃!

图片描述

  • 说到底
  • 什么是exec呢?

词源

  • exec来自于execute

图片描述

  • 执行法律的判决
  • 比如死刑立即执行
  • 执行之后就是executed!
  • 究竟是怎么完成的呢?

汇编理解

图片描述

  • 通过调用函数完成的
  • 具体怎么做的呢?

源码位置

  • 在github的cpython中

图片描述

  • 有个模块builtins
  • 对应着一个c语言

图片描述

  • 看起来比较麻烦
  • 因为这功能想想就很麻烦
  • 人生苦短
  • 先去总结

总结

  • 我们这次学习了一个函数exec
  • 意思是执行
  • 执行的是python的代码字符串
  • 可以用三引号来执行很多句
    • 很长的程序就是很长的字符串
    • 字符串可以一把执行
    • 具体也是这么一句句执行的
  • python也是一步步发展到今天的
  • python究竟是怎么发展的呢?🤔
  • 我们下次再说!👋