字符本质
回忆上次内容
-
hello world
不是从来就有的 - 来自于
unix
和c
- 虽然我们今天有各种先进的学习手段
- 最早的高级语言学习是从最早的那张打字机用纸的手写代码起源的
- 所以输出用的是
print
- 最早输出的是
hello world
- 这就成了一个迷因
- 计算机里面不都是二进制的 0 和 1 吗
- 哪里来的
h
、e
之类的字符呢?🤔
字符本质
#进入python3解释器
python3
- 我们这次只输出一个字符'h'
#直接写h
h
#直接写"h"
"h"
#直接写'h'
'h'
#输出h
print("h")
- 只有字母游乐场不认
- 单引号和双引号引起的字母效果一样
- 因为表示同样的字符串
- 计算机里面不都是二进制的 0 和 1 吗
- 可以输出
h
的二进制形态吗?🤔
ord 序数
#直接写h
"h"
#输出h的序数
ord("h")
- ord 的意思是 ordinal
- 我们通过字符可以得到他的序号
- 可以反过来吗?
- 通过序号可以得到字符可以么?🤔
逆运算
- 好像可以
- 我们可以作为参数把 104 给到 函数chr()
- 注意给的是数字 104
- 而不是字符串"104"
- 没有引号
- 我们可以发现
数字104
和字符'h'
是有关联的 - 有两个单词 ord 和 chr 了
- 他们都是什么意思来着?🤔
- 先用 help 查查 ord
查看帮助
#查看帮助
help()
#然后输入你要查询的东西比如ord回车就可以了
#或者直接
help(ord)
查看字符序号 ord
`
-
ord
的意思是返回这个字符的对应序号ordinal
-
ord(c,/)
是一个函数,参数c
,一个字符 - 帮助文件
q
可以退出帮助模式 - 回到 python 命令行执行模式
- 再查查 chr
查看序号对应的字符 chr
#输出104对应的字符
chr(104)
#查询一下相关帮助
help(chr)
-
chr
的意思是根据序号可以得到相应的字符character
chr(i)
是一个函数
- chr 是函数名
-
i
是函数的chr
的参数
- ord 和 chr,这俩是一对⚖️
- 相反相成,相爱相杀⚖️
开始玩耍
#先求序号,再查字符
chr(ord("h"))
#先查字符,在对应序号
ord(chr(104))
- 这不是相互抵消了么
- 绕了一圈又回来了么
- 操作一轮猛如虎
- 不愧是我二百五
- 我想把
a
和a对应的序号
同时输出可以么? - 查询帮助
查询
- help(print)
- print 可以输出很多的 value
- 这些 value 用逗号分割
- 输出到标准输出流上去试试😋
输出
- 中间的空格含义不明确
- 我想用冒号搁中间
- 用冒号来明确字母和序号之间的映射关系
- 默认的 sep 是空格
- sep 的意思应该是 separator
- 分隔符
- 修改试试🤪
分隔符
- 好像真的可以修改
- 而且我发现了某些规律
-
a
、b
、c
都是挨着的 - 为啥从
97
开始? - 各个字符是如何分布的呢?🤔
- 先总结一下这节内容
- 下次再研究字符分布规律
总结
- 通过
help()
可以从 python 命令行模式进入到帮助模式
- 通过 q 退出
ord(c)
和chr(i)
- 这是俩函数
- 这俩是一对,相反相成的⚖️
-
ord
通过字符
找到对应的数字
-
chr
通过数字
找到对应的字符
-
字符
的本质是数字
- Python 里面的字符对应着一些数字
-
a
对应 97 -
b
对应 98 -
c
对应 99
- 可是,为什么是这样的对应关系,谁规定的,必须的么?🤔
- 我们下次再说!👋