[oeasy]python0037_电传打字机_打印头_print_head_carriage_词源 [oeasy]python0037_电传打字机_打印头_print_head_carriage_词源

简介: [oeasy]python0037_电传打字机_打印头_print_head_carriage_词源

换行回车

回忆上次内容

  • 上次我们
  • diy了 自己的小动物
  • 还可以 让小动物 变色、报时
  • 还可以 说些话
  • 这很亚文化
  • 很酷炫的亚文化
  • 不是吗?
  • 回忆一下
  • 最开始 研究报时 的 时候
  • 回到 本行行头 的 方法
  • print(“\r”+ascii_time)
  • \r\n 不同
  • 从含义上 来看
  • \n - LF - LineFeed - 换行
  • \r - CR - CarriageReturn - 回车
  • 换行 和 回车
  • 具体 有什么不同吗?🤔

换行回车

  • 说到 换行回车 呢…
  • 就得 回到 回车换行 的 年代
  • 看看 那时候 的 终端设备
  • 也就是 TTY

  • TTY
  • Tele-TYpewriter 电传打字机

  • tele的意思是远程的
  • 电报 telegram
  • 望远镜 telescope
  • 电视机 television
  • typewriter
  • type是打字
  • writer写字的人
  • 合在一起就是打字机
  • 特指 电传打字机

TTY

  • 早年间 TTY电报终端 的 方式 存在
  • 后来 股票电报机 大规模应用
  • 大西洋下面 铺设起了 海底光缆
  • 甚至 可以收发 无线电报

收发脉冲

  • 发送的时候
  • 使用 1根线
  • 线里面 传递 串行信号

  • 接收的时候
  • 还是 这1根线
  • 收到的是 5-bit 的串行信号
  • 解码的 工作
  • 交给 打字机

Morkrum 编码

  • 先把 要发的电报
  • 用 5bit的Morkrum 编码到 打孔卡上
  • 或者 直接 按下 电键
  • 自动编码为 5-bit 的信号

  • 接收的 时候
  • 接收到 5-bit 的 串行信号
  • 转化成并行信号
  • 并击打 对应编码的 字符打印头

具体设备

  • 上图 左侧
  • 总共 6根 线
  • 有 1根 地线
  • 除去 地线
  • 刚好 5-bit

  • 有了 这个东西
  • 就不用 记忆复杂的 摩斯电码 了
  • 编码任务 交给了 机器
  • 而且
  • 长短空的 时间间隔
  • 靠机器来 掌握
  • 降低了 门槛

连接

  • 这 降低了 收发电报的门槛
  • tty 的连接 就是
  • 最早的 电报网络
  • tty 就是 终端输入输出设备
  • 这套连接方式 后来构成了 无线电爱好者网络
  • 当时 没有路由器
  • 每个人 都是 消息的发送、接收、转发者
  • 早年间 tty
  • 不能 和计算机 相连接
  • 直到 1959 年
  • DEC公司 生产的 PDP-1电脑
  • 可以连接 tty
  • tty 也有了纸带存储器
  • 要装下 31.8万字符 的《安徒生童话》
  • 要 好大一卷

  • tty 既是输入 也是输出
  • 输入 靠的是 键盘
  • 输出 靠的是 打印的纸张
  • 这 发展成了 标准输入输出流

标准输入输出流

  • 终端 从最开始的 电传打字机
  • 发展成显示器和键盘

  • 桌面上的打字机
  • 既是输入
  • stdin
  • 后来 发展为 键盘
  • 也是输出
  • stdout
  • 后来 发展为 电传打字机
  • 最后 发展为 显示器

打字机头

  • 电传打字机 打印头 非常巨大
  • 很像马车

carriage

  • carriage
  • 马车、运输工具
  • 这里指 运输字符的工具
  • 来自于 carry

  • carry
  • 搬东西的 行为
  • 扛、背、抱
  • 运送、携带、佩戴
  • 承担(责任);
  • Attack Damage Carry
  • 承担着 物理伤害的责任

类似单词

  • carrier
  • 携带者
  • 航母
  • cart
  • 手推车
  • car
  • 汽车
  • carpenter
  • 造马车的
  • 木匠

  • carrer
  • 马车走的高速路
  • 人的职业生涯
  • cargo
  • 货物
  • charge
  • 装车
  • 掌管
  • 充电
  • occur
  • 两车撞上了
  • 发生了事故

car-

  • *kers-
  • 意思是 跑

  • cursor
  • 送信的人
  • 光标
  • current
  • 流动的、跑着的
  • 水流、电流、思潮
  • course
  • 河道、车道
  • 江河流向
  • 跟着 流向走
  • 跟着 上课
  • of course
  • 按照设定好的航行路线走
  • recourse
  • 求助
  • cursive
  • 运笔如跑步
  • 草书

终端 的 进化

  • 最早的 计算机 (ENIAC)
  • 不能 和tty相连
  • 后来的 主机
  • 可通过串口线 和tty相连
  • 直到今天
  • 用终端 远程登录 的 时候
  • 默认名称 还是tty之类 的 东西

  • 一个主机 可以连接 多个终端
  • 通信线路 从串口线 变成了 网线
  • ssh命令 基于 tcp/ip协议
  • 可以 自动路由转发
  • ttyterminalshellconsole
  • 好像 都叫 终端
  • 有什么 不一样 吗?

总结

  • 换行回车 是两回事
  • 换行
  • 对应字节0x0A
  • Line-Feed
  • 水平 不动
  • 垂直 向上喂纸
  • 所以是 feed
  • 回车
  • 对应 字节0x0D
  • Carriage-Return
  • 垂直 不动
  • 水平 到纸张左侧
  • 可移动的打印头
  • 运输字符 的 装置 (Carriage)
  • 回到行首
  • 所以是 Return
  • ttyterminalshellconsole
  • 好像 都叫 终端
  • 有什么 不一样 吗?🤔
  • 我们下次再看!👋
  • 蓝桥->https://www.lanqiao.cn/courses/3584
  • github->https://github.com/overmind1980/oeasy-python-tutorial
  • gitee->https://gitee.com/overmind1980/oeasypython
  • 视频->https://www.bilibili.com/video/BV1CU4y1Z7gQ 作者:oeasy
目录
相关文章
|
1天前
|
人工智能 C语言 Python
[oeasy]python051_什么样的变量名能用_标识符_identifier
本文介绍了Python中变量名的命名规则,强调标识符(identifier)必须以字母或下划线开始,后续可包含字母、下划线及数字。通过`isidentifier()`函数可验证字符串是否为合法标识符。文中还探讨了为何数字不能作为标识符的开头,并提供了相关练习与解答,最后提及这些规则源自C语言的影响。
93 69
|
3月前
|
Unix 编译器 Shell
[oeasy]python0033_先有操作系统还是先有编程语言_c语言是怎么来的
本文回顾了计算机语言与操作系统的起源,探讨了早期 Unix 操作系统及其与 C 语言的相互促进发展。Unix 最初用汇编语言编写,运行在 PDP-7 上,后来 Thompson 和 Ritchie 开发了 C 语言及编译器,使 Unix 重写并成功编译。1974 年 Ritchie 发表论文,Unix 开始被学术界关注,并逐渐普及。伯克利分校也在此过程中发挥了重要作用,推动了 Unix 和 C 语言的广泛传播。
64 9
[oeasy]python0033_先有操作系统还是先有编程语言_c语言是怎么来的
|
3天前
|
Python
[oeasy]python050_如何删除变量_del_delete_variable
本文介绍了Python中如何删除变量,通过`del`关键字实现。首先回顾了变量的声明与赋值,说明变量在声明前是不存在的,通过声明赋予其生命和初始值。使用`locals()`函数可查看当前作用域内的所有本地变量。进一步探讨了变量的生命周期,包括自然死亡(程序结束时自动释放)和手动删除(使用`del`关键字)。最后指出,删除后的变量将无法在当前作用域中被访问,并提供了相关示例代码及图像辅助理解。
96 68
|
5天前
|
Shell Python
[oeasy]python049_[词根溯源]locals_现在都定义了哪些变量
本文介绍了Python中`locals()`函数的使用方法及其在调试中的作用。通过回顾变量赋值、连等赋值、解包赋值等内容,文章详细解释了如何利用`locals()`函数查看当前作用域内的本地变量,并探讨了变量声明前后以及导入模块对本地变量的影响。最后,文章还涉及了一些与“local”相关的英语词汇,如`locate`、`allocate`等,帮助读者更好地理解“本地”概念在编程及日常生活中的应用。
25 9
|
8天前
|
Python 容器
[oeasy]python048_用变量赋值_连等赋值_解包赋值_unpack_assignment _
本文介绍了Python中变量赋值的不同方式,包括使用字面量和另一个变量进行赋值。通过`id()`函数展示了变量在内存中的唯一地址,并探讨了变量、模块、函数及类类型的地址特性。文章还讲解了连等赋值和解包赋值的概念,以及如何查看已声明的变量。最后总结了所有对象(如变量、模块、函数、类)都有其类型且在内存中有唯一的引用地址,构成了Python系统的基石。
18 5
|
16天前
|
存储 Python 容器
[oeasy]python045_[词根溯源]赋值_assignment_usage_使用
本文回顾了上一次讲解的内容,重点讨论了变量的概念及其在各种系统和游戏中的应用。文章详细解释了变量的声明与赋值操作,强调了赋值即为将具体值存储到变量名下的过程。同时,通过例子说明了字面量(如数字0)不能被赋值给其他值的原因。此外,还探讨了“赋值”一词的来源及其英文表达“assignment”的含义,并简要介绍了与之相关的英语词汇,如sign、assign、signal等。最后,总结了本次课程的核心内容,即赋值操作的定义和实现方式。
18 3
|
20天前
|
开发工具 Python
[oeasy]python043_自己制作的ascii码表_循环语句_条件语句_缩进_indent
本文介绍了如何使用Python制作ASCII码表,回顾了上一次课程中`print`函数的`end`参数,并通过循环和条件语句实现每8个字符换行的功能。通过调整代码中的缩进,实现了正确的输出格式。最后展示了制作完成的ASCII码表,并预告了下一次课程的内容。
20 2
|
27天前
|
人工智能 Shell 开发工具
[oeasy]python0041_输出ASCII码表_英文字符编码_键盘字符_ISO_646
本文介绍了ASCII码表的生成与使用,包括英文字符、数字和符号的编码。通过Python代码遍历0到127的ASCII值,解决了找不到竖线符号的问题,并解释了ASCII码的固定映射关系及其重要性。文章还介绍了ASCII码的历史背景,以及它如何成为国际标准ISO 646。最后,通过安装`ascii`程序展示了完整的ASCII码表。
18 1
|
1月前
|
人工智能 Python
[oeasy]python039_for循环_循环遍历_循环变量
本文回顾了上一次的内容,介绍了小写和大写字母的序号范围,并通过 `range` 函数生成了 `for` 循环。重点讲解了 `range(start, stop)` 的使用方法,解释了为什么不会输出 `stop` 值,并通过示例展示了如何遍历小写和大写字母的序号。最后总结了 `range` 函数的结构和 `for` 循环的使用技巧。
32 4
|
2月前
|
存储 Python
[oeasy]python038_ range函数_大小写字母的起止范围_start_stop
本文介绍了Python中`range`函数的使用方法及其在生成大小写字母序号范围时的应用。通过示例展示了如何利用`range`和`for`循环输出指定范围内的数字,重点讲解了小写和大写字母对应的ASCII码值范围,并解释了`range`函数的参数(start, stop)以及为何不包括stop值的原因。最后,文章留下了关于为何`range`不包含stop值的问题,留待下一次讨论。
25 1