导读|入门Python的必备知识

你好,我是尹会生。

咱们这个课程是用Python解决办公低效问题,但是即使你从来没有用过Python,甚至没有任何的编程语言基础,也完全可以学会这门课

为了解决你的语言问题,我特意准备了这节课。我会给你讲解 Python的五个最基础的语法知识,包括运行环境配置、变量、数据类型、控制语句和使用函数库的方法。

这节课的内容也不需要你马上掌握,其中提到的一些关键知识,我会在后面的课程中详细讲解,包括它们的使用场景和具体用处。学完这节课,你只要能对Python有一个初步的了解,可以看懂基本的Python代码就行了

当然,如果你有一定的Python语言基础,那么这节课就相当于给你巩固复习了,帮你查漏补缺。

运行环境配置

我们先从Python的运行环境配置开始说起。初学者面对的最大难题,就是如何让自己的Python程序运行起来。

一般情况下,运行的Python代码会被保存到一个以.py作为扩展名的文件中,也就是Python脚本文件。要想让Python程序运行,我们需要打开终端应用程序(在Windows中开始-运行-cmd.exe):

python3 /py文件所在的路径/xxx.py
或
cd /py文件所在的路径
python3 xxx.py

这段代码中,xxx.py就是我们编写好的Python脚本文件,Python3 是Python脚本文件的解释器,它会把我们编写好的代码翻译给计算机,让计算机去执行。

在运行程序的过程中,有两点需要注意。

第一,Windows和macOS默认是没有安装Python解释器的,所以你需要通过Python官方网站下载不同操作系统下的Python解释器。关于Python的版本,我建议你使用官方建议的最新稳定版本,下载后直接安装就可以使用了。

第二,Python3 解释器需要在字符终端下运行。

以macOS系统为例,你需要打开终端来运行python3 -V 命令来验证Python解释器是否安装成功,如果显示了Python解释器的版本,那说明安装是成功的。如果提示没有找到这个命令,你需要重新安装,并注意安装过程中是否有错误提示信息。

 python3 -V   # 执行的命令
 Python 3.9.1 # 返回的结果 

搭建Python的开发环境,是运行一切程序的基础。无论你现在手边电脑操作系统是哪一种,我都建议你马上行动,先按照刚刚讲解的步骤,正确地安装和设置Python开发环境。这样在之后的课程中,你就能马上跟着我的讲解进行操作了。

变量

在正确配置好Python的开发环境之后,咱们继续学习一个重要概念:变量。

变量这个词来源于数学,在编程语言中,变量主要是用来存储计算结果或表示值的抽象概念。

计算机中的变量都有一个名字,我们把它称为变量名。这个名字一般是根据变量的英文名进行人为命名的,一般多用简短且易于记忆的名字。比如,我在课程中会使用src_path、dst_path两个变量表示操作源文件路径和目标文件路径。

我们还可以为变量指定一段数据,这段数据称作变量的值。计算机处理的数据很大一部分来源于用户输入的数据和运算的结果数据,如果这部分数据需要跟踪,我们就可以将数据存储在变量中。

对于初学者来说,变量的概念比较抽象,你可能现在有点蒙。别急,我现在给你举一个简单的例子,你一看就明白了。假如我要在Python当中计算两个数的和,代码如下:

x=100
y=200
z=x+y
print(z)

在上面的代码当中, 我们分别定义了x、y、z三个变量。 x、y、z称作变量名,定义变量名必须要遵从以下四个规则:

  1. 变量名只能是字母、数字或下划线;
  2. 变量名的第1个字母不能是数字;
  3. 变量名也不能是Python的关键字;
  4. 变量名是区分大小写的。

上述代码中的=和+,称作运算符。

  • “=”叫做赋值运算符。它的功能是将右边的表达式赋值给左边的变量。
  • “+”叫做算术运算符。进行算术运算时还可以使用-、*、/、%等常用算术运算符号。

代码的最后一行,为了能让你的计算结果在终端上显示,我们需要使用一个叫做print的内置函数。

内置函数是Python内置的一种功能。比如代码中的print就是用来进行输出的。它的最基本用法就是在print函数的括号中写入变量,除了输出最终的结果外,也可以将print函数放在程序运行的过程中,方便你输出更丰富的调试信息。

通过上面的讲解,我为你介绍了变量如何进行赋值和如何输出。其实,在Python中变量用来存储的数据还会区分类,这些类型也有专门的名称,叫做数据类型。

数据类型

Python支持的数据类型有数字、字符串、元组、列表、集合、字典6种,不同的数据类型用于描述不同的类别,比如姓名可以用字符串类型,性别可以用布尔型,身高可以用数字类型。下面的代码,我为你演示一下三种最简单的数据类型:

name = "yin huisheng"
male = True
hight = 180

上面的三个变量,我分别为它赋予了字符串、布尔类型和浮点型这三种数据类型。 Python的变量不需要事先定义变量类型,跟其他语言相比更加简洁。Python可以直接对变量进行赋值,这样就可以根据变量值自动识别变量的类型了。

不过在上面的例子当中,你还需要注意两点。

一方面,如果你使用字符串类型,就必须给字符串增加引号。这是字符串的语法规定,如果不加引号会被识别为其他类型,在进行操作时就会得到不同的结果。

比如说,我定义Python的变量为“123”,加了引号会被识别为字符串,如果一个变量“123”没有加引号,则会被自动识别为数字。如果在Python程序中使用“123+123”会得到两个整数的和“246”,如果是“123”+“123”就会得到两个字符串的连接“123123”。

另一方面,使用布尔类型的时候,True和False首字母必须要大写,它们是Python的关键字,如果首字母没有大写会被当作变量处理,解释器也会报错。True在布尔类型表示真(对),False表示假(错)。比如算式10>5 是正确的,在Python中就会用True来表示结果是真,反之为假。

上面提到的整数、浮点数和布尔型都是属于数字类型。除了这些,Python还支持很多种数据类型,包括数字、字符串、元组、列表、集合、字典等。它们之间的关系,我用下面的思维导图为你进行展示。

我在课程中会逐一为你剖析它们的用处,让你能够全部掌握。当你学会这些类型的时候,可以更精确地描述数据,比如,我想用Python的数据类型存储“5个苹果和10个橘子”,我们就需要使用字典和字符串来表示这些数据。你可以看一下下面这个记录水果数量的例子:

fruits1 = {"apple":5, "orange":10}
fruits2 = "apple,5,orange,10"

我分别用字典和字符串记录了水果的名称和数量,可以看到,字典表达的水果和数量之间的映射关系更明确,而且不同的数据类型还能支持它特有的内置方法。例如上面定义了水果的字典数据类型,我们可以通过 fruits[“apple”] 直接得到苹果的数量5 , 有时候,这些便捷的内置方法也是我们选择数据类型的依据。

数据类型是一门编程语言的必要组成部分,学习编程语言主要就是为了掌握它的数据类型。这节课我只要求你能够了解Python有哪些基本数据类型就可以了,在之后的课程当中,我会为你重点介绍每一种数据类型的优缺点,以及该怎么使用它们。

流程控制

流程控制,就是我们经常说的程序执行的顺序控制。 从上面的几个例子当中,你会发现程序都是从上向下依次执行的。这也是Python语言最简单的结构——顺序结构。在Python中,除了顺序结构之外,还有分支和循环两种结构。

分支结构

分支结构用来判定某个条件是否成立,它会根据一条或多条语句的判定结果(是True还是False)来执行对应操作的语句,从而实现分支的效果。实现分支结构的语句叫做if语句。除了if这个关键词外,我们经常还会用if…else和if…else…if语句来实现更多的分支和更复杂的逻辑。

我们一起看一个比较数值大小的例子吧。

x = 20
if x > 10:  # 注意结尾的冒号:
    print("if的判断结果为True")
    print("x的值大于10")
else:
    print("if的判断结果为False")         
    print("x的值小于10")
print("程序执行结束")

# 执行结果如下
if的判断结果为True
x的值大于10  
程序执行结束

在上面这段代码当中,我们实现了判断变量x是否大于10的功能。在书写分支结构时,要注意书写格式问题,分支结构的书写格式比顺序结构要复杂,例如:

  1. if判断的书写格式,冒号标志着if判断的结束。
  2. if下方有缩进的代码,是在True的条件下才能运行的。在演示代码中,缩进代码由2行组成,其实,它也可以由很多行代码组成,多行代码的形式被称作代码块。代码块一直到缩进再次改变的时候,True条件下的代码才结束。

需要你注意的是,在整个程序当中,缩进方式必须一致,要么使用Tab、要么使用4个空格进行缩进。Python对于缩进和复合语句结尾的冒号要求非常严格,如果弄错了就会报错。而且,缩进不同会大大影响一个程序的运行结果。例如上面的代码中“print(“程序执行结束”)” 如果有缩进,你就看不到“程序执行结束”这行执行结果了。

循环结构

在程序运行逻辑中,另一个重要的结构叫做循环结构。循环结构是可以多次执行同一段代码的语句结构。在Python当中有两种循环语句,分别是while语句和for语句。

while语句在循环开始前先对条件语句进行判断。如果条件语句的结果为True,则循环一次再次进行判断。如果条件允许的结果为False,则循环结束。这里所指的条件语句和if语句当中的条件是一样的。下面的例子是我使用while语句实现的从1~10的累加。

start = 1
total = 10
sum = 0
while start <= total: # 条件为True 继续执行循环
    sum += start
    start += 1
print(sum)  #条件为False循环结束,输出结果

另一个循环语句叫做for语句,它和while的功能有所不同。我们一般把for的功能称作遍历功能。一般我们会提供一个列表,通过for将列表中的每一个元素读取出来,进行处理。

举个例子,如果我们要依次输出列表中的每一个元素,就可以用下面的代码:

total = list(range(1,11))  # 定义一个1-10 的列表
for i in total:
    print(i)
 
# 输出结果
1
2
3
4
5
6
7
8
9
10

流程控制语句可以改变Python程序的执行顺序,而我们通常会根据实际的业务场景来控制某些语句块进行重复执行的。

使用函数库

Python语言的强大之处,除了语法简单外,就在于它庞大的函数库了。

Python的函数库有标准库和第三方库(也叫扩展库)。标准库是Python自带的,而扩展库是需要再进行安装的库。你可以从Python的官方文档PyPI网站中找到它们,其中,PyPI网站的库就是扩展库。

PyPI网站上面的项目超过28万个,几乎包含了各个行业和各个功能的应用,实现了很多你日常需要手动操作的功能。

这些库如何是用呢?首先看一下官方自带的库。

如果要使用官方自带的库,可以使用import关键字导入。例如我计算算数平方根功能,就可以使用如下方法:

import math
math.sqrt(16)

import 后面指定要使用的库的名称,使用库的具体功能,通过官方文档来找到相应的函数。例如,算数平方根使用sqrt函数就可以实现你想要的功能了。

标准库的使用非常容易吧,那如何使用扩展库呢?由于扩展库都需要通过网络进行下载,因此我们还需要提前在终端使用pip3命令进行下载和安装。例如我希望Python可以支持Word文件格式, 我就需要在终端执行下面的代码。

pip3 install python-docx 

下载和安装之后, 就可以像标准函数库一样使用import导入使用了。

总结

通过上面的内容,我为你简单介绍了一下入门Python需要掌握的五大部分,包括环境配置、变量、数据类型、控制语句和使用函数库的方法。这五个部分是Python最基础也是最必要的语法知识。希望你能通过我的介绍,对Python语言有所了解,消除对编程语言的畏惧心理。

最重要的是,即使今天这节课你没有完全懂,也没有关系。

一方面,我会在之后的课程中不断讲解每个部分的用法和具体使用场景。还是我在开篇词中说的学习方法,你需要在听我讲解的同时,动手操作,反复练习,这些语法知识就不会是太大的问题。

另一方面,我也希望你能在学习之后的课程时,如果遇到哪些关键语法知识不太明白,就回头来学习今天这节课。这节课相当于整个课程的基石,需要反复琢磨、反复学习。

如果你能跟着我的课程不断练习实操,那学完后,你都能够熟练地修改课程中涉及到的代码,并且还能根据自己的工作场景,自行编写提升工作效率的程序。

思考题

最后留一道思考题给你,你以前是如何学习编程语言的呢?有没有好的学习方法分享一下?或者你在学习过程中有遇到什么困难,也可以分享出来。

如果你觉得这节课能帮助你提升办公效率,欢迎点击“请朋友读”,分享给你的朋友或同事。

编辑小提示:专栏的完整代码位置是https://github.com/wilsonyin123/python_productivity,可点击链接下载查看。或者通过网盘链接提取后下载,链接是: https://pan.baidu.com/s/1UvEKDCGnU6yb0a7gHLSE4Q?pwd=5wf1,提取码: 5wf1。

精选留言

  • 🐑

    2022-03-30 22:51:04

    编辑小提示:专栏的完整代码位置是https://github.com/wilsonyin123/python_productivity,可点击链接下载查看。

    或者通过网盘链接提取后下载,链接是: https://pan.baidu.com/s/1UvEKDCGnU6yb0a7gHLSE4Q?pwd=5wf1,提取码: 5wf1。
  • Fan

    2021-02-03 21:42:13

    重要的事情说三遍,多看官方文档,多看官方文档,多看官方文档。会让你少走很多弯路。
    作者回复

    官方文档很重要。但是对于刚接触Python的人直接看官方还是有点困难的。可以在课程过半的时候再来看。理解会深入一些。

    2021-02-05 14:19:27

  • 咱是吓大的

    2021-02-25 16:22:14

    个人经验,技能类的学习应该先模仿后理解再创新
    作者回复

    先模仿后理解再创新,是正确的学习方法

    2021-02-28 02:32:40

  • 海的对岸

    2021-02-09 14:22:13

    边看便敲,碰到问题,排查问题,上网查
    编程的学习过程,在我看来,就是一条缓慢的学习曲线,很长一段时间,成效看起来比较低,但是你学着学着,之前学的,慢慢就都理解了,然后就会了
    作者回复

    还差了一个步骤,总结并优化
    代码要归类整理好,随着不断开阔眼界,要持续迭代自己的代码

    2021-02-09 19:36:40

  • 王波

    2021-03-16 16:28:24

    这节课相当于整个课程的基石,需要反复琢磨、反复学习。
    作者回复

    是的,加油

    2021-03-17 13:25:12

  • 建明

    2021-02-20 19:38:07

    分支结构代码的最后一句,print("程序执行结束"),总是出错,我试了好多遍,最后发现可能是最后这段代码前面那个符号的问题,怎么把‘...’换成‘>>>’呢?
    作者回复

    首先可以看一下报错的信息。去信息做一下定位。
    另外如果是你说的三个点这种方式。应该是你使用了交互方式运行了Python。可以在后边使用回车,来结束当前的语句块,这样就可以将提示符变成>>>了

    2021-02-22 13:59:39

  • 骆中容

    2021-05-16 17:29:22

    库的功能是python的强大功能,个人觉得可以专门安排一个章节介绍怎么使用库
  • 建明

    2021-03-11 21:48:15

    x = 20if x > 10: # 注意结尾的冒号: print("if的判断结果为True") print("x的值大于10")else: print("if的判断结果为False") print("x的值小于10")print("程序执行结束")
    以上这段代码在pycharm中运行可得到正确的结果,但是在Python中运行就会出错,如下:
    >>> x = 20
    >>> if x > 10: # 注意结尾的冒号:
    ... print("if的判断结果为True")
    ... print("x的值大于10")
    ... else:
    ... print("if的判断结果为False")
    ... print("x的值小于10")
    ... print("程序执行结束")
    File "<stdin>", line 7
    print("程序执行结束")
    ^
    SyntaxError: invalid syntax
    作者回复

    print("程序执行结束") 这一行上面要再输入回车,结束else语句,因为你现在是用的交互模式,交互模式认为 print("程序执行结束")这句还是else语句块的内容,并且和上面的对齐方式不正确

    2021-03-11 22:45:28

  • Geek_bc5d2d

    2021-02-20 23:42:52

    pip3 install python-docx
    提示SyntaxError: invalid syntax
    这个是扩展库没有下载成功吗
    作者回复

    pip3需要在字符终端执行,不在Python解释器的终端执行

    2021-02-22 13:54:31

  • 小伟

    2021-02-17 10:19:17

    基础入门,我喜欢搜索"xxx the right way"的入门指南文档,跟着入门指南熟悉基础知识和进阶路径,后面实战敲代码做demo,遇到问题查阅官方文档,当然还有stackoverflow
    作者回复

    nice!这样学习前期有的辛苦,但是走的弯路最少
    再补充一个,别忘了 Google

    2021-02-19 12:01:41

  • 炫丽生活

    2021-02-24 20:08:32

    cmd怎么运行pycharm文件
    作者回复

    你好,pycharm属于图像界面的IDE工具,无法在cmd下运行, 建议你在安装Python解释器之后,再安装Pycharm, 这样Pycharm可以自动识别python的可执行路径, 自动配置运行环境,这样对刚开始Python开发的入门环境更友好一些

    2021-02-28 02:26:02

  • 公号-技术夜未眠

    2021-02-08 10:18:30

    一门新语言的快速入门指北:
    鸟瞰全貌
    对比之前已经掌握过语言间的差异
    写一个简单的demo,先运行,后一步步调试
    写一个小的项目,比如爬虫程序
    多看官方文档,多看优秀的开源项目
    作者回复

    加油

    2021-02-09 20:13:34

  • 落曦

    2021-02-07 12:59:28

    基础入门,这一篇就够了,开心,复习了!
    学编程 知行合一 多写代码就可以啦
    作者回复

    加油

    2021-02-09 20:20:55

  • linker

    2021-02-04 13:49:20

    学c语言,先照着书上敲代码。
    作者回复

    那样效果不好。配合专栏问题加课后代码服用,再。照着书上。系统性的过一遍,理解的更深刻。

    2021-02-05 14:15:56

  • 👊

    2021-02-04 11:11:00

    刚好学到了老师零基础入门python课程的while 和 for循环语句,看这一节就比较容易理解。
    两门课可以同时进行。
    作者回复

    一个实操,一个办公场景加深理解

    2021-02-05 14:39:18

  • sunlight_r

    2023-01-04 17:14:40

    老师,这句没能理解为啥是1-10
    list(range(1,11)) # 定义一个1-10 的列表
    作者回复

    range的范围被设计成左闭右开区间,即 1小于等于 x 小于 11

    2023-01-10 16:26:45

  • 老吴

    2021-12-14 21:06:44

    python3 -V,python3 /py文件所在的路径/xxx.py,这里为什么python后要带3?
    作者回复

    为什么带3呢?这要涉及到Python的历史了。在“古代”Python的主流版本是2.0版本,当时执行python的脚本,用的叫做 python xxx.py 这样的写法。时间来到了2008年,Python的作者由于无法忍受在Python2.0代码时代,自己对Python这种语言的烂代码,于是重新写了新的Python出来,也就是Python3.0 。同时做了一个勇敢的决定,那就是Python3和Python2不兼容。

    这也就导致了在2008年出现了电脑里Python2、3两个版本并存的问题。既然并存了如果执行的时候都使用python xxx.py 那就容易出现使用错误版本的问题。在那时产生了 python2.exe xxx.py 执行版本2兼容的代码。 python3执行新版本的代码。慢慢的python2退出历史舞台,python3 xxx.py 这种执行方式就被大家按照习惯保留下来了。 这也就是你看到现在的python执行程序都使用python3 而不使用python的原因了。

    2021-12-22 13:13:19

  • Chq

    2021-10-15 14:22:28

    学习,主要靠练习和实践。
    作者回复

    没错!知行合一,理论加实践,方得始终!

    2021-10-19 10:59:10

  • 阳光小孩

    2021-05-08 07:08:54

    学习python一段时间,在面向对象模块遇到瓶颈,原因自然就是思维方式还没有完全转变为程序思维,虽然Python语言简洁易懂但极为灵活,我希望自己能独立做出一些简单的Python项目包括GUI,数据处理,办公自动化,之前一直在学基础,今天开始跟着老师的脚步,希望自己得到蜕变!
    作者回复

    加油!面向对象和面向过程比起来,程序思维的转变是最大的困境。同样需要多写多练

    2021-05-18 16:32:40

  • 2021-03-03 21:09:35

    学过r语言,不知道有python和r语句的对照材料吗?
    作者回复

    不同的编程语言在语法方面还是有比较大的差别的,不过你可以根据r语言的学习经验和Python进行对比学习,比如从输入输出、赋值、逻辑判断和循环等最基础语法入手,再逐步掌握Python语法的特性.列出两种语言的差异,比较学习,这样学习效率高一些

    2021-03-05 11:22:26