>>> a = 1
>>> b = 2
>>> c = a + b
>>> print(c)
2 Python程序的执行
2.1 一个Python程序是什么
写程序,就是用代码的方式,告诉计算机你要做什么。但处理器听不懂人话,因此你必须用计算机能懂的语言来做这件事。Python就是一种这样的语言。
任何一个程序都是一连串的指令,写一个程序,就是写一连串的指令。那么一个Python程序,就写一连串的Python指令。
一般情况下,我们会把这些指令保存在一个文件名的后缀(扩展名)是.py
的文本文件里。这个文件就有点像你把一个你发明的菜谱写进一个word文档里,然后交给另一个人,他可以按你在菜谱的说明,一条条往下做,最终把菜做出来。
你在一个.py
文件里,写出一连串的指令,然后交给Python的解释器(Interpreter)(如果你安装了Anaconda,就会有这个东西),解释器会按你在这个文件里写的指令,一条一条往下运行,最终把写的程序执行完,给你最终的结果。
我们把这个菜谱(对于Python就是.py
文件),称之为“源代码(source code)”。我们编程的时候,多数情况下,就是在编写(或者一边写一边运行)这个.py
文件(数据分析的时候常用notebook格式的文件,后面会讲到)。
这个文件本质上一个.txt
文件没什么不同,都可以用任何文本编辑器(例如你电脑里的“记事本”,以及我们前面安装的vscode)打开和编辑。
因此,所谓的编程就是:
- 用一个文本编辑器,如我们后面用的vscode(或者一个集成编程环境如PyCharm),编辑一个
.py
文件 - 把你要的代码写进去。
- 用不同的方法去执行这个文件里代码。可能是在系统里一次性执行整个文件里所有代码,也可能是在一个交互环境里一步一步地执行。
- 循环2和3,直到得到你满意的结果。
2.1.1 预备知识:扩展名和文件类型
用于表示某个文件是什么类型,一般我们会看文件名的最后一个英文.
以及之后的内容。
注意:这里只是讨论一般的情况。扩展名也是可以修改的,所以未必和实际的文件类型一致。
- 一个文件,其名为
WINWORD.EXE
,其扩展名为.exe
(Windows系统和Mac系统的文件名不区分大小写,但一般建议还是考虑大小写问题),则意味着这是一个“Windows系统的可执行文件”。这实际上是微软Windows版本office中的Word的主程序。我们(在windows下)常说的“运行一个程序”,就是执行一个exe文件。 - 一个文件,其名为
鲁迅全集.txt
,其扩展名为.txt
,则意味着这是一个“纯文本文件”,其中的所有内容都可以视为文字,可以用任何一个文本编辑器,例如记事本,或者Word打开。 - 其他扩展名,如
.jpg
是常见的图形文件,.docx
是2007版本以后的Word文档,等等等等。
2.1.2 (重要)Windows下正确显示文件的扩展名
默认情况下,windows系统会因此已知文件类型的扩展名,我们要把文件完整地显示出来,需要修改一个设置。
在开始菜单,搜索“文件资源管理器选项” -> “查看”页面 -> 去掉“隐藏已知文件类型的扩展名”前面的勾选。
这样,在你的资源管理器中,显示文件的时候就会显示文件全名。
2.2 Python的交互式环境
我们先采用最基本的Python的交互式环境,给大家一点运行程序的感觉。
- 启动Anaconda Prompt。(用Mac的同学,启动终端terminal)
- 我们会看到命令行窗口
- 输入
python <回车>
,我们可以进入python的交互式运行环境。
这个命令会启动我们所说的Python的解释器:你在其中输入Python语句,会被解释器翻译成电脑听得到的机器代码。
注意: 其中的命令提示符>>>
。三个右侧尖括号,表示我们正处于python的交互式环境中,此时我们可以执行python的语句。
同时可见截图中的Python的版本为3.9.5,你安装的版本应该会更高。
2.2.1 简单的编程:计算1 + 2
- 我们依次输入(每行代码以<回车>结束)
显然,1+2必然得到
3
- 结果大致如图
注意:
- 无法得到结果
3
,首先检查有没有输入错误(打错字)。 print(c)
中的小括号,是英文括号。在语法层面上的所有符号,都是英文符号。- 如果输入的代码有误,已经敲了回车,只要把正确代码的再输入一次即可。
2.2.2 上述程序中涉及的一些概念
这个涉及程序设计的几个基本概念:
- 变量和赋值
变量,顾名思义,一个可变的量。编程中变量的概念和代数中的x
, y
, z
基本一样。 Python中,对变量赋值使用1个等号 “=
”。 显然, 我们有3个变量,a
, b
和c
。我们把1
赋予a
,2
赋予b
,把a + b
的值赋予c
。
- 运算符
加减乘除,以及逻辑运算如是否等于,大于,小于等,我们以后会用到。这里只用到“加法”
- 函数
和数学函数一样,我们调用一个函数,给这个函数传递一个参数,然后这个函数会根据这个参数做一些事情。可能是为你进行一个计算,可能修改某个变量等等,也可能什么都不做。
这里我们调用的函数是print()
,这个函数的用途是把你传递给他的变量c
的值打印出来。函数的调用方法是函数名与小括号。
数据分析的程序,大部分情况下可以视为由变量和函数组成。
2.2.3 退出运行环境
输入exit()
,然后回车即可。
可见,exit
本身也是一个函数(函数名+小括号),其调用这个函数的作用是退出Python交互式运行环境。
注意:一定要退出,以便后续的程序能执行。
此时,我们又回到了一开始的命令行(终端)环境中
可见,命令提示符现在是一个>
,这提示我们正处于系统的命令行环境中
- 可以执行系统中的命令,但不能执行python中的语句!
- 要进行交互式的python编程,要首先进入Python的交互式环境中!
2.3 本节要求
- 在windows系统下显示文件的扩展名
- 在Python的交互环境中计算1+2
2.4 补充:路径
2.4.1 路径Path
你的文件或者文件夹(目录),到底保存到了哪里?
所谓路径(path),到达某个文件或者文件夹(目录)的层级结构,每一层用一个斜杠“/
”分割。
在命令行(终端)环境下,在命令提示符>
之前,一般会有提示你当前路径,即当前你处于哪个目录下。
例如 C:\Users\lee
,指的就是,在你的C
盘下,Users
目录下,的lee
目录。
注意 注意:在你的电脑上,这里的lee
会替换为你的用户名
这样,你输入的任何命令,都会对“当前路径”生效。
同样,路径既可以指向一个目录(文件夹),也可以指向一个文件。
如C:\Users\lee\add.py
,就指的是,在你的C
盘下的Users
目录下的lee
目录下的一个叫add.py
的文件。
2.4.2 相对路径和绝对路径
- 绝对路径:从根目录(windows下即一个盘符,如c盘或者d盘)开始的路径,可以确定无疑地指向某个文件或者目录。如
C:\Users\lee\add.py
。 - 相对路径:不从根目录起始的路径。其指向的目的地,从你的“当前路径”开始,往下数。
假如,你的当前路径是C:\Users
,那么此时,相对路径lee\add.py
,所指向的,就是当前路径下(C:\Users
),lee
目录下的add.py
。这也等价于绝对路径C:\Users\lee\add.py
。
- 两者的区别:绝对路径从根目录开始,相对路径从“当前路径”开始。
2.4.3 进入某个目录
Windows命令行,和Mac的终端,有相同的命令cd <路径>
,可以进入一个目录。
如,在终端中输入(并回车)注意这里使用的是绝对路径
cd C:/Users
则会让终端进入到 C:/Users
目录下。见提示符>
前方的“当前路径”已经改变为C:/Users
。你现在已经位于C:/Users
目录。
尝试相对路径,在终端中输入(并回车),注意这里的lee
,请替换成你的用户名。
cd lee
则会让终端进入到 C:/Users/lee
目录下。见提示符>
前方的“当前路径”已经改变为C:/Users/lee
。你现在已经位于C:/Users/lee
目录。
其他用法包括:
- 进入上一级目录
cd ..
- 进入根目录
cd /
可以让你在命令行和终端中,定位到你想要的目录和文件。
2.4.4 用Windows图形界面获得路径
在你的windows资源管理器(俗称“我的电脑”),在任何一个文件夹中,点击地址栏
你就可以得到这个文件夹的路径,可以粘贴到命令行中。
特别注意:正反斜杠问题
在编程的语境下,反斜杠“\
”有特殊用途。因此,表示路径的时候,我们统一用(正)斜杠“/
”,而不用反斜杠“\
”。
统一的写法,如C:/Users/lee
2.4.5 列目录
列目录的命令,Windows的命令行中为dir
,Mac中为ls
。同学们可以执行尝试。