换行字符

回忆上次内容

  • 数制可以转化

    • bin(n)可以把数字转化为 2进制
    • hex(n)可以把数字转化为 16进制
    • int(n)可以把数字转化为 10进制
  • 编码和解码可以转化

    • encode 编码
    • decode 解码
  • ASCII 码表范围

    • 0x41-0x5A 这个范围是 写字母
    • 0x61-0x7A 这个范围是 写字母
    • 0x30-0x39 这个范围是 数字

      • 数字的编码减去 0x30 正好得到数字本身
    • 0x20-0x7F之间有各种符号
    • 0x00-0x1F之间的东西是什么?

文件编码

  • 编写一个文件

    • 写下 abcd
    • :%!xxd
    • :%!xxd -r 变回来

  • 可以看到文件是用 2进制 方式存储的

    • 0x61 - a
    • 0x62 - b
    • 0x63 - c
    • 0x64 - d
  • 后面的那个 0a 是什么
  • 我们还得回到最初

回到最初

  • 我们回到开始的时候
  • 前面介绍的 c 语言的第一个程序
  • 注意到hello world后面的\n了么?

    • 注意到hello world后面的\n了么?
    • 特别注意斜杠的方向
    • 这个方向\叫反斜杠
    • 在回车上面
  • \n到底是什么??

输出"\n"

#输出\n
print("\n")
#直接print
print()
#查看序号
ord("\n")
#查看十六进制的序号
hex(ord("\n"))
  • 我们直接把他输出看看
  • 好像换了
  • 如果没\n的话,只换
  • \n整体作为一个字符的话

    • 序号是(10)10进制
    • 也就是(0x0A)16进制

找到位置

  • 10 就是十六进制的 0x0A
  • 这个数值在 ascii 码表中意思是 LF
  • 啥意思?

搜索

  • 搜索\n得到的结果是这样的

    • LF 意味着 Line Feed 喂一行?
  • 那我真的可以用这个\n换行嘛?

#输出字符串中带有\n
print("Hello\nWorld")

  • 中途换行成功!

多来几个

#输出字符串中带有\n
print("He\nllo\nWor\nld")
  • 显然这个 \n 就是一个换行

    • 字符串里面有个 \n 就意味着需要换 1 行
    • 他的英文是 Line Feed
    • 意思就是 新换1行
    • 这个东西其实比 ascii 的历史还要悠久
    • 从打字机的时代就有了
  • 最最开始的时候分段落都是靠输出空格然后换行

    • 自从有了这个
    • 一个键就有了新的一行了
    • 所以LineFeed 很提高效率

反向操作

#输出ascii值为10的字符
chr(10)
#把这个字符放在print里面输出
print("hello"+chr(10)+"world")

追溯历史

  • 最早c语言 中的 \n 来自于什么呢?

    • 来自于 B语言
    • B语言 是里奇和汤普逊最早开发 unix 的语言
    • 他运行在bell实验室PDP-8
    • 1969 年最初用的是 B语言
  • 1971 年开始对于 B语言 进行改造

    • 在新买的 PDP-11 上用 BB 写扩展,称之为 NewB
    • 1973 年基本主体完成,改名叫 c语言
    • 他们用手头的编译器和语言给 PDP-11 重写了一个 Unix Kernel
    • 机器语言和汇编语言本来不具有移植性
  • c语言 程序则可以使用在 任意架构 的处理器上

    • 只要那种架构的处理器具有对应的 c语言编译器和库
    • 那就能实现跨平台编译
    • 也就是今天所说的交叉编译
    • 这就是 c语言 在当时能够发展的原因

  • B语言 也不是凭空创造的
  • B语言源自什么呢?

Basic Combined Programming Language(BCPL)

  • B语言源自BCPL(Basic Combined Programming Language)

    • 1967 年由剑桥大学的 Matin Richards 制作
    • 在同样由剑桥大学开发的 CPL语言 上改进而来
    • BCPL 最早被用做牛津大学的 OS6操作系统 上面的开发工具
  • 后来通过美国贝尔实验室的改进和推广成为了 UNIX 上的常用开发语言

    • 最早 BCPL 语言的样子是这样的
    • 这是这套表示法 有史以来最早的记录
    • 这里也有一个类似的、什么 n 的东西
    • 当时的换行符长什么样呢?

BCPL的换行符

  • 这就是当时的换行符

    • !*n

总结

  • \n 就是换行

    • 他对应着 ascii 字符的代码是(10)10进制
    • 他的英文是 LF,意思是Line Feed
  • 这样我就可以自由的控制哪里换行了!

    • 可以做下面这个框架标题吗?
    • 我们下次再说!

oeasy教您玩转python - 9 - # 换行字符的更多相关文章

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

    ​ Hello World! 回忆上次内容 python3 的程序是一个 5.3M 的可执行文件 python3 里面全都是 cpu 指令 可以执行的那种指令 我们可以把指令对应的汇编找到 objdu ...

  2. oeasy教您玩转vim - 56 - # 字符可视化模式

    ​ 可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...

  3. oeasy教您玩转vim - 57 - # 行可视化

    ​ 可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...

  4. oeasy教您玩转linux010203显示logo

    我们来回顾一下 上一部分我们都讲了什么?

  5. oeasy 教您玩转linux010101查看内核uname

    linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...

  6. oeasy教您玩转linux010202软件包管理apt

    顾一下 上一部分我们都讲了什么?

  7. oeasy教您玩转linux010201持续输出yes

    我们来回顾一下 上一部分我们都讲了什么?

  8. oeasy教您玩转linux010108到底哪个which

    到底哪个which 回忆上次内容 我们上次讲了查找命令位置whereis 我想找到whereis的位置怎么办?

  9. oeasy教您玩转vim - 53 - # 批量替换

    查找细节 回忆上节课内容 我们温习了关于搜索的相关内容 /正向,?反向 n保持方向,N改变方向 可以设置 是否忽略大写小写 是否从头开始查找 是否高亮显示 还有一些正则表达式的使用方法 行头行尾 ^$ ...

  10. oeasy教您玩转linux-010110内容回顾

    我们来回顾一下 我们都讲了什么?

随机推荐

  1. Gin 框架是怎么使用 net http 包的(gin.go)

    Gin 框架是基于 Go 语言的标准库 net/http 构建的,它使用 net/http 提供的基础功能来构建自己的高性能 Web 应用框架. 具体来说,Gin 使用 net/http 的以下方面: ...

  2. .NET下免费开源的PDF类库(PDFSharp)

    前言 目前.NET 体系下常见的PDF类库有Aspose.QuestPDF.Spire.iTextSharp等,有一说一都挺好用的,我个人特别喜欢QuestPDF它基于 C# Fluent API 提 ...

  3. C#中位枚举(Flags)

    在日常的开发工作当中,位枚举可能会被经常使用,如星期多选.租期多选等等,我们可以将多选字段做或运算,然后保存到数据库表的字段中,如 1 | 2 = 3(0001 | 0010 = 0011 = 3). ...

  4. python利用flux基本读写influxDB

    1.读取 QuerApi 形式 python 利用 flux 语句查询 influxdb 数据. https://influxdb-client.readthedocs.io/en/latest/ap ...

  5. vue3组件通信与props

    title: vue3组件通信与props date: 2024/5/31 下午9:00:57 updated: 2024/5/31 下午9:00:57 categories: 前端开发 tags: ...

  6. sql数据的操作

      /*             数据的写入                 名称 : 库名 表名 字段名 用 反引号包裹                 数据 : 字符串数据使用单引号包裹      ...

  7. ETL工具-nifi干货系列 第十五讲 nifi处理器ConsumeKafka实战教程

    1.上一节课我们学习了处理器PushKafka,通过该处理器往kafka中间件写数据,今天我们一起学习处理器ConsumeKafka,此处理器从kafka读取数据进行后续处理,如下图所示: 本次示例比 ...

  8. ETL工具-nifi干货系列 第三讲 nifi web ui 使用教程

    1.nifi 服务启动之后,浏览器输入https://localhost:8443/nifi ,匿名登录或者输入用户名密码进入操作页面,如下图所示: 2.组件工具栏 处理器,鼠标放到图标上提示Proc ...

  9. ES 数据太敏感不让看,怎么办?

    在使用 ES 的过程中,如果 ES 集群中存放的是敏感数据,是不能够随便供人查看的.什么?在排查故障?那也不行,合规高于一切. 不知道大家有没有遇到过上面描述的情景,或者如果是你遇到了,你会怎么办呢? ...

  10. The requested operation cannot be completed because the connection has been broken

    具体报错 The requested operation cannot be completed because the connection has been broken. -- xxxForyy ...