Chinaunix首页 | 论坛 | 博客
  • 博客访问: 209309
  • 博文数量: 247
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2501
  • 用 户 组: 普通用户
  • 注册时间: 2020-08-10 06:35
文章分类
文章存档

2024年(32)

2023年(86)

2022年(53)

2021年(42)

2020年(34)

我的朋友

分类: Python/Ruby

2022-02-09 09:44:56

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 而制作的系统
  • c 和 unix 只能运行在当时的机器上

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

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 年,Kernighan和Ritchie出版了这本书

    • 不厚,很薄
    • 轻松的语言风格
    • 因为 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 不是从来就有的
  • 来自于unix和c
  • 虽然我们今天有各种先进的学习手段
  • 最早的高级语言学习是从最早的那张打字机用纸的手写代码起源的

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

    • 计算机里面不都是二进制的 0 和 1 吗
    • 哪里来的hello 中的 h 之类的字符呢?????
  • 我们下次再说!????
阅读(495) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~