建站教学重庆市工程建设信息网中项网
注释Comment
回忆上次内容
- 使用了版本控制 git 
- 制作备份
 - 进行回滚
 
 - 尝试了 嵌套的控制结构 
- 层层 控制
 
 - 不过 
- 除非 到不得以
 - 尽量不要 太多层次的嵌套
 
 - 这样 
- 从顶到底
 - 含义 明确
 - 而且 还扁平
 
 - 扁平 也能 
- 含义明确
 
 - 还可以 做点什么? 
- 让程序含义 更加明确呢?🤔
 
 
注释
- 其实我们见过注释
 

#号开头的 注释- 颜色 和其他语句 不一样
 - 不会 被python3解释执行
 
- 凡是 #开头的行 
- 都是 
- 注释语句
 
 - 不会 被执行
 
 - 都是 
 - 除了 
- 行首 注释之外
 - 行中 是否可以有注释呢?
 
 
行中注释
- 试试
 

#号后面的变颜色的部分- 就是注释了
 
- 如果注释在字符串里面呢?
 
尝试一下
print("hi # there")
 
- 在字符串中的 #(Pound,井号) 
- 可以试试
 
 - 结论是 
#号是字符串中的字符- 不会被当做注释
 
 - 为什么 
井号代表注释呢? 
井号
- 历史悠久 
- 从纯数字键盘时代 
- 就开始使用
井号键了 
 - 就开始使用
 
 - 从纯数字键盘时代 
 

- 这个井号是从什么时候有的呢?
 
质量单位
- 来自罗马的质量计量单位 
- libra pondo 
- 缩写形式 为了区别于 1p 
- 写作 ℔
 
 - 读作 pound weight
 
 - 缩写形式 为了区别于 1p 
 - 后来演化成了 // 和 = 的组合 
- `#``
 
 
 - libra pondo 
 

#在文本中被标记为 数字符号- 比如说 1#302中 
#是数字标记
 
- 比如说 1#302中 
 
打字机时代
#被 1893年的 Blickensderfer 5 留存下来- 并且明确作为数字标记使用
 

- 后来
#号顺利进入ascii字符集 
unicode
#的 各个含义- 也有了独立的字符
 

- 各个独立字符 
- 2114 ℔ l b bar symbol
 - 2116 № numero sign
 - 2317 ⌗ viewdata square
 - 266F ♯ music sharp sign
 - 29E3 ⧣ equals sign and slanted parallel
 
 - 不过程序员对于#有独立的叫法
 
hash
- 英国 管# 叫做 ‘hash’ 
- 来自于 hatch 
- 来自于 cross-hatching
 - 交叉排线
 
 
 - 来自于 hatch 
 

- 程序员 
- 沿用了这个读法
 
 #!- “hash, bang”
 - “shebang”
 
- 网络时代 
#又有了新的含义
 
HashTag
- 可以挂接的主题词 
- hashtag
 
 

- 注释还有什么用处呢?
 
判别编码格式
- 编写的py文件 都是二进制的文件 
- 如果 不进行编码格式说明的话
 - 怎么知道 应该用什么 编码格式打开 呢?
 
 - test.py 应该 
- 用gb2312打开
 - 还是utf-8的方式打开?
 - 这是一个很现实的问题!
 
 - 这个问题在 pep263 中的有描述 
- https://www.python.org/dev/peps/pep-0263/
 
 
具体描述
- 这三种都是可以接受的解码方式定义 
# encoding= utf-8- 直接给的等号赋值
 
# -*- coding: utf-8 -*-- emcas也能识别的
 
#vim:set fileencoding = utf-8
 

- 第四种是关于解码方式的正则表达式 
^[ \t\f]*#.*?coding[:=][ \t]*([-_.a-zA-Z0-9]+)- https://regexper.com/?#%5E%5B%20%5Ct%5Cf%5D*%23.coding%5B%3A%3D%5D%5B%20%5Ct%5D%28%5B-_.a-zA-Z0-9%5D%2B%29
 - 上面三种写法都可以匹配这个正则表达式
 
 - 这正则表达式应该如何理解?
 
正则表达

- 注意下图中的第二行
 

^[ \t\f]*#.*coding[:=][ \t]*[-_.a-zA-Z0-9]\+- 可以匹配到第二行
 ^行开头[ \t\f]*前面可以有空格、tab或者换页符若干个#有个# 在python语言中可以理解为本行为注释行.*?后面接着任意长度的任意字符coding[:=]存在code:或者code=[ \t]*有0到任意多个空格或tab[-_.a-zA-Z0-9]\+由中划线、下划线、点、大写小写数字若干组成的标识符
^[\t\v]_#._?coding[:=][\t]\*([-_.a-zA-Z0-9]+)([-_.a-zA-Z0-9]+)- 小括号中 匹配到的 
- 就是编码格式的名称
 - 比如utf-8
 
 
- 而且这种写法同时 
- 也设置了vim的打开方式
 
 
编码方式
- encoding 经典定义
 
#!/usr/bin/python3
#vim: set fileencoding=utf-8
 
- 第一句 
- 是告诉 shell 的
 - 用哪个二进制文件 打开这个当前文件
 
 - 第二句 
- 不但 规定了 python3 解释 运行源文件的编码格式 是
utf-8 - 而且 还设置了 vim 的对于此文件 
- 打开与保存的编码格式是
utf-8 
 - 打开与保存的编码格式是
 
 - 不但 规定了 python3 解释 运行源文件的编码格式 是
 - 如果我定义一个 
- python解释器都不认识的编码格式
 - 会如何?
 
 
oeasy-8


- 解释器感到很困惑 
- 哈哈哈
 
 - 虽然注释不用被执行 
- 但是作用很大啊!
 - 除此之外注释还可以怎样用么呢?
 
 
搜索注释


- 原来 用#时 
- 都是单行注释
 
 - 现在 有 
- 多行注释
 
 
多行注释
- 用三个引号 
- 就可以 做多行注释
 - 单双引号都可以
 
 

- 三引号里面的东西 
- 就是注释
 
 - 注释中 说明了 
- 上面输入的 是苹果数量
 - 下面 是香蕉数量
 
 - 虽然注释 内容很长
 - 但是 不会影响程序的 运行速度
 - 只是增加 
可读性而已 
总结
-  
这次了解了注释
- 写注释 是为了让程序更可读
 - 注释 
不会 影响程序运行速度 
 -  
注释分为两种
- 单行的 
- 以
#开头 - 不能是 字符串当中的
# 
 - 以
 - 多行的 
- 三个
" - 三个
' 
 - 三个
 
 - 单行的 
 -  
多行注释
- 还有什么 特殊功能 么?🤔
 
 -  
下次再说!👋
 -  
蓝桥->https://www.lanqiao.cn/courses/3584
 -  
github->https://github.com/overmind1980/oeasy-python-tutorial
 -  
gitee->https://gitee.com/overmind1980/oeasypython
 
