python中的各种专有名词解释(oeasypython0010hello)

hello world!回忆上次内容
  • 我们这次设置了断点
    • 设置断点的目的是更快地调试
    • 调试的目的是去除 bug
    • 别害怕 bug
    • 一步步地总能找到 bug
    • 这就是程序员基本功
      • 调试 debug
      • 这个bug虫子是有历史渊源的
  • 编程也是有历史迷因的
    • 为什么写程序都从hello world开始?
为啥总是Hello World

python中的各种专有名词解释(oeasypython0010hello)(1)

奇怪
  • 不论学习什么编程语言
    • 总是从Hello World开始

python中的各种专有名词解释(oeasypython0010hello)(2)

  • 为什么呢?
起源
  • 这一切都要从头说起
    • linux 操作系统的老祖宗 unix
    • 和 unix 对应的编程语言 c

python中的各种专有名词解释(oeasypython0010hello)(3)

  • 那是一切开始的地方
两人
  • 1969 年,由于所在 at&t 贝尔实验室的 Multics 项目失败

python中的各种专有名词解释(oeasypython0010hello)(4)

  • 无所事事的两人
    • Kenneth Thompson
    • Dennis Ritchie

python中的各种专有名词解释(oeasypython0010hello)(5)

游戏
  • 希望能在 PDP 机器上继续玩一个游戏
    • 这个游戏是 Multics 下的 star travel

python中的各种专有名词解释(oeasypython0010hello)(6)

  • 为了玩这个游戏
    • 他们想要做一个操作系统 unix
  • 为了制作操作系统
    • 他们创造了 c 语言的编译器

python中的各种专有名词解释(oeasypython0010hello)(7)

  • 当时
    • c 是他们为了开发 unix 而制作的语言
    • unix 是为了能玩 star travel 而制作的系统
hello world!
  • c 和 unix 只能运行在当时的机器上
    • 没有文档
    • 没有书籍
    • 甚至没有人知道

python中的各种专有名词解释(oeasypython0010hello)(8)

  • 与他们同在 bell 实验室的 Brian Wilson Kernighan a.k.a bwk
    • 开始写 c 语言的类似于文档说明书的东西
手稿
  • 主体的函数叫做 main函数
    • 里面输出函数叫做 printf函数

python中的各种专有名词解释(oeasypython0010hello)(9)

  • 不管是main函数,还是printf函数都有小括号
    • 小括号 从那个时候就和函数相关
  • 为什么输出字符要用printf来当做函数名呢?
print 来历
  • 1974 年的手稿
    • 写在打字机用纸的上面
    • 侧面的空洞是向上送纸用的
    • 是不是很像胶片

python中的各种专有名词解释(oeasypython0010hello)(10)

  • 打字机就是当时的显示器
    • 所以用 print 来表示输出
    • f 的意思是 format 格式
    • printf 是按格式输出
细节
  • printf函数 后面有 小括号
    • 小括号 里面放的是 函数 的 参数
    • print("hello world") 中
      • 函数print 的 参数 是 "hello world"
  • 双引号 引起来意味着hello world 是 字符串
    • 输出的内容就是这个字符串 ("hello world")
  • 小括号和双引号的风格延续到了 python

python中的各种专有名词解释(oeasypython0010hello)(11)

  • 从 c语言 开始
    • 最早的入门教学程序都做一个hello world
    • 习惯成自然之后
    • 所有的编程语言第一个例子都是hello world
    • 是一种规矩或者文化
  • 这个梗一直流传到今天
    • 除了时间因素之外
    • 还有一个重要的原因
成书
  • 有了教材就有更多人学
    • 有更多人学就有更多人参与其中

python中的各种专有名词解释(oeasypython0010hello)(12)

  • 正反馈在逐渐成型
教材风格
  • 1978 年,Kernighan和Ritchie出版了这本书
    • 不厚,很薄
    • 轻松的语言风格
    • 因为 c 的目的就是让人像玩一样编程
    • 而不是记忆各种 cpu 汇编指令
  • 蓬勃发展的计算机技术
    • 使得 c 语言成为系统语言的老大
    • python 的源代码就是用纯 c 编的
    • linux 内核 也是用纯 c 编的
    • 所以c还是非常核心的啊
  • 虽说 python 是用纯 c 编写的
    • 不过 python 一旦出现之后就可以简化好多东西
    • 比如我们的游乐场里面有很多的函数和模块
  • 我们为什么能认识print?
    • 而不认识pront?

python中的各种专有名词解释(oeasypython0010hello)(13)

内置函数
  • dir()
    • 可以看到游乐场上来就自带的模块

python中的各种专有名词解释(oeasypython0010hello)(14)

  • 比如 dir() 这个函数
    • dir的意思是directory 文档目录
    • 这里列出的是已经导入模块的目录
  • 调用这个函数可以知道当前游乐场载入了哪些模块
  • 比如 __builtins__ 这个模块
  • 这 __builtins__ 里面又有些什么呢?
dir()
  • dir(__builtins__)
    • 注意前后都是两个下划线

python中的各种专有名词解释(oeasypython0010hello)(15)

  • __builtins__ 意思是在里面构建好的
    • 这里面有好多内置的函数
    • 包括我们熟悉的
      • exit()
      • print()
      • dir()
      • help()
  • 为什么print直接就能用
    • 因为他在默认的这个__builtins__模块中

python中的各种专有名词解释(oeasypython0010hello)(16)

  • 如果我想要查询print函数更详细的信息应该如何呢?
help(print)
  • 什么不会就help什么
    • help(print)
    • 把函数名作为参数传进去

python中的各种专有名词解释(oeasypython0010hello)(17)

  • 类似的还可以查询
    • help(quit)
    • help(dir)
    • help(help)
  • 如果我想要查询__builtins__模块更详细的信息应该如何呢?
help(__builtins__)
  • help(__builtins__)
    • 注意内置模块builtins左右各有两个下划线

python中的各种专有名词解释(oeasypython0010hello)(18)

  • 我们可以查询到__builtins__模块的帮助文件
    • 返回的这些函数和子模块都隶属于 __builtins__ 这个模块
    • 除了内置的、这些不用引入就可以用的模块之外
      • 还可以引入外部模块
导入外部模块
  • 就像我们上次导入ast一样
    • 这次我们导入的是__hello__
    • 注意hello两边都有两个下划线

import __hello__

  • import
    • port是港口 来自于海洋文化
    • import 是进口 是导入
    • export 是出口 是导出
    • import 后面接空格
    • 然后是被导入的外部模块名称 __hello__
    • hello左右也是两个下划线
  • 把__hello__模块导入到游乐场
    • 可以输出经典的一句话
  • 注意!
    • 导入 __hello__ 模块前后游乐场中的模块增加了

python中的各种专有名词解释(oeasypython0010hello)(19)

  • 想要深入了解 __hello__ 应该怎么办呢?
什么不会就help什么

help(__hello__)

python中的各种专有名词解释(oeasypython0010hello)(20)

总结
  • hello world 不是从来就有的
    • 来自于unix和c
    • 虽然我们今天有各种先进的学习手段
    • 最早的高级语言学习是从最早的那张打字机用纸的手写代码起源的
  • 输出用的函数名是 print 打印
    • 也是从那个时候来的
  • 最早输出的是字符串是 "hello world"
    • 也是从那个时候来的
  • 这就成了一个迷因
  • 等等!
    • 计算机里面不都是二进制的 0 和 1 吗
    • 哪里来的hello 中的 h 之类的
  • 蓝桥->https://www.lanqiao.cn/teacher/3584
  • github->https://github.com/overmind1980/oeasy-python-tutorial
  • gitee->https://gitee.com/overmind1980/oeasypython
  • 视频->https://www.bilibili.com/video/BV1CU4y1Z7gQ 作者:oeasy
,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页