Python基础知识
Python
是计算机编程语言中的一种。是一种面向对象的动态类型语言。
1.1 Python介绍
1.1.1 Python发展简史
Python
是一种解释性计算机编程语言,是Python
之父——Guido van Rossum在1989年开发并在1991年公开发行。Python
的名字来源于BBC系列喜剧剧本《Monty Python’s Flying Circus》(巨蟒的飞行马戏)。Guido在研发新语言时,正在阅读该书,因此,这位伟大的计算机科学家就将新语言命名为Python
。
百度百科中详细的Python
发展历程:
https://baike.baidu.com/item/Python/407313?fr=aladdin#3
1.1.2 Python版本
Python
目前存在两个活跃的版本,分别是Python2
与Python3
。两个版本互不兼容。其中Python2
只维护到2020年,因此可以说,Python3
是Python
的未来,并且Python
官方也建议指直接学习Python3
。
1.1.3 Python语言特性
Python
语言具有如下特性:
- 语言简洁
- 面向过程与面向对象
- 解释执行
- 跨平台性
- 可扩展性(胶水语言)
- 强大库的支持(内置库与社区库)
1.1.4 Python应用领域
Python
在很多领域都有着广泛的应用,主要领域如下:
- Web应用开发
- 网络爬虫
- 数据分析与科学计算
- 人工智能
1.2 Python开发环境
1.2.1 Windows
官网下载Python
安装程序安装。注意在安装时,可以将Python
加入到环境变量的选项勾选,这样可以直接在CMD
中运行python
命令,如果安装时没有勾选后期也可以自行配置环境变量。
1.2.2 Linux / Mac
Linux / Mac
操作系统自带Python2
与Python3
开发环境,可以在命令行中输入如下命令来查看Python
的版本信息:
python -V
或者:
python --version
说明:
Linux / Mac
上因为同时内置Python2
与Python3
,因此,python
命令默认使用的是Python2
,如果想要执行Python3
,需要使用python3
命令。
1.2.3 Python虚拟环境
Python
虚拟环境是一个半隔离的环境,在该环境中安装的库仅对该环境下的程序有效,不会对系统环境造成影响。可以通过创建Python
虚拟环境来实现Python
多版本共存,同时彼此之间又不会相互干扰,。
1.2.4 Python开发工具
编写Python
程序非常简单,可以使用任何存文本编辑器。例如,Windows
操作系统中的记事本。不过,普通的文本编辑器相对朴素,而一些开发工具可以提供功能强大,更加友好的且方便的开发环境,从而提高开发效率。
常用的Python
开发工具有:
Sublime Text
PyDev + Eclipse
Pycharm
Anaconda
VScode
1.3 第一个Python程序:Hello World
习惯上,每条Python
语句独立占一行。如果一行存在两条(或更多条)Python
语句,则需要使用分号;
分隔。
print("Hello World")
1.3.1 交互式
打开终端环境,执行python
或python3
命令,进入Python
交互环境,输入代码运行。在Python
交互式模式下,可以输入exit()
或quit()
退出交互模式。
1.3.2 文件式
通过创建helloworld.py
文件然后在其中编写程序后保存,使用
python helloworld.py
命令执行。
1.3.3 两种方式对比
- 通过交互式环境,我们可以直接输入要执行的内容,并且可以马上看到程序的运行结果,这为我们提供了便捷性。但是,当关闭交互式窗口时,所有的定义与语句全部丢失。这对一个较大的程序来说,是非常不方便的。因为下次执行时,我们不得不重新再输入一次。
- 通过文件式编写程序,在运行时不能直接获取变量(或常量)的结果,而是需要使用print语句输出才可以。但是,通过文件可以将所有执行的程序语句保存起来,以便于下次能够重复执行。
1.4 变量和常量
1.4.1 定义变量
变量用来使用指定的名称来绑定特定的值。变量具有变量名与变量值。我们可以采用如下方式定义变量:
变量名 = 变量值
例如:
num = 10
这样,就定义了一个变量,变量名为num
,值为10
。我们将名称num
绑定10
,需要留意的是,中间的=
是赋值号,不是数学上的等号(数学上的等号Python中使用==
),意为将10
赋值给num
,这是一个从右向左的运算符。
经过如上定义之后,就可以使用变量名来访问其所绑定的值:
print(num)
输出:
10
当然,变量也是通过赋值符号更改绑定值:
num = 20
print(num)
输出:
20
此时我们就将num
绑定的值由之前的10,改成了20。
也可以一次性定义多个变量,或者为多个变量赋值,语法如下:
x = y = z = 3
这样就一次性的定义了三个变量,所有变量绑定的值均为3。
说明:
- 变量在第一次赋值时叫做变量的定义,在以后赋值时,就不再是定义变量,而是对更绑定值进行更改。
- 变量在定义时,必须要绑定一个具体的值,否则无法使用。
1.4.2 删除变量名
定义变量实际上就是使用变量名关联了指定的值。可以认为,变量名就是一个标签,贴在了对应的值上。当变量不需要时也可以删除变量名。删除变量名使用del
,语法如下:
del 变量名
删除变量名后我们就无法再使用变量名来访问其之前所关联的值,这就是一个解绑操作,相当于将标签名从值上撕了下来。
我们可以通过变量之间的赋值,将值关联多个变量。当删除一个变量名后,不会影响到其他的变量名,因为del
删除的只是变量名称,而并非变量名所关联的值对象。
1.4.3. 常量
-
全部大写的变量名
PI = 3.14159265359
-
None
None
是Python
中内置的一个常量值,表示变量值缺失。在定义变量时必须给变量一个明确的值。但在有些情况下,变量在定义时值不方便给出,而是在随后的计算中才能确定,因此,我们就可以在定义变量时,给变量赋予None
值。此外,None
也经常作为参数的默认值,用在函数的参数传递中。
1.5 输出与输入
输出函数:
print()
def print(*values: object,
sep: Optional[Text]=...,
end: Optional[Text]=...,
file: Optional[_Writer]=...,
flush: bool=...)
输入函数:
input()
def input(prompt: Any=...)
1.6 注释
1.6.1 单行注释
单行注释使用#
表示,从#
开始,到本行的末尾,都是注释内容。一般注释内容写在其解释说明的程序上方。
1.6.2 特殊注释
在Python
存在两种特殊类型的注释。
第一种:设置Python
解释器的位置
在文件的第一行加入:
#!/usr/bin/python3
该行的作用是,告知系统Python
解释器的位置(这里就是/usr/bin/
目录下)。这样设置后,我们就可以在终端直接执行Python
文件(该文件需要具有可执行的权限)。然而,这种设置方式并不通用,其不利于程序的移植。因为,并非所有的操作系统中,Python
解释器都在/usr/bin/
这个路径下,为了能够是程序具有更好的可移植性,我们可以采用如下的方式设置:
#!/usr/bin/env python3
其中,/usr/bin/env
会从环境变量PATH
指定的目录中来搜索python3
文件。这样,当程序迁移时,也只需要改变环境变量即可,而无需批量修改每一个Python
文件中第一行的路径信息(前提是移植时/usr/bin/env
的位置没有改变)。
说明:
- 如果设置解释器的位置,则必须是文件的第一行。
- 设置Python解释器的位置主要应用于Unix / Linux操作系统中,对于Windows操作系统中,可直接使用*.py的方式来运行。
第二种:设置文件编码
如果在文件第一行或第二行注释中匹配如下的形式:
coding[=:]\s*([-\w.]+)
则该注释就是文件的编码声明。建议的声明格式:
# -*- coding: 编码名称 -*-
例如:
# -*- coding:UTF-8 -*-
这样,该Python
文件就会使用UTF-8
的编码。
说明:
- 如果设置编码,则编码必须是文件中的第一行或第二行,如果在第二行,则第一行必须也是注释。
Python3
文件的默认编码为UTF-8
。(Python2
为ASCII
)
严格来说,以上两种特殊注释不是真正的注释,算是一种设置。因为编译器会忽略注释内容,但不会忽略这两种设置。
1.7 标识符
标识符,就是作为类,方法(函数),变量等名字的符号。标识符的语法要求如下:
- 由字符,数字与_组成,并且第一个字符不能是数字。
- 标识符不能与
Python
中的关键字重名。
说明:
- 标识符是区分大小写的。
Python3
中,标识符的字符集为Unicode
字符集,Python2
中标识符字符集为ASCII(U+0001~U+007F)
。- 尽管
Python3
标识符的字符集为Unicode
字符集,但不意味着整个Unicode
字符集中的字符都是合法的,例如:“@”,“$”,“*”等,这些都不可以出现在标识符中。
命名惯例:
从语法的角度来说,标识符只要符合Python
的语法规定,就不会影响程序的运行,然而在很多情况下,仅仅编写出符合语法的程序是不够的。
1.8 关键字
关键字是Python
中具有特殊语义的符号。在Python3.6
中所有的关键字列表如下:
False class finally is return
None continue for lambda try
True def from nonlocal while
and del global not with
as elif if or yield
assert else import pass
break except in raise
可以通过如下代码打印Python
中所有的关键字列表:
import keyword
print(keyword.kwlist)