乐趣区

关于python:oeasypython0010helloworldunixc历史迷因

Hello World!

回顾上次内容

  • 咱们这次设置了断点

    • 设置断点的目标是更快地调试
    • 调试的目标是去除 bug
    • 别胆怯 bug
    • 一步步地总能找到 bug
    • 这就是程序员基本功

      • 调试 debug
      • 这个 bug 虫子🕷是有历史渊源的
  • 编程也是有历史迷因的

    • 为什么写程序都从 hello world 开始?🤔

为啥总是Hello World

奇怪🧐

  • 不管学习什么编程语言

    • 总是从 Hello World 开始
  • 为什么呢?🤔

起源

  • 这所有都要从头说起

    • linux 操作系统的老祖宗 unix
    • unix 对应的编程语言 c
  • 那是所有开始的中央

两人

  • 1969 年,因为所在 at&t 贝尔实验室的 Multics 我的项目失败
  • 鸿鹄之志的两人

    • Kenneth Thompson
    • Dennis Ritchie

游戏

  • 心愿能在 PDP 机器上持续玩一个游戏

    • 这个游戏是 Multics 下的 star travel
  • 为了玩这个游戏

    • 他们想要做一个操作系统 unix
  • 为了制作操作系统

    • 他们发明了 c 语言的编译器
  • 过后

    • c 是他们为了开发 unix 而制作的语言
    • unix 是为了能玩 star travel 而制作的零碎

hello world!

  • cunix 只能运行在过后的机器上

    • 没有文档
    • 没有书籍
    • 甚至没有人晓得
  • 与他们同在 bell 实验室的 Brian Wilson Kernighan a.k.a bwk

    • 开始写 c 语言的相似于文档说明书的货色

手稿

  • 主体的函数叫做 main函数

    • 外面输入函数叫做 printf函数
  • 不论是 main 函数,还是 printf 函数都有 小括号

    • 小括号 从那个时候就和函数相干
  • 为什么输入字符要用 printf 来当做函数名呢?

print 来历

  • 1974 年的手稿😱

    • 写在打字机用纸的下面
    • 侧面的空洞是向上送纸用的
    • 是不是很像胶片
  • 打字机就是过后的显示器

    • 所以用 print 来示意输入
    • f 的意思是 format 格局
    • printf 是按格局输入

细节

  • printf 函数 前面有 小括号

    • 小括号 外面放的是 函数 参数
    • print("hello world")

      • 函数 print参数"hello world"
  • 双引号 引起来意味着hello world 字符串

    • 输入的内容就是这个字符串 ("hello world")
  • 小括号和双引号的格调连续到了 python
  • c 语言 开始

    • 最早的入门教学程序都做一个hello world
    • 习惯成自然之后
    • 所有的编程语言第一个例子都是hello world
    • 是一种规矩或者文化
  • 这个梗始终流传到明天

    • 除了工夫因素之外
    • 还有一个重要的起因

成书

  • 有了教材就有更多人学

    • 有更多人学就有更多人参加其中
  • 正反馈在逐步成型

教材格调

  • 1978 年,KernighanRitchie 出版了这本书

    • 不厚,很薄
    • 轻松的语言格调
    • 因为 c 的目标就是让人像玩一样编程
    • 而不是记忆各种 cpu 汇编指令
  • 蓬勃发展的计算机技术

    • 使得 c 语言成为零碎语言的老大
    • python 的源代码就是用纯 c 编的
    • linux 内核 也是用纯 c 编的
    • 所以 c 还是十分外围的啊
  • 虽说 python 是用纯 c 编写的

    • 不过 python 一旦呈现之后就能够简化好多货色
    • 比方咱们的游乐场外面有很多的函数和模块
  • 咱们为什么能意识 print?

    • 而不意识 pront?

内置函数

  • dir()

    • 能够看到游乐场上来就自带的模块
  • 比方 dir() 这个函数

    • dir 的意思是 directory 文档目录
    • 这里列出的是曾经导入模块的目录
  • 调用这个函数能够晓得以后游乐场载入了哪些模块
  • 比方 __builtins__ 这个模块
  • __builtins__ 外面又有些什么呢?

dir()

  • dir(__builtins__)

    • 留神前后都是两个下划线
  • __builtins__ 意思是在外面构建好的

    • 这外面有好多内置的函数
    • 包含咱们相熟的

      • exit()
      • print()
      • dir()
      • help()
  • 为什么 print 间接就能用

    • 因为他在默认的这个 __builtins__ 模块中
  • 如果我想要查问 print 函数更具体的信息应该如何呢?

help(print)

  • 什么不会就 help 什么

    • help(print)
    • 把函数名作为参数传进去
  • 相似的还能够查问

    • help(quit)
    • help(dir)
    • help(help)
  • 如果我想要查问__builtins__模块更具体的信息应该如何呢?

help(__builtins__)

  • help(__builtins__)

    • 留神内置模块 builtins 左右各有两个下划线
  • 咱们能够查问到 __builtins__ 模块的帮助文件

    • 返回的这些函数和子模块都隶属于 __builtins__ 这个模块
    • 除了内置的、这些不必引入就能够用的模块之外

      • 还能够引入内部模块

导入内部模块

  • 就像咱们上次导入 ast 一样

    • 这次咱们导入的是__hello__
    • 留神 hello 两边都有两个下划线
import __hello__
  • import

    • port 是港口 来自于海洋文化
    • import 是进口 是导入
    • export 是进口 是导出
    • import 前面接空格
    • 而后是被导入的内部模块名称 __hello__
    • hello左右也是两个下划线
  • __hello__ 模块导入到游乐场

    • 能够输入经典的一句话
  • 留神!

    • 导入 __hello__ 模块前后游乐场中的模块减少了
  • 想要深刻理解 __hello__ 应该怎么办呢?

什么不会就 help 什么

help(__hello__)

总结

  • hello world 不是素来就有的

    • 来自于 unixc
    • 尽管咱们明天有各种先进的学习伎俩
    • 最早的高级语言学习是从最早的那张打字机用纸的手写代码起源的
  • 输入用的函数名是 print 打印

    • 也是从那个时候来的
  • 最早输入的是字符串是 "hello world"

    • 也是从那个时候来的
  • 这就成了一个迷因
  • 等等!

    • 计算机外面不都是二进制的 0 和 1 吗
    • 哪里来的hello 中的 h 之类的
  • 蓝桥 ->https://www.lanqiao.cn/teache…
  • github->https://github.com/overmind19…
  • gitee->https://gitee.com/overmind198…
  • 视频 ->https://www.bilibili.com/vide… 作者:oeasy
退出移动版