Python无基础快速入门1——变量与基础运算符
前提
要学习Python编程,你需要一台能够连接互联网的电脑。对于无基础入门学习者,推荐使用Windows操作系统进行学习。
安装Python环境(Widnows环境下)
进入Python官网,点击黄色按钮下载即可。
如果官网下载速度较慢,可以尝试使用阿里云镜像。找到对应官网推荐下载的版本号,下载相应内容。
下载之后,点击运行安装程序。在第一个界面勾选Add Python 3.X to PATH选项,然后点击Install Now开始安装。
同时按下Windows徽标键和R打开“运行”窗口,在其中键入cmd打开命令提示行。在命令提示行中键入python --version。如果输出为:
Python 3.X.Y
则说明安装成功。其中X和Y根据你安装的版本不同可能显示不同的数字。
安装后,在开始菜单搜索(按Windows徽标键后直接打字即可)"IDLE"即可打开Python自带的集成开发环境。我们的教程将大量使用这个环境。

该窗口是Shell交互窗口,该窗口会立即执行你输入的每一条语句。点击左上角的File - New File即可打开代码编辑窗口。在该窗口中,你可以编辑大段代码,读取/存储代码,以及执行代码。
在代码编辑窗口中,点击Run - Python Shell即可打开Shell交互窗口。
变量基础
每个程序运行时都需要储存大量的数据。为了能够在合适的时候存储和调用数据,引入变量(variable)这一概念。
变量命名
为了标识区分不同的变量,需要给每一个变量赋予一个独一无二的名称(称为标识符,identifier[1])。
变量名称遵守以下要求:
- 变量名称必须由字母、数字和下划线
_组成,但是不能以数字开头。输入下划线的办法是在英文输入法下同时按Shift和-键。 - 变量不能与Python定义的保留字和内置函数命名重合。
不需要背诵Python保留字和内置函数的名称。我们可以借助IDLE的语法高亮功能检查变量名是否与其重合。
在代码编辑窗口中,如果我们输入一个合法的变量名,该文字颜色不变。如果变色,则说明变量名有可能出现错误。
同时,变量命名是大小写敏感的。也就是说cache和Cache指向两个不同的变量。大多数现代编程语言都是大小写敏感的。
变量赋值和使用
变量在初次使用时需要分配变量名和初始值。我们将给变量设置内容的行为称为赋值。假设我们需要新建一个名为current_element[2]的变量,初始值为0,相应代码为:
current_element = 0
其中,=是赋值操作符,表示将右侧的值赋给左侧的变量。在绝大部分编程语言中,=不意味着“相等”而是“赋值”。
根据赋值运算符=的含义,如果需要对于该变量重新赋值,则更改上述代码的后一部分0即可。
数据类型
由于变量需要储存的数据有很多,因此需要引入数据类型这一概念。这样才能正确地解读变量中存储的数据所代表的含义。
Python中有如下常见的数据类型:
- 整数型
int - 浮点型
float - 复数型
complex - 字符串型
str - 布尔型
bool - 列表型
list - 元组型
tuple - 字典型
dictionary - 集合型
set
此外有其他的数据类型,之后学习过程中会适时介绍。
在入门阶段,我们经常接触的数据类型为整数型、浮点型、字符串型、布尔型、列表型、元组型和字典型。在这一篇中,我们将介绍整数型、浮点型和布尔型。
整数型int和浮点型float
整数型变量存储着一个整数。不同于其他编程语言,在Python[3]中整数型变量没有最大最小值限制。
浮点型变量储存着一个小数。在这里,小数的意思是包含小数点后内容的数字,不一定不是整数。因此:
a = 2.0
a的数据类型也是浮点型。
根据系统和编程语言版本不同,Python中的浮点数的精度有所不同。我们将Python所能分辨出的最小的浮点数称为Epsilon \(\epsilon\)。通常,该数字极小,通常\(\epsilon \lt 10^{-10}\)。
你可以复制该代码到代码编辑窗口,以查看当前环境下的Epsilon值:
import sys
print(sys.float_info.epsilon)
你可能会看到一个类似的输出:
2.220446049250313e-16
当Python表示较大或较小的数字时,会使用科学计数法进行表示。上述输出等价于\(2.220446049250313 \times 10^{-16}\)。
我们在后面的章节将继续了解Epsilon的意义和用法。
布尔型bool
布尔型变量要么储存“是”要么储存“否”。在Python中,使用True表达“是”,用False表达“否”。注意该代码需要大写首字母。
基础运算符
为了能够让程序对于数据进行有效的操作,引入运算符(operator)这一概念。一个不完全准确的比喻是:如果说编程就是写作,变量就相当于句子的名词性成分,运算符就相当于句子里的动词性成分。
就像是有的动词需要有宾语,有的动词不需要宾语一样,每个运算符所需要的运算对象(operand)数量也不一致。对于需要两个运算对象的运算符,称其为“二元运算符”;对于需要一个运算对象的运算符,称其为“一元运算符”。
每一个运算符对于参与运算的运算对象的数据类型有要求。取决于运算对象的数据类型和运算符的类型,运算结果的数据类型也可能不同。
比较运算符
本节,我们先接触比较运算符。这类运算符都是二元运算符,且在基础数学中大量使用,因此较为简单。
比较运算符有六种:
a > b, a < b, a >= b, a <= b, a == b, a != b
所有的比较运算符都以布尔型返回比较结果。大部分比较运算符的含义都很明确,主要注意最后两个运算符==和!=,第一个运算符的意思是两个运算对象相等,第二个的意思是两个运算对象不相等。
你可以在IDLE的Shell交互界面中验证这六个运算符的作用。先在窗口中创造两个变量a和b:
a = 3
b = 4
然后依次输入上述六个比较运算符,观察结果是否与所预期相符。
之前使用的测试样例中a和b都是整数型,尝试使用浮点型互相比较,观察结果是否符合规律。
再使用布尔型数值进行比较,观察是否可行。
实验说明比较运算符的运算对象可以是已经学过的三个数据类型。但是这只是语法上的可行,类似True > False的运算并没有任何意义。
算术运算符
算术运算符是一类二元运算符,用来执行基础的四则运算、取余和幂运算。
下面的代码演示了算术运算符的使用:
a = 3
b = 4
c = a + b # c = 7
c = a - b # c = -1
c = a * b # c = 12
c = a / b # c = 0.75
c = a ** b # c = 81
c = a % b # c = 3
在上述的代码片段中,#后面的内容是注释(comment),在同一行内,#后的所有内容都会被程序忽略。注释标注了代码的作用或需要完成的任务,可以提高代码的可读性和组织性。
回到算术运算符上,前四个运算符(第3-6行)较为常见。但是应注意的是,除法运算符/的运算结果永远是浮点型,因此:
c = 2 / 1 # c = 2.0
其中c的数据类型仍为浮点型,尽管2可以被1整除。
同时,需要注意除法运算符的符号是斜线/,千万不要写成反斜线\。反斜线符号另有其他意义。
**和%是两个在日常生活中较为少见的运算符,但是这两者在之后的编程学习中都会很常见。**是幂运算符,a ** b将计算a的b次幂;%是模运算符,a % b将计算a整除b后的余数。
由于上述的例子中使用的两个操作对象a和b都是整数型,因此大部分运算结果都是整数型。你可以尝试使用其他数据类型的操作对象,观察运算结果。
结果说明,除了除法运算符总是返回浮点型结果以外,其他的运算结果的数据类型基本遵循以下规则:
如果任何一个运算对象是浮点型,那么结果就是浮点型。
其中一个例外是模运算符%。运算符右侧的运算对象必须是整数型,不能是浮点型。其运算结果的数据类型完全取决于左运算对象的数据类型。
思考
基于所学的内容,我们可以编写下面的程序:
a = 0.3
b = 0.1 + 0.2
c = a == b
c的值是什么呢?应该是True,因为0.1 + 0.2 = 0.3。但是,当我们在Shell窗口中输入程序后得到的结果却是:

为什么c是False呢?如何改动程序以使其给出正确结果呢?你可以参考上文中对于Epsilon的介绍。

浙公网安备 33010602011771号