注释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