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 ThompsonDennis 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之类的字符呢?
- 我们下次再说!
oeasy教您玩转python - 006 - # hello world的更多相关文章
- oeasy教您玩转vim - 56 - # 字符可视化模式
可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...
- oeasy教您玩转vim - 57 - # 行可视化
可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...
- oeasy教您玩转linux010203显示logo
我们来回顾一下 上一部分我们都讲了什么?
- oeasy 教您玩转linux010101查看内核uname
linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...
- oeasy教您玩转linux010202软件包管理apt
顾一下 上一部分我们都讲了什么?
- oeasy教您玩转linux010201持续输出yes
我们来回顾一下 上一部分我们都讲了什么?
- oeasy教您玩转linux010108到底哪个which
到底哪个which 回忆上次内容 我们上次讲了查找命令位置whereis 我想找到whereis的位置怎么办?
- oeasy教您玩转vim - 53 - # 批量替换
查找细节 回忆上节课内容 我们温习了关于搜索的相关内容 /正向,?反向 n保持方向,N改变方向 可以设置 是否忽略大写小写 是否从头开始查找 是否高亮显示 还有一些正则表达式的使用方法 行头行尾 ^$ ...
- oeasy教您玩转linux-010110内容回顾
我们来回顾一下 我们都讲了什么?
随机推荐
- 【死磕Java并发】-----Java内存模型之重排序
在执行程序时,为了提供性能,处理器和编译器常常会对指令进行重排序,但是不能随意重排序,不是你想怎么排序就怎么排序,它需要满足以下两个条件: 在单线程环境下不能改变程序运行的结果: 存在数据依赖关系的不 ...
- 难搞的偏向锁终于被 Java 移除了
背景 在 JDK1.5 之前,面对 Java 并发问题, synchronized 是一招鲜的解决方案: 普通同步方法,锁上当前实例对象 静态同步方法,锁上当前类 Class 对象 同步块,锁上括号里 ...
- null和空字符串对于查询where条件语句的影响
在数据库中我们进行数据处理的过程中,对于null值或者空字符串的情况对于这种数据我们进行计算平均值以及查询过程中如何进行对于这类数据的处理呢? step1:建表:create table a(id i ...
- [黑科技]pb_ds库(G++)
一.hash(速度快的恐怖).http://codevs.cn/problem/1230/ 1 #include<stdio.h> 2 #include<ext/pb_ds/asso ...
- Java初学者作业——编写JAVA程序,在控制台输入一位学生的英语考试成绩,根据评测规则,输出对应的成绩等级。定义方法实现学生成绩的评测功能。
返回本章节 返回作业目录 需求说明: 编写JAVA程序,在控制台输入一位学生的英语考试成绩,根据评测规则,输出对应的成绩等级.要求:定义方法实现学生成绩的评测功能. 学生的英语考试成绩进行评测,评测规 ...
- CSS3的nth-child() 选择器,表格奇偶行变色
nth-child() 应用背景 CSS3的nth-child() 选择器,我之前很少用,在做表格偶数行变色的时候,我通常在绑定的时候,做一个js判断,来加一个css,从而使表格偶数行和奇数行颜色不一 ...
- SpringBoot集成MyBatis-Plus框架
1.说明 本文介绍Spring Boot集成MyBatis-Plus框架, 重点介绍需要注意的地方, 是SpringBoot集成MyBatis-Plus框架详细方法 这篇文章的脱水版, 主要是三个步骤 ...
- 实验 2 :Mininet 实验 —— 拓扑的命令脚本
实验2: Mininet 实验--拓扑的命令脚本 一.实验目的 掌握 Mininet 的自定义拓扑生成方法:命令行创建.Python 脚本编写 二 .实验任务 通过使用命令行创建.Python 脚本编 ...
- HDU 2084 数塔 (动态规划DP)
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2084 题目分析:此题采用动态规划自底向上计算,如果我们要知道所走之和最大,那么最后一步肯定是走最后一排 ...
- Hackurllib
是的大部分的http请求库都不够hacking 不过有w8ay师傅的hack-requests 但是我想造一个属于自己的轮子它将会足够简单足够hacking 用这个名字是因为我选择了urllib做为最 ...