1 基本概念
要想较好的理解 Python,做到知其然知其所以然,而非生搬硬套,就需要对一些基本概念有理解,所以不会一上来就介绍变量、函数、循环,而是先对程序语言的的一些基础概念进行介绍。不感兴趣的可以直接跳过。内容主要来源于 python 帮助文档的学习,有余力的同学建议能对python 官网上的帮助文档做下学习,个人认为比很多python 书籍都写的好很多。
词法分析与解析
不管是人言还是兽语都是在遵循预先定义/形成的规则,交流过程基本上可以分成两部分:
- 标记、组织标记、识别标记:词语,发音
- 理解标记:对其中的语义进行理解
计算机在处理一段代码时也遵循这个过程:
- 词法分析(lexical analyzer):对代码中的符号进行识别,得到一堆标记(token)。
- 语义理解(parser):对标记进行处理、解析。
词法分析过程中如果出现错误,就会报 SyntaxError 一类的错误,这是比较基础的错误,通常在编译阶段就能发现,也相对比较好修改,当然也很有可能会阻挡初学者很长一段时间,为了能更好地消除这类错误,有必要对 Python 词法分析的一些基本概念进行介绍。
行结构
代码都是由一条条语句构成,我们先看看“猪”是怎么跑的:
from wordcloud import WordCloud
import matplotlib.pyplot as plt
def print_hi(name):
# Use a breakpoint in the code line below to debug your script.
print(f'Hi, {name}') # Press ⌘F8 to toggle the breakpoint.
# Press the green button in the gutter to run the script.
if __name__ == '__main__':
print_hi('PyCharm')
filename = "word_cloud.txt"
with open(filename, encoding="UTF8") as f:
mytext = f.read()
word_cloud = WordCloud().generate(mytext)
plt.imshow(word_cloud, interpolation='bilinear')
plt.axis("off")
print_hi('End')
这里先不需要理解代码的含义,对 Python 脚本有一个大概印象即可。 在面对一段代码时,Python 词法分析会先把代码分成一系列逻辑行,这里引出了物理行与逻辑行以及一些相关概念:
-
物理行:由字符加换行符构成。有一点需要注意,换行符不同平台可能不一样,Windows 换行符是 CR LF(ASCII,Python 中表示\r \n),Linux 是 LF;
-
逻辑行:由一个或者多个物理行构成,多个物理行之间使用连接符号连接(显式的或者隐式的),Python 中显式的连接符“\”,隐式连接符如{}、[]等。一个逻辑行也就是一条语句。
#显示连接符进行行连接 if 1900 < year < 2100 and 1 <= month <= 12 \ and 1 <= day <= 31 and 0 <