网站首页 > 技术文章 正文
换行字符
回忆上次内容
- 数制可以转化
- 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 上用 B 给 B 写扩展,称之为 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
- 这样我就可以自由的控制哪里换行了!
- 可以做下面这个框架标题吗?
- 我们下次再说!
- 上一篇: vue添加换行效果(vue中换行)
- 下一篇: OneCode 表单引擎设计(vue表单引擎)
猜你喜欢
- 2025-03-19 vue添加换行效果(vue中换行)
- 2025-03-19 ArcGIS10标注换行及添加文字的方法
- 2025-03-19 Java 字符串常见的操作(java字符串操作常用方法有哪些)
- 2025-03-19 JAVA学习:跨平台时如何处理回车换行
- 2025-03-19 Python实现字符串按字母位置重复换行输出
- 2025-03-19 聊一聊java程序中的换行符,你用对了吗
- 04-29kali2021ping 外网不通
- 04-29我是如何用这3个小工具,助力小姐姐提升100%开发效率的
- 04-29注册下载啊
- 04-29Spring 中三种 BeanName 生成器!
- 04-29mysql学习9:创建数据库
- 04-29Linux之yum源详解
- 04-29夏日终曲/请以你的名字呼唤我/Call me by your name(无剧透)
- 04-29注释竟然还有特殊用途?一文解惑 //go:linkname 指令
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- sqlset (59)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)