oeasy教您玩转python - 006 - # hello world

 

Hello World!

回忆上次内容

  • python3 的程序是一个 5.3M 的可执行文件

    • python3 里面全都是 cpu 指令
    • 可以执行的那种指令
    • 我们可以把指令对应的汇编找到

      • objdump -d ~/python3 > python3.asm
  • 汇编语句是和当前机器架构的指令集相关的

    • uname -a可以查询指令集
  • 我们执行的过程其实就

    • 系统执行python3这个可执行文件
    • 给了python3一个参数hello.py
    • python3对于hello.py一句句的解释执行
    • 在显示器输出了hello world
    • python3执行完毕
    • 把控制权交回给 shell
  • 这就是我们执行hello world的过程
  • 为什么我们学编程总是从hello world开始呢?🤔

为啥总是Hello World

奇怪🧐

  • 不论学习什么编程语言
  • 总是从Hello World开始
  • 为什么呢?🤔

正在上传…重新上传取消

起源

  • 这一切都要从头说起

    • 目前操作系统的老祖宗 unix
    • 和他对应的编程语言 c
    • 是一切的开始

  • 1969 年,由于所在的Multics项目失败
  • 无所事事的两人

    • Kenneth Thompson
    • Dennis Ritchie
  • 希望能在 PDP 机器上继续玩一个游戏

    • 这个游戏是 Multics 下的 star travel
    • 他们想要做一个操作系统 unix
  • 为了制作操作系统

    • 他们创造了 c 语言的编译器
  • 当时

    • c 是他们为了开发 unix 而制作的语言
    • unix 是为了能玩 star travel 而制作的系统
  • cunix 只能运行在当时的机器上

    • 没有文档
    • 没有书籍
    • 甚至没有人知道

hello world!

  • 与他们同在 bell 实验室的 Brian Wilson Kernighan

    • 开始写 c 语言的类似于文档说明书的东西

手稿

  • 整体的函数叫做 main函数

    • 里面输出函数就叫做 printf函数
  • 不管是main,还是printf都有小括号

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

print 来历

  • 刚才那 1974 年的手稿😱

    • 写在打字机用纸的上面
    • 打字机就是当时的显示器
    • 所以用 print 来表示输出
    • f 的意思是 format 格式
    • printf 是按格式输出
  • printf函数 后面有 小括号

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

      • 函数print参数"hello world"
      • 双引号 引起来意味着hello world字符串
      • 输出的内容就是这个字符串 ("hello world")
  • c语言 开始

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

成书

  • 1978 年,KernighanRitchie出版了这本书

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

    • 使得 c 语言成为系统语言的老大
    • python 的源代码就是用纯 c 编的
    • linux 内核 也是用纯 c 编的
    • 所以c还是非常核心的啊
  • 虽说 python 是用纯 c 编写的

    • 不过 python 一旦出现之后就可以简化好多东西

内置函数

  • 我们可以看到游乐场上来就自带一些函数和模块

  • 比如 dir() 这个函数
  • 调用这个函数可以知道当前游乐场载入了哪些模块
  • 比如 builtins 这个模块
  • builtins 里面又有些什么呢?

dir()

  • dir(__builtins__)

  • buildins 意思是在里面构建好的

    • 这里面有好多内置的函数
    • 包括我们熟悉的

      • exit()
      • print()
      • dir()
  • 如果我想要查询更详细的信息应该如何呢?

help(__builtins__)

  • help(__builtins__)

  • 我们可以查询到__builtins__模块的帮助文件
  • 返回的这些函数和子模块都隶属于 __builtins 这个模块
  • 除了内置的、这些不用引入就可以用的模块之外

    • 还可以引入外部模块

导入模块

import __hello__

  • 这个模块可以输出经典的一句话
  • 还可以把新模块导入到游乐场
  • 注意!

    • 导入 __hello__ 模块前后游乐场中的模块增加了

总结

  • hello world 不是从来就有的
  • 来自于unixc
  • 虽然我们今天有各种先进的学习手段
  • 最早的高级语言学习是从最早的那张打字机用纸的手写代码起源的

    • 所以输出用的是 print 打印
    • 最早输出的是字符串是 "hello world"
    • 这就成了一个迷因
  • 等等!

    • 计算机里面不都是二进制的 0 和 1 吗
    • 哪里来的hello 中的 h 之类的字符呢?🤔
  • 我们下次再说!👋
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章