Hello World!
回忆上次内容
- 我们这次设置了断点
- 设置断点的目的是更快地调试
- 调试的目的是去除
bug
- 别害怕
bug
- 一步步地总能找到
bug
- 这就是程序员基本功
- 调试
debug
- 这个bug虫子🕷是有历史渊源的
- 编程也是有历史迷因的
- 为什么写程序都从hello world开始?🤔
为啥总是 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!
-
和 c
只能运行在当时的机器上unix
- 没有文档
- 没有书籍
- 甚至没有人知道
- 与他们同在 bell 实验室的
a.k.a Brian Wilson Kernighan
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 年,
和Kernighan
出版了这本书Ritchie
- 不厚,很薄
- 轻松的语言风格
- 因为
的目的就是让人像玩一样编程c
- 而不是记忆各种 cpu 汇编指令
- 蓬勃发展的计算机技术
- 使得
语言成为系统语言的老大c
-
的源代码就是用纯 c 编的python
-
内核 也是用纯 c 编的linux
- 所以
还是非常核心的啊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__)
-
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
- 来自于
和unix
c
- 虽然我们今天有各种先进的学习手段
- 最早的高级语言学习是从最早的那张打字机用纸的手写代码起源的
- 输出用的函数名是
打印print
- 也是从那个时候来的
- 最早输出的是字符串是
"hello world"
- 也是从那个时候来的
- 这就成了一个迷因
- 等等!
- 计算机里面不都是二进制的 0 和 1 吗
- 哪里来的
中的 hello
之类的h
- github->https://github.com/overmind1980/oeasy-python-tutorial
- gitee->https://gitee.com/overmind1980/oeasypython
- 视频->https://www.bilibili.com/video/BV1CU4y1Z7gQ 作者:oeasy