3  使用Visual Studio Code

我们一般不会直接在命令行界面进行编程, 而会利用一个集成编程环境(IDE), 为我们提供文件管理、语法提示、自动补全等等功能。 Python编程流行的IDE有PyCharm,以及我们现在要用的vscode文字编辑器+Python相关插件。

这些集成编辑环境,通常会把.py文件的编辑和python的交互环境结合起来,让我们一边编辑py文件的同时,一边执行代码并查看结果。数据分析完毕时,代码同时也写成了。

3.1 代码的存放

在正式开始之前,选择一个存放代码等等有关文件的文件夹。 为了便于演示,这里选择在桌面上新建一个“python_class”的文件夹, 作为本课程有关代码的存放地点。

但一般建议选择一个比较好的目录,比如你可能有一个地方是专门用来存放课程的地方(比如在“我的文档”下), 在此位置建立python_class较好。这里选择桌面仅仅是为了方便演示。

注:课程文件夹不要放在在C盘根目录下,可能有权限问题。

打开vscode,文件,打开文件夹,打开vscode中的资源管理器,我们发现什么都没有。

3.2 建立的一个源代码文件

选择文件,新建文本文件,直接保存,给这个空白文件起一个名字,如“001.py”。 注意,扩展名必须是“.py”。

当你在vscode编译一个py文件,vscode会自动调用所以和python有关的插件。 vscode会从一个文本编辑器,成为一个集编辑、运行、调试于一身的Python集成开发环境。

当然,你用vscode来写其他语言的代码也可以。

3.3 vscode的界面

右上角出现了播放按钮▶,可以把当前文件的代码从头到尾执行一次。

右下角出现了Python字样,现在进入了Python代码编辑模式。

如果出现了黄底色的Select Interpreter字样,是没指定解释器。等于再问, 写好的代码交给谁来执行?

点一下,在弹出的框中选择你的anaconda安装路径,本案(安装在默认路径)是~\anaconda3\python.exe

(如果第一次没弹出,记得点几下图中的刷新按钮 ↻)

注意

  1. 如果你在安装anaconda的时候更换了安装路径,这里可能会出现找不到anaconda,进而找不到python解释器的问题,见3.7节,或者找老师。
  2. 在找不到anaconda的情况下,部分同学会选择让windows系统安装一个python,新手不推荐
  3. 不要选择 miniconda,部分同学会错误地安装了miniconda,新手不推荐

3.4 第一段代码

我们在文件里写如如下代码,保存(ctrl+s)。

就算你完全不懂python,凭感觉也可以知道这段代码是打印两个变量相加的结果。

a = 1
b = 2
c = a + b
print(c)

3.4.1 预备知识:Python的注释(comment)

先说注释。Python使用井号:#来表示注释。所谓注释,就是“给人看”的内容,而Python的解释器会直接忽略掉这部分。

  1. 注释可以出现在任何地方,注意#号只会影响同一行右边的代码,因此也可以出现在行尾。
  2. 注释往往也可以用来临时屏蔽一部分代码,只要在代码的最左侧插入一个#,那么整行代码会被Python解释器忽略。这是常用技巧。

我们尝试写几个注释,例如:

# 这段代码会计算a和b相加的结果
a = 1
b = 2
c = a + b # 这行代码会计算 a + b

# 下面的代码会把c的值打印出来
print(c)

注释是对代码的说明,非常重要:

  1. 写代码时间长了,肯定会不记得自己写的内容。有时候上午写的,下午就会忘记。
  2. 多人合作的时候,要读懂彼此的代码,也必须有良好的注释。

特别地,注释是考试的给分点。你的考试程序输出了正确的结果,可以得到合格评价,同时具有良好的编写风格、合理的注释,才能得到更高分。

3.5 执行

代码写好了,执行有几种方式。

3.5.1 Run Python File 按钮 ▶

点击右上角的播放按钮Run Python File,会把当前的py文件,从头到尾执行一次。 你会看到输出了结果3

点击垃圾桶图标🗑,终止这个终端。

一般而言,要把文件从头到尾执行一次,就可以用这种方式。

3.5.2 互动执行

如果你要做数据分析之类的任务,需要一般看结果一边写代码,我们会选择互动执行的方式。

使用一种特殊的注释# %%(井号,2个百分号,中间可以有空格),一般称为“cell separator” 可以把python代码分成一个一个的cell。试一下:

# %%
a = 1
b = 2
print(a)
print(b)

# %%
c = a + b
print(c)

# %% cell seperator把代码切成了一块一块:两行seperator中间的部分,被视为一个cell。

我们点击第一个run cell,终端只会执行第一个cell,即1到6行的代码。

这一块代码会打印出变量ab的值。

点开终端上的省略号,可以看到这个cell具体执行了什么代码。

同理,点击第二个run cell会执行下一块代码,计算a+b并打印c。

但一般我们用快捷键:

Ctrl + 回车:执行当前cell。(Mac系统可能是Cmd + 回车) Shift + 回车:执行当前cell,并跳到下一个cell。

所以,你可以按住Shift,连续按回车,就可以一个cell一个cell往下执行。

这在进行数据分析的时候会用很多。

单步执行和debug会在后面专门说。

特别地,在互动执行下,每个cell的最后一行的结果会自动显示。 如果只是查看变量的值,这可以让我们少打一个print()或者display()。 注意这只在互动模式下生效。

尝试:把上述代码的print(a)print(b)改写。

注意:如果你的anaconda安装路径中有中文(例如你的用户名是中文),可能运行报Bad file descriptor错误,见3.7节,或者找老师。

3.5.3 变量表

在交互执行的过程中,点击变量表,可以查看当前运行环境中的变量的信息。

3.5.4 脱离vscode执行

python本身是一个独立的可执行程序,和vscode并无关系。这个可执行程序即所谓解释器, 会把源代码从第一行到最后以后执行一次。

因此,你只要告诉python你要执行哪个.py文件即可。

这个一般教程会放在第一部分,但以我们的任务更多是要交互执行,这里只简单演示一下。

在你anaconda prompt或者终端中,进入你刚才新建的python_class目录。

python 001.py

结果是一样的。

实际上,右上角的播放按钮,做的是同样的事,只是把多个步骤(进入anaconda环境, 进入工作目录,输入python 001.py等)合并成一个按钮。

3.6 本节要求

  1. 创建一个用来专门存放本课程代码和数据的文件夹(称为工程目录),如果图省事就在桌面上建立(但不推荐)
  2. 在上述工程目录中建立一个.py文件,计算上述的 1+2的代码。(这里可能会遇到一大堆问题)

注意

  1. 安装和配置编程环境是文科生学习编程的第一个大障碍,过了这一关,后面就会顺利起来。
  2. 历届都有小部分同学一直卡在安装过程,最多的能卡半个学期,不要犹豫,搞不定找老师。

3.7 排错:vscode执行代码出错

3.7.1 运行单元格(run cell)出现 Bad file descriptor 错误

如果你用的是Windows,且你的用户名是中文,那么用vs code的run cell运行,可能会出现如下错误:

(这是某位同学的笔记本电脑,请大家要经常清理自己电脑的屏幕)

注意最后一行

Bad file descriptor (bundled\zeromq\src\epoll.cpp:100)

这个问题可能是中文用户名有关,某个组件(pyzmq)新版本处理中文路径会出错。处理方法有2种, 第一种已经在部分同学的电脑上验证过了,第二钟则尚未验证。

方法1:改环境变量

在windows菜单中选择”编辑系统环境变量”

在弹出的窗口中选择最下方的“环境变量(N)”

可见最下方有TEMPTMP2个环境变量(临时文件所在目录)。双击2个环境变量,都改为C:\Temp

最终如图。

重启电脑即可。

方法2:降级pyzmq

进入anaconda prompt(见前一章),依次执行代码

pip uninstall pyzmq <回车>
pip install pyzmq==19.0.2 <回车>

重启vs code即可。

3.7.2 找不到Anaconda

如果不在默认的路径上安装anaconda,比如转移到了d盘,可能在选择解释器(select interpreter)的时候,找不到正确的conda和python路径。这时候需要手动设置你的conda安装路径。

在vscode界面的左下角点击“管理(齿轮图标)” -> “设置”,搜索’conda’,一般有三个选项:

(注意:随着vscode更新,选项也会变多,新版本可能需要你拉滚动条才能找到。)

  1. Conda Path选择你安装conda路径加上\condabin\。例如你装到了D:\anaconda3\下,那么路径就是D:\anaconda3\condabin\
  2. Default Interpreter Path选择你安装anaconda的路径,按上面的例子,就是D:\anaconda3\

这时候再进行前面选择解释器的过程,应该就找到conda和解释器了(选择解释器的时候多点几下刷新按钮 ↻)。

3.7.3 执行整个文件,可以得到正确结果,但还是有一串红字

比如你“执行整个文件(右上角的播放按钮)”,最后可以得到结果(比如“3”),但是首次执行的时候出现一串红字错误,然后才是正确结果(这里一时找不到截图),那么可以用上面的方法,把截图中的第一个选项Terminal,设定为Command Prompt,和截图保持一致即可。