Python的保留字和标识符大全,一定要区分大小写

第2章 数据类型与基本运算符

熟练掌握一门编程语言,最好的方法就是充分了解、掌握基础知识,并亲自体验。本章首先介绍Python基础知识中的保留字与标识符,然后介绍在Python中如何使用变量及各种数据类型。

2.1 保留字与标识符

微课视频

在程序设计语言中,都会涉及保留字和标识符。保留字一般在程序设计语言中有特定的含义和用途,有一些保留字是语法中的关键部分,也有一些保留字虽然并没有应用于当前的语法中,但是由于对程序设计语言的扩展性,提前定义为保留字。标识符用作程序某一元素的名字的字符串或用来标识源程序中某个对象的名字。下面详细介绍Python的保留字和标识符。

2.1.1 保留字

保留字是Python已经被赋予特定意义的一些单词,在开发程序时,不可以把这些保留字作为变量、函数、类、模块和其他对象的名称来使用。Python的保留字如表2.1所示。

表2.1 Python中的保留字

学习笔记

Python中的所有保留字是区分字母大小写的。例如,True、if是保留字,但是TRUE、IF就不属于保留字,如图2.1和图2.2所示。

图2.1 True是保留字,但true不属于保留字

图2.2 if是保留字,但IF不属于保留字

学习笔记

Python中的保留字可以通过在IDLE中,输入以下两行代码查看:

运行结果如图2.3所示。

图2.3 查看Python中的保留字

学习笔记

如果在开发程序时,使用Python中的保留字作为模块、类、函数或变量等的名称,则会提示“invalid syntax”的错误信息。在下面代码中使用了Python保留字if作为变量的名称:

程序运行时会出现如图2.4所示的错误提示信息。

图2.4 使用Python保留字作为变量名时的错误信息

2.1.2 标识符

标识符可以简单地理解为一个名字,比如每个人都有自己的名字,它主要用来标识变量、函数、类、模块和其他对象的名称。

Python标识符命名规则如下。

●由字母、下画线“_”和数字组成,并且第一个字符不能是数字。目前,在Python中只允许使用ISO-Latin字符集中的字符A~Z和a~z。

●不能使用Python中的保留字。

例如,下面是合法的标识符。

下面是非法的标识符。

学习笔记

Python中的标识符不能包含空格、@、%和$等特殊字符。

●区分字母大小写。

在Python中,标识符中的字母是严格区分大小写的。两个同样的单词,如果大小写格式不一样,所代表的意义是完全不同的。例如,下面3个变量是完全独立、毫无关系的,就像相貌相似的三胞胎,彼此之间都是独立的个体。

●在Python中,以下画线开头的标识符有特殊意义,一般应避免使用相似的标识符。

»以单下画线开头的标识符(如_width)表示不能直接访问的类属性。另外,也不能通过“from xxx import *”导入。

»以双下画线开头的标识符(如__add)表示类的私有成员。

»以双下画线开头和结尾的是Python专用的标识,例如,“__init__()”表示构造函数。

学习笔记

在Python语言中允许使用汉字作为标识符,如“我的名字="明日科技"”,在程序运行时并不会出现错误,如图2.5所示,但建议读者尽量不要使用汉字作为标识符。

图2.5 使用汉字作为标识符

2.2 变量

微课视频

在程序设计语言中,变量是基础的元素,也是重要的元素。例如,建造一栋大楼,水泥是基础的材料。所以,构建一个大型的软件应用系统,需要定义和使用各种类型的变量。下面介绍变量的相关概念及操作。

2.2.1 理解Python中的变量

在Python中,变量严格意义上应该称为“名字”,也可以理解为标签。当把一个值赋给一个名字时,如把值“学会Python还可以飞”赋给python,python就称为变量。在大多数编程语言中,都将这称为“把值存储在变量中”。意思是在计算机内存中的某个位置,字符串序列“学会Python还可以飞”已经存在。你不需要准确地知道它们到底在哪里,只需要告诉Python这个字符串序列的名字是python,然后就可以通过这个名字来引用字符串序列了。

这个过程就像快递员取快递一样,内存就像一个巨大的货物架,在Python中定义变量就如同给快递盒子贴标签。快递存放在货物架上,上面附着写有客户名字的标签。当客户来取快递时,并不需要知道它们存放在大型货架的具体位置。只需要客户提供自己的名字,快递员就会把快递交给客户。变量也一样,你不需要准确地知道信息存储在内存中的位置,只需要记住存储变量时所用的名字,再使用这个名字就可以了。

2.2.2 变量的定义与使用

在Python中,不需要先声明变量名及其类型,直接赋值即可创建各种类型的变量。但是变量的命名并不是任意的,应遵循以下几条规则。

●变量名必须是一个有效的标识符。

●变量名不能使用Python中的保留字。

●慎用小写字母l和大写字母O。

●应选择有意义的单词作为变量名。

为变量赋值可以通过等号(=)来实现,其语法格式如下:

例如,创建一个整型变量,并为其赋值为505,可以使用下面的语句:

这样创建的变量就是数值型的变量。如果直接为变量赋值一个字符串值,那么该变量即为字符串类型。例如,下面的语句:

另外,Python是一种动态类型的语言,也就是说,变量的类型可以随时变化。例如,在IDLE中,创建变量myname,并赋值为字符串“生化危机”,然后输出该变量的类型,可以看到该变量为字符串类型;再将变量赋值为数值505,并输出该变量的类型,可以看到该变量为整型,执行过程如下:

学习笔记

在Python语言中,使用内置函数type()可以返回变量类型。

在Python中,允许多个变量指向同一个值。例如,将两个变量都赋值为数值2048,再分别应用内置函数id()获取变量的内存地址,将得到相同的结果,执行过程如下:

学习笔记

在Python语言中,使用内置函数id()可以返回变量所指的内存地址。

常量就是程序在运行过程中,值不能改变的量,如现实生活中的居民身份证号码、数学运算中的圆周率等,这些都是不会发生改变的,它们都可以定义为常量。在Python中,并没有提供定义常量的保留字。不过在PEP 8规范中规定了常量由大写字母和下画线组成,但是在实际项目中,常量首次赋值后,还是可以被其他代码修改的。

2.3 基本数据类型

在内存存储的数据可以有多种类型。例如,一个人的姓名可以使用字符型存储、年龄可以使用数值型存储、而婚否可以使用布尔类型存储。这些都是Python提供的基本数据类型。下面将对这些基本数据类型进行详细介绍。

2.3.1 数值类型

微课视频

在程序开发时,经常使用数字记录游戏的得分、网站的销售数据和网站的访问量等信息。在Python中,提供了数值类型用于保存这些数值,并且它们是不可改变的数据类型。如果修改数值类型变量的值,那么会先把该值存储到内存中,然后修改变量使其指向新的内存地址。

在Python中,数值类型主要包括整数、浮点数和复数。

1.整数

整数用来表示整数数值,即没有小数部分的数值。在Python中,整数包括正整数、负整数和0,并且它的位数是任意的(当超过计算机自身的计算功能时,会自动转用高精度计算),如果要指定一个非常大的整数,那么只需要写出其所有位数即可。

整数类型包括十进制整数、八进制整数、十六进制整数和二进制整数。

●十进制整数。

十进制整数的表现形式大家都很熟悉。例如,下面的数值都是有效的十进制整数。

在IDLE中运行的结果如图2.6所示。

图2.6 有效的整数

学习笔记

十进制整数不能以0作为开头(0除外)。

●八进制整数。

八进制整数由0~7组成,进位规则是“逢八进一”,并且以0o开头的数,如0o123(转换成十进制整数为83)、-0o123(转换成十进制整数为-83)。

学习笔记

在Python 3.x中,对于八进制整数,必须以0o/0O开头。这与Python 2.x不同,在Python 2.x中,八进制整数可以0开头。

●十六进制整数。

十六进制整数由0~9,A~F组成,进位规则是“逢十六进一”,并且以0x/0X开头的数,如0x25(转换成十进制整数为37)、0Xb01e(转换成十进制整数为45086)。

学习笔记

十六进制整数必须以0X或0x开头。

●二进制整数。

二进制整数只有0和1两个基数,进位规则是“逢二进一”,如101(转换成十进制整数为5)、1010(转换成十进制整数为10)。

2.浮点数

浮点数由整数部分和小数部分组成,主要用于处理包括小数的数。例如,1.414、0.5、-1.732、3.1415926535897932384626等。浮点数也可以使用科学记数法表示。例如,2.7e2、-3.14e5和6.16e-2等。

学习笔记

在使用浮点数进行计算时,可能会出现小数位数不确定的情况。例如,计算0.1+0.1时,可以得到想要的结果0.2,而计算0.1+0.2时,却得到0.30000000000000004(想要的结果为0.3),执行过程如下:

对于这种情况,所有语言都存在这个问题,暂时忽略多余的小数位数即可。

示例:根据身高、体重计算BMI指数。

在IDLE中创建一个名称为bmiexponent.py的文件,然后在该文件中定义两个变量,一个用于记录身高(单位为米),另一个用于记录体重(单位为千克),根据公式:“BMI=体重/(身高×身高)”,计算BMI指数,代码如下:

学习笔记

上面的代码只是为了展示浮点数的实际应用,涉及的源码按原样输出即可,其中,str()函数用于将数值转换为字符串,if语句用于进行条件判断。如需了解更多关于函数和条件判断的知识,请查阅后面的章节。

运行结果如图2.7所示。

图2.7 根据身高、体重计算BMI指数

3.复数

Python中的复数与数学中的复数的形式完全一致,都由实部和虚部组成,并且使用j或J表示虚部。当表示一个复数时,可以将其实部和虚部相加。例如,一个复数,实部为3.14,虚部为12.5j,则这个复数为3.14+12.5j。

2.3.2 字符串类型

微课视频

字符串就是连续的字符序列,可以是计算机所能表示的一切字符的集合。在Python中,字符串属于不可变序列,通常使用单引号“' '”、双引号“" "”、三引号“''' '''”或“""""""”括起来。这三种引号形式在语义上没有差别,只是在形式上有些差别。其中单引号和双引号中的字符序列必须在一行上,而三引号内的字符序列可以分布在连续的多行上。

示例:输出名言警句。

定义3个字符串类型变量,并且应用print()函数输出,代码如下:

运行结果如图2.8所示。

图2.8 使用三种形式定义字符串

学习笔记

字符串开始和结尾使用的引号形式必须一致。另外,当需要表示复杂的字符串时,还可以进行引号的嵌套。例如,下面的字符串也都是合法的。

示例:输出101号坦克。

在IDLE中创建一个名称为tank.py的文件,然后在该文件中,输出一个表示字符画的字符串,因为该字符画有多行,所以需要使用三引号作为字符串的定界符,代码如下:

运行结果如图2.9所示。

图2.9 输出101号坦克

学习笔记

在输出字符画时,可以借助搜狗输入法的字符画进行输出。

Python中的字符串还支持转义字符。所谓转义字符是指使用反斜杠“\”对一些特殊字符进行转义。常用的转义字符及其说明如表2.2所示。

表2.2 常用的转义字符及其说明

学习笔记

在字符串界定符的前面加上字母r或R,那么该字符串将原样输出,其中的转义字符将不进行转义。例如,输出字符串“"失望之酒\x0a机会之杯"”,将正常输出转义字符换行,而输出字符串“r"失望之酒\x0a机会之杯"”原样输出,运行结果如图2.10所示。

图2.10 转义和原样输出的对比

2.3.3 布尔类型

微课视频

布尔类型主要用来表示真或假的值。在Python中,标识符True和False被解释为布尔值。另外,Python中的布尔值可以转化为数值,其中True表示1,而False表示0。

学习笔记

Python中的布尔类型的值可以进行数值运算。例如,“False + 1”的运行结果为1。但是不建议对布尔类型的值进行数值运算。

在Python中,所有的对象都可以进行真值测试。其中,只有下面列出的几种情况得到的值为假,其他对象在if或while语句中都表现为真。

●False或None。

●数值中的零,包括0、0.0、虚数0j。

●空序列,包括字符串、空元组、空列表、空字典。

●自定义对象的实例,该对象的__bool__方法返回False,或者__len__方法返回0。

2.3.4 数据类型转换

微课视频

Python是动态类型的语言(也称为弱类型语言),虽然不需要先声明变量的类型,但有时仍然需要用到类型转换。例如,在“根据身高、体重计算BMI指数”这一示例中,要想通过一个print()函数输出提示文字“您的身高:”和浮点型变量height的值,就需要将浮点型变量height转换为字符串,否则显示如图2.11所示的错误。

图2.11 字符串和浮点型变量连接时出错

在Python中,提供了如表2.3所示的数据类型转换函数及其说明。

表2.3 数据类型转换函数及其说明

示例:模拟超市抹零结账行为。

在IDLE中创建一个名称为erase_zero.py的文件,在该文件中,首先将各个商品金额累加,计算出商品总金额,并转换为字符串输出,然后应用int()函数将浮点型的变量转换为整型,从而实现抹零,并转换为字符串输出,代码如下:

学习笔记

上面的代码只是部分代码,如果想要获取全部代码,读者可在提供的资源包中查找即可。

运行结果如图2.12所示。

图2.12 模拟超市抹零结账行为

学习笔记

在进行数据类型转换时,如果把一个非数字字符串转换为整型,将产生如图2.13所示的错误。

图2.13 将非数字字符串转换为整型产生的错误

2.4 进制数

本节主要介绍进制,进制是计算机中数据的一种表示方法。N进制的数可以用0~(N-1)的数表示,超过9的用字母A~F表示。

2.4.1 二进制

二进制其实是由计算机的开关演变而来的,在计算机中,用于表示的是电信号,高低电压,高电压相当于数字1,低电压相当于数字0。虽然二进制是计算机的基本单位,但是我们在编程应用中是不会使用二进制的,因为二进制太麻烦了,如10000用二进制表示为10011100010000,记忆与输写都不方便。

2.4.2 八进制

早期,由于计算机只支持二进制,而二进制不方便记忆与输入,为表示一个数值,用二进制往往是太长了,后来人们将三个二进制位分成一组,依次从000~111用数字0~7表示,一个组有8组值,因此叫八进制。在计算机中,以二进制为最小的基本单位叫作比特位。8个位组成了字节型,1字节=11111111(二进制)=255(十进制),所以字节型的值范围是0~255共256个值。

2.4.3 十进制

十进制正是我们日常所用的自然数值,阿拉伯数字从0到9共10个值,每个十进制的数值在我们看到时就能立即认出来并知道它的值是多大,而不需要计算,所以在编程时代码输入用得最多的就是十进制数值了。

2.4.4 十六进制

使用3个二进制位表示的数据还是比较庞大,人们后来将4个二进制位表示为一个数,这时4个二进制位的组合方式一共有16种形式,因此叫作十六进制。十六进制除从0到9外,还增加A、B、C、D、E、F共16个值来表示。

在使用十六进制编程语言中,对于十六进制的数值一般输入$FF、0xFF或FFH等。

十六进制的应用很广泛,从0到255之间若用十六进制来表示只需要两个FF符号即可。而短整数型最大值65535是4个FFFF符号,整数型最大值是8个FFFFFFFF符号。更多个字节的数据,若用十六进制来表示也都是每个字节以两个符号来表示。

2.4.5 进制的进位

二进制、十进制、八进制、十六进制的进位关系如下。

●二进制:0或1组成,满二进一。

●八进制:0~7组成,满八进一,以0开头。

●十进制:0~9组成,满十进一。

●十六进制:0~9和ABCDEF组成,满十六进一,以0x开头。

2.5 算术运算符

微课视频

运算符是一些特殊的符号,主要用于数学计算、比较大小和逻辑运算等。Python运算符主要包括算术运算符、赋值运算符、比较(关系)运算符、逻辑运算符和位运算符。使用运算符将不同类型的数据按照一定的规则连接起来的式子称为表达式。例如,使用算术运算符连接起来的式子称为算术表达式,使用逻辑运算符连接起来的式子称为逻辑表达式。下面将对一些常用的运算符进行介绍。

算术运算符是处理四则运算的符号,在数字的处理中应用得最多。常用的算术运算符如表2.4所示。

表2.4 常用的算术运算符

学习笔记

在算术运算符中使用“%”求余,如果除数(第二个操作数)是负数,那么取得的结果也是一个负数。

算术运算符可以直接对数字进行运算,下面是对数字进行计算的示例。

运行结果如图2.14所示。

图2.14 运行结果

算术运算符也可以对变量进行运算,下面是对变量a、b和c进行计算的示例。

运行结果如图2.15所示。

图2.15 运行结果

在Python中进行数学计算时,与我们学过的数学中运算符优先级是一致的。

●先乘除后加减。

●同级运算符从左至右进行计算。

●可以使用“()”调整计算的优先级。

算术运算符优先级由高到最低顺序排列如下。

●第一级:**。

●第二级:*、/、%、//。

●第三级:+、-。

在Python中,*运算符还可以用于字符串中,计算结果就是字符串重复指定次数的结果。下面是使用*运算符的示例。

运行结果如图2.16所示。

图2.16 运行结果

学习笔记

当使用除法(/或//)运算符进行和求余运算时,除数不能为0,否则会出现异常,如图2.17所示。

图2.17 除数为0时出现的错误提示

2.6 赋值运算符

微课视频

赋值运算符主要用于为变量等赋值。使用时,可以直接把赋值运算符“=”右边的值赋给左边的变量,也可以进行某些运算后再赋值给左边的变量。在Python中,常用的赋值运算符如表2.5所示。

表2.5 常用的赋值运算符

学习笔记

混淆“=”和“==”是编程中常见的错误。很多语言(不只是Python)都使用了这两个符号,另外每天都有很多程序员用错这两个运算符。“=”是赋值运算符,“==”是比较运算符。

赋值运算符应用举例如下。

运行结果如图2.18所示。

图2.18 运行结果

举报
评论 0