[oeasy]python0048_注釋_comment_設(shè)置默認(rèn)編碼格式
注釋Comment
回憶上次內(nèi)容
使用了版本控制 git
制作備份
進(jìn)行回滾
嘗試了 嵌套的控制結(jié)構(gòu)
層層 控制
不過
除非 到不得以
盡量不要 太多層次的嵌套
這樣
從頂?shù)降?/p>
含義 明確
而且 還扁平
扁平 也能
含義明確
還可以 做點(diǎn)什么?
讓程序含義 更加明確呢???
注釋
其實我們見過注釋

#號
開頭的 注釋顏色 和其他語句 不一樣
不會 被python3解釋執(zhí)行
凡是 #開頭的行
注釋語句
都是
不會 被執(zhí)行
除了
行首 注釋之外
行中 是否可以有注釋呢?
行中注釋
試試

#號
后面的變顏色的部分就是注釋了
如果注釋在字符串里面呢?
嘗試一下
print("hi # there")
在字符串中的 #(Pound,井號)
可以試試
結(jié)論是
#號
是字符串中的字符不會被當(dāng)做注釋
為什么
井號
代表注釋呢?
井號
歷史悠久
就開始使用
井號
鍵了從純數(shù)字鍵盤時代

這個井號是從什么時候有的呢?
質(zhì)量單位
來自羅馬的質(zhì)量計量單位
#
`縮寫形式 為了區(qū)別于 1p
讀作 pound weight
寫作 ?
libra pondo
后來演化成了 // 和 = 的組合

#
在文本中被標(biāo)記為 數(shù)字符號#
是數(shù)字標(biāo)記比如說 1#302中
打字機(jī)時代
#
被 1893年的 Blickensderfer 5 留存下來并且明確作為數(shù)字標(biāo)記使用

后來
#號
順利進(jìn)入ascii字符集
unicode
#
的 各個含義也有了獨(dú)立的字符

各個獨(dú)立字符
2114 ? ?l b bar symbol
2116 № ?numero sign
2317 ? ?viewdata square
266F ? ?music sharp sign
29E3 ? ?equals sign and slanted parallel
不過程序員對于#有獨(dú)立的叫法
hash
英國 管# 叫做 'hash'
來自于 cross-hatching
交叉排線
來自于 hatch

程序員
沿用了這個讀法
#!
"hash, bang"
"shebang"
網(wǎng)絡(luò)時代
#
又有了新的含義
HashTag
可以掛接的主題詞
hashtag

注釋還有什么用處呢?
判別編碼格式
編寫的py文件 都是二進(jìn)制的文件
如果 不進(jìn)行編碼格式說明的話
怎么知道 應(yīng)該用什么 編碼格式打開 呢?
test.py 應(yīng)該
用gb2312打開
還是utf-8的方式打開?
這是一個很現(xiàn)實的問題!
這個問題在 pep263 中的有描述
https://www.python.org/dev/peps/pep-0263/
具體描述
這三種都是可以接受的解碼方式定義
emcas也能識別的
直接給的等號賦值
# encoding= utf-8
# -*- coding: utf-8 -*-
#vim:set fileencoding = utf-8

第四種是關(guān)于解碼方式的正則表達(dá)式
^[ \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
上面三種寫法都可以匹配這個正則表達(dá)式
這正則表達(dá)式應(yīng)該如何理解?
正則表達(dá)

注意下圖中的第二行

^[ \t\f]*#.*coding[:=][ \t]*[-_.a-zA-Z0-9]\+
可以匹配到第二行
^
行開頭[ \t\f]*
前面可以有空格、tab或者換頁符若干個#
有個# 在python語言中可以理解為本行為注釋行.*?
后面接著任意長度的任意字符coding[:=]
存在code:
或者code=
[ \t]*
有0到任意多個空格或tab[-_.a-zA-Z0-9]\+
由中劃線、下劃線、點(diǎn)、大寫小寫數(shù)字若干組成的標(biāo)識符^[\t\v]_#._?coding[:=][\t]\*([-_.a-zA-Z0-9]+)
就是編碼格式的名稱
比如utf-8
([-_.a-zA-Z0-9]+)
小括號中 匹配到的
而且這種寫法同時
也設(shè)置了vim的打開方式
編碼方式
encoding 經(jīng)典定義
#!/usr/bin/python3#vim: set fileencoding=utf-8
第一句
是告訴 shell 的
用哪個二進(jìn)制文件 打開這個當(dāng)前文件
第二句
打開與保存的編碼格式是
utf-8
不但 規(guī)定了 python3 解釋 運(yùn)行源文件的編碼格式 是
utf-8
而且 還設(shè)置了 vim 的對于此文件
如果我定義一個
python解釋器都不認(rèn)識的編碼格式
會如何?
oeasy-8


解釋器感到很困惑
哈哈哈
雖然注釋不用被執(zhí)行
但是作用很大??!
除此之外注釋還可以怎樣用么呢?
搜索注釋


原來 用#時
都是單行注釋
現(xiàn)在 有
多行注釋
多行注釋
用三個引號
就可以 做多行注釋
單雙引號都可以

三引號里面的東西
就是注釋
注釋中 說明了
上面輸入的 是蘋果數(shù)量
下面 是香蕉數(shù)量
雖然注釋 內(nèi)容很長
但是 不會影響程序的 運(yùn)行速度
只是增加
可讀性
而已
總結(jié)
這次了解了注釋
寫注釋 是為了讓程序更可讀
注釋
不
會 影響程序運(yùn)行速度注釋分為兩種
三個
"
三個
'
以
#
開頭不能是 字符串當(dāng)中的
#
單行的
多行的
多行注釋
還有什么 特殊功能 么???
下次再說!??
藍(lán)橋->https://www.lanqiao.cn/courses/3584
github->https://github.com/overmind1980/oeasy-python-tutorial
gitee->https://gitee.com/overmind1980/oeasypython