购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

第2章
Python基本语法元素及数据类型

计算机编程求解问题是一个从抽象问题到解决问题的完整过程。IPO程序设计方法是常用的程序设计思路,它能更好地组织程序的结构,使程序更加清晰易懂。本章将简单介绍IPO程序设计方法,并通过深度学习中常用的激活函数ReLU函数和智能车差速转向控制两个实例来讲解IPO程序设计过程;基于智能车差速转向实例介绍Python的缩进、标识符、表达式等基本语法元素。编程核心的作用是处理数据,Python常用的基本数据类型有整数类型、浮点数类型和字符串类型。本章将详细介绍这三种数据类型。

2.1 程序的基本设计方法

计算机编程求解问题的过程基本可以分为四步:分析问题,抽象内容之间的相互关系;程序设计,设计利用计算机求解问题的确定性方法;编写程序;调试和测试程序。计算机求解问题过程如图2.1所示。

图2.1 计算机求解问题过程

2.1.1 IPO程序设计方法

IPO代表着输入(Input)、处理(Process)和输出(Output)。

1)Input:程序的输入。输入数据可以来自文件、网络、控制台、交互界面或内部参数等多种途径。

2)Process:程序的处理过程。Process是程序对输入数据进行计算产生输出结果的过程,这个过程统称为算法。算法是程序最重要的部分,是一个程序的灵魂,它决定了程序能否正确地解决问题。

3)Output:程序的输出。Output是程序展示运算结果的方式。程序的输出可以是控制台输出、图形输出、文件输出、网络输出或操作系统内部变量输出等多种方式。

IPO程序设计方法是一种非常实用的程序设计思路,其优点在于能更好地组织程序的结构,使程序更加清晰易懂。通过将程序分为输入、处理和输出三个部分,可以更好地理解程序的运行流程,并更容易地对程序进行调试和维护。

2.1.2 实例:ReLU激活函数

激活函数(Activation Function)是一种用于人工神经网络的函数,旨在实现神经网络模型的非线性输出。类似于人类大脑中基于神经元的模型,激活函数最终决定了要发送给下一个神经元的信息。在人工神经网络中,一个节点的激活函数定义了该节点在给定的输入或输入集合下的输出。

ReLU全称为Rectified Linear Unit,是人工神经网络中常用的一种激活函数。它实际上是斜坡函数,即 f ( x )=max(0, x )。ReLU激活函数是一个简单的计算,如果输入大于0,直接返回作为输入提供的值;如果输入是0或更小,返回值0。我们可以用一个简单的if-statement来描述这个问题:

用编程实现上述函数,简单分析可知,输入为数值 x ,处理过程为算法 f ( x ),输出为处理后的数值。编程实现如实例2.1所示。

2.1.3 实例:智能车差速转向

在全国大学生智能汽车竞赛智慧交通创意赛中,可以通过深度学习模型得到智能车转角预测值,这个值的大小在[-1,1]之间,大于0表示右转弯,小于0表示左转弯。可以通过左右轮差速实现转向。如需要右转弯,右轮减速,左轮速度不变;如需要左转弯,左轮减速,右轮速度不变。实现差速转向的程序如实例2.2所示,这个例子体现了IPO程序设计思想,同时也体现了Python的大部分基本语法元素。

2.2 Python基本语法元素

Python程序包含格式框架、注释、常量、变量、表达式、分支语句、函数等基本语法元素。俗话说,无规矩不成方圆,Python语言虽然简单,但也必须遵守它的语法规则,才能被执行并得到正确的结果。下面将通过实例2.2智能车差速转向介绍Python基本语法元素。其中,分支语句和循环语句将在第3章详细介绍,函数将在第4章详细介绍。

2.2.1 注释(comment)

注释是用来帮助程序员理解代码的一种语法。它可以让程序员在代码中添加一些文字说明,用来对语句、函数、数据结构或方法等进行说明,提升代码的可读性,帮助其他人理解代码的功能和用途。注释是代码中的辅助性文字,在执行代码时会被Python解释器忽略,不会被执行。

Python有两种注释语法:单行注释和多行注释。

单行注释以“#”开头,其后的内容都会被解释器忽略,如实例2.2所示第一行“#实例2.2智能车差速转向”,为单行注释,它不会被执行。

多行注释以三个单引号(' ' ')或三个双引号('' '' '')开头和结尾,其中间的内容都会被解释器忽略。如下所示,第1~4行是一个多行注释,它不会被执行。第5行是一条打印语句,它会被执行。

代码注释的作用主要包括以下几点:

1)注释可以帮助程序员更好地理解代码的功能和用途。通过在代码中添加文字说明,程序员可以清楚地知道每一行代码的作用,提高代码的可读性。

2)方便维护和调试:注释可以帮助程序员更快地定位问题。当程序出现问题时,程序员可以通过阅读注释来快速找到出现问题的地方。

3)提高团队协作效率:在团队开发中,注释可以帮助团队成员更好地理解彼此之间的代码。这样,团队成员就可以更快地协同工作,提高开发效率。

4)声明作者信息:注释还可以用来声明作者信息,程序员可以在代码中添加自己的姓名、联系方式和版权信息等。

5)记录修改历史:注释还可以用来记录修改历史。当程序员对代码进行修改时,可以在注释中记录修改的时间、原因和内容,以便日后查看。

2.2.2 缩进(indent)

Python的一大特色就是使用缩进来表示代码块,不需要像C语言等使用大括号{}。缩进指每一行代码开始前的空白区域,Python使用严格的缩进来表明程序的格式框架,缩进表示了代码之间的包含和层次关系。单层缩进代码属于之前最邻近的一行非缩进代码,多层缩进代码根据缩进关系决定所属范围。

不需要进行缩进的代码顶行编写,缩进可以使用Tab键或多个空格实现,常使用4个空格或1个Tab表示缩进,两者不混用。缩进不一致在程序运行时会报错或得到错误结果。Python语言对语句之间的层次关系没有限制,可以无限制嵌套使用。图2.2所示展示了Py-thon程序中的单层缩进,图2.3是多层缩进层次展示。

图2.2 单层缩进

图2.3 多层缩进

2.2.3 标识符(identifier)

在Python中,标识符是用来标识变量、函数、类、模块或其他对象的名称。标识符由字母、数字和下画线组成,但不能以数字开头,即第一个字符必须是字母表中的字母或下画线。Python程序中标识符中间不能出现空格,对标识符的长度语法上没有限制,但受限于计算机存储资源,在实际使用中标识符有长度限制。Python对大小写敏感,因此大小写字母被视为不同的字符,例如py和Py是两个不同的变量。在Python3中,可以用中文作为标识符,非ASCII标识符也被允许,python_smart_car、_python_smart_car、_python_smart_car_、智能车、python智能车均为合法标识符。

在Python中,保留字不能用作标识符。保留字即关键字,指被编程语言内部定义并保留使用的标识符。Python的标准库提供了一个keyword模块,可以输出当前版本的所有关键字,如实例2.3所示。

实例2.3程序运行结果如下:

此外,Python的内置函数和内置常量的名称也不能用作标识符,如abs、open、True和False、None等。在命名标识符时,应遵循一些惯例。例如,变量名和函数名通常使用小写字母,并用下画线分隔单词(例如my_variable)。类名通常使用大驼峰命名法(例如MyClass)。常量名通常使用大写字母,并用下画线分隔单词(例如MY_CONSTANT)。

2.2.4 赋值语句

程序中产生或计算新数据值的代码称为表达式(expression)。表达式由运算符和操作数组成,以表达单一功能为目的,运算后产生数据值。Python支持多种类型的运算符,包括算术运算符、比较运算符、逻辑运算符、位运算符和赋值运算符等,这些运算符可以用来构建各种复杂的表达式。

Python语言中,变量和常量都是用来存储数据的。变量是一个可以改变的值,常量是一个不可改变的值。通常使用小写字母表示变量,使用大写字母表示常量。

Python中的变量不需要声明,每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。等号(=)用来给变量赋值,称为赋值运算符。赋值运算符左边是变量名,右边是存储在变量中的值。如下列代码创建了变量speed和kx并分别赋值。

此外,还可以采用同步赋值语句,同时给多个变量赋值。同步赋值语句格式如下:

同步赋值语句可以使赋值过程变得更加简洁,减少变量的使用,简化语句表达,增加程序的可读性。同步赋值语句首先运算右侧N个表达式,将表达式的运算值赋给左侧相应变量,并非简单将多个单一赋值语句组合。使用同步赋值语句可以实现两个变量值快速交换,如下所示。

等价于如下语句:

此外,连续赋值语句可以一次创建多个变量并赋相同的值,如下列代码所示,同时创建了3个整型变量a、b、c并赋值为1。

2.2.5 input()函数

input()函数是Python的一个内置函数,它用于从控制台获得用户输入。默认情况下,无论用户在控制台输入什么,input()函数都以字符串类型返回结果。input()函数的语法如下:

prompt:可选参数,表示在输入之前显示的提示信息。

如实例2.2所示,使用input()函数从用户控制台获取输入,最后将结果存储在变量angle中。

需要注意的是,input()函数默认返回一个字符串。如果需要将用户输入转化为其他类型(例如整数或浮点数),则需要使用相应类型的转换函数(例如eval()、int()或float()函数)。

2.2.6 print()函数

print()函数是Python内置的一个函数,它用于在屏幕上输出文本或其他数据。它可以接受多个参数,并将它们连接起来,以空格分隔,然后输出结果。print()函数的语法如下:

1)objects:可选参数,表示要输出的对象。

2)sep:可选参数,表示分隔符,默认为" "(空格)。

3)end:可选参数,表示输出结束后要添加的字符,默认为'\n'(换行符)。

4)file:可选参数,表示要写入的文件对象,默认为sys.stdout(标准输出)。

5)flush:可选参数,表示是否强制刷新输出,默认为False。

print()函数输出纯字符信息时,可以直接将待输出内容传递给print()函数。当输出变量值时,则需要采用格式化输出方式,通过format()方法和槽格式将待输出变量整理成期望的输出格式,format方法的使用将在2.3.5节中讲解。

2.2.7 eval()函数

评估函数eval()是Python的一个内置函数,它可以动态地计算字符串或编译代码中的Python表达式。当需要动态计算来自字符串或编译代码对象的任何输入时,使用该函数会很方便。

如实例2.4所示,使用eval()函数计算一个字符串表达式。在这个例子中,首先定义了两个变量x和y,然后使用eval()函数计算字符串表达式"x+y"。

虽然eval()是一个非常有用的工具,但是这个函数也有一些重要的安全隐患,eval()函数处理字符串需要注意合理使用。例如,如果直接输入字符串"py",eval()函数会直接将引号去掉,将py解析为变量。但由于之前未定义py变量,Python解释器会报错。

如果用户希望在控制台输入一个数字,并在程序中使用该数字进行运算,则可以使用eval(input())的组合,如实例2.2所示。由input()得到的数字以字符串形式返回,经过eval()函数处理后返回数字类型用于计算。

2.2.8 分支语句

分支语句是控制程序运行的一类语句,它的作用是根据判断条件选择程序执行路径。实例2.2中用if、elif、else实现了三分支语句。关于分支语句第3章会一步详细介绍。

2.2.9 功能库引用

Python程序会经常使用当前程序之外已有的功能代码,这个过程叫引用。Python语言使用import保留字或者from…import引用当前程序以外的功能库,基本使用方式见表2.1。

表2.1 Python库引用格式

在实例2.5中,通过“import turtle”直接导入了整个turtle库,程序中可以调用turtle库的所有方法。实例2.5通过调用turle的一些方法绘制出了一个三角形,如图2.4所示。

图2.4 实例2.5运行结果

2.3 Python基本数据类型

2.3.1 数字类型概述

数字是数理计算和推理表示的基础。数字可以用来表示数据和信息,是我们用来表示数量、大小和顺序的符号。在编程中,数字可以用来执行各种数学运算,如加、减、乘、除等,这些运算可以帮助程序员解决各种实际问题。此外,数字还可以用来控制程序的流程。例如,程序员可以使用条件语句和循环语句来根据数字的值执行不同的操作。这些控制结构可以帮助程序员更好地组织代码,实现更复杂的功能。

表示数字或数值的数据类型称为数字类型,Python语言提供整数、浮点数、复数三种数字类型,其概念与数学中定义的整数、实数和复数相对应。

1.整数类型

在Python3中,只有一种整数类型int,表示为长整型,没有Python2中的long。int整数类型与数学中整数的概念一致,默认情况下,整数采用十进制表示,其他进制需要增加引导符号。进制引导符号和说明见表2.2。

表2.2 进制引导符号和说明

理论上,整数类型在整个实数范围内取值,取值大小没有限制,实际上的取值范围受限于计算设备的内存大小。在Python语言中,使用整数类型时,直接使用赋值语句,不必要事先声明变量,如int_num=2023,通过赋值语句创建了整数类型变量int_num。

2.浮点数类型

浮点数类型与数学中的实数概念相一致,表示带有小数的数值。Python语言浮点数是带有小数部分的数字,也可以是科学计数法表示的数字。例如:20.23、2.023e1、0.2023e2三个浮点数的值是相同的,后面两个数是科学计数法表示,e2是指数部分,表示10的2次方。浮点数必须带有小数部分,小数部分可以是0,这种设计用于区分浮点数和整数,它们在计算机中的存储方式不同。浮点数通常使用固定数量的位来表示,其中一部分用于表示整数部分,另一部分用于表示小数部分。这种存储方式会导致浮点数存在精度问题,即它们不能精确地表示所有实数。例如print(0.1+0.2),输出为0.30000000000000004。在编程时,在处理涉及精度要求较高的计算时,能使用整数的场景尽量不使用浮点数。

Python内置的方法可以详细列出当前计算机系统中Python解释器所能运行的浮点数各项参数,如实例2.6所示。

实例2.6程序运行结果如下:

上述输出给出了当前计算机系统下,Python解释器科学计数法表示下最大值的幂(max_10_exp)、最小值的幂(min_10_exp),浮点数类型所能表示的最大值(max)和最小值(min),以e为底时最大值的幂(max_exp)、最小值的幂(min_exp),科学计数法表示中系数的最大精度(mant_dig),计算机所能分辨的两个相邻浮点数的最小差值(epsilon),能准确计算的浮点数最大个数(dig)。

浮点数类型直接表示或科学计数法表示的数最长可输出16个数字,浮点数运算结果最长可以输出17个数字,计算机只能提供15个数字(dig)的准确性,浮点数运算误差为0.000 000 000 000 000 2。对于高精度科学计算之外的绝大部分运算来说,一般认为浮点数类型没有范围限制,运算结果准确。

3.复数类型

在Python中,复数(complex)是由实部和虚部组成的数字,可以用a+bj或complex(a, b)表示,其中a是实部,b是虚部。例如:3+4j, complex(3, 4)。Python内置了对复数的支持,可以直接在代码中使用复数或使用complex()函数来创建复数。复数支持常见的算术运算,如加、减、乘、除等,如实例2.7所示。需要注意的是,复数类型中实数部分和虚数部分的数值都是浮点类型。

实例2.7运行结果如下:

2.3.2 数字类型的操作

1.内置的数值运算操作符

如表2.3所示,Python提供了7个基本的数值运算操作符,这些操作符由Python解释器直接提供,不需要引用标准或第三方函数库,称为内置操作符。

表2.3 Python内置的数值运算操作符

在进行数字类型运算时,数字类型之间存在扩展关系,即数字类型从整数扩展到浮点数直至复数。基于此扩展关系,遵循以下原则:

1)整数之间运算,如果数学意义上的结果是整数,则结果是整数。

2)整数之间运算,如果数学意义上的结果是小数,则结果是浮点数。

3)整数和浮点数混合运算,则结果是浮点数。

4)整数或浮点数与复数运算,则结果是复数。

此外,Python3还内置了比较运算符和位运算符来对整数、浮点数和复数等不同类型的数字进行各种计算,操作符说明见表2.4。

表2.4 Python3内置的比较运算符和位运算符

2.内置的数值运算函数

Python解释器内置了一些函数用于数值运算,见表2.5。

表2.5 Python内置的数值运算函数

需要注意的是,abs()函数可以用于计算复数的绝对值,复数绝对值的数学含义为二维坐标系中复数位置到坐标原点的长度。

3.内置的数字类型转换函数

数字类型转换函数可以在整数、浮点数、复数之间进行相互转换。表2.6列出了三种转换函数。

表2.6 Python内置的数字类型转换函数

需要注意的是,浮点数类型转换为整数类型时,小数部分会被舍弃(不适用四舍五入),复数不能直接转换为其他数字类型,可以通过.real和.imag将复数的实部和虚部分别进行转换。

实例2.8使用上述操作符、数值运算函数、数字类型转换函数完成数字运算。

实例2.8程序运行结果如下:

2.3.3 字符串类型概述

在Python中,字符串(string)是一种用来表示文本数据的数据类型。字符串是字符的序列标识,可以使用单引号、双引号和三引号来创建字符串。其中,单引号和双引号都可以表示单行字符串,二者等价。使用单引号创建字符串时,双引号可以作为字符串的一部分,使用双引号创建字符串时,单引号可以作为字符串的一部分。三引号可以创建单行或多行字符串,字符串中可以包含换行符、制表符以及其他特殊字符。实例2.9使用三种不同的方式创建字符串。

实例2.9的运行结果如下:

需要注意的是,Python不支持单字符类型(对应C语言中的char),单字符在Python中也是字符串类型。字符串是不可变类型,即无法直接修改字符串的某一索引对应的字符,需要转换为列表处理。可以认为字符串是特殊的元组类型。列表类型和元组类型将在第5章组合数据类型中详细介绍。

2.3.4 字符串类型的操作

(1)基本的字符串操作符

Python内置了基本的字符串操作符,可以快速实现对字符串的基本操作,见表2.7。

表2.7 Python基本的字符串操作符

实例2.10展示了基本的字符串操作符的使用。

实例2.10运行结果如下:

字符串是序列类型(序列类型将在第5章组合数据类型中详细介绍)的一种,拥有正向和反向两种索引体系。正向索引体系从最左侧字符以0开始,向右依次逐字符递增,反向索引体系以最右侧字符序号为-1,向左逐字符依次递减,如图2.5所示。

图2.5 字符串的索引

字符串可以进行区间切片,格式为:

<string>[ N : M ]

表示字符串string从 N M (不包含 M )的子字符串,其中 N M 为字符串的索引序号,可以混合使用正向递增序号和反向递减序号,如 N 缺失表示至开头,如 M 缺失则表示至末尾。

字符串还可以按步长进行切片,格式为:

<string>[ N : M : K ]

其中 K 为步长。如果 K <0,则从后往前截取。

如下为切片的一些例子,采用交互模式,蓝色为运行结果。

(2)内置的字符串处理函数

世界上存在各种各样的符号,有数学符号、语言符号。为了在计算机中统一表达,制定了统一编码规范,常用的编码有ASCII编码、GBK(cp936)编码、Unicode编码等。Unicode编码也被称为统一码、万国码、单一码,是全球通用的单一字符集,包含人类迄今使用的所有字符,这让计算机具有了跨语言、跨平台的文本和符号的处理能力。Unicode编码只规定了符号的编码值,没有规定计算机如何编码和存储。针对Unicode有两种编码方案:UCS和UTF,目前最普遍使用的是UTF-8编码。

Python解释器内置了一些字符串处理函数,用于实现字符串的处理,见表2.8。

表2.8 Python内置的字符串处理函数

Python的字符串以Unicode编码存储,字符串中的英文字符和中文字符都算作1个字符。以下为采用交互模式测试字符串处理函数的使用,蓝色为运行结果。

(3)内置的字符串处理方法

在Python解释器内部,所有数据类型都是用面向对象方式实现的,封装为一个类。字符串同样是一个类,具有类方法,类方法使用时采用<a>.<b>的形式处理字符串。Python共内置了43种字符串类型处理方法。常用的8种处理方法见表2.9。

表2.9 Python内置的字符串处理方法

以下展示了字符串类型内置方法的基本使用。

2.3.5 字符串类型的格式化

字符串格式化是对字符串进行格式表达的方式,使用.format()方法,用法如下:

<模版字符串>.format(<逗号分隔的参数>)

在模板字符串中,可以使用{}(槽)来表示一个占位符,可以在槽中添加数字序号或关键字来指定使用哪个参数来替换占位符。如果花括号中没有序号或关键字,则按照出现顺序替换。如下为字符串格式化控制的展示:

format()方法中模板字符串的槽除了包含参数序号或关键字之外,还可以包括详细的格式控制信息。槽内部对格式化的配置方式如下:

{<参数序号或关键字>:<格式控制标记>}

格式控制标记用来控制显示时的格式。格式控制标记共有6个,各标记的意义见表2.10,可以根据使用需要选择全部或部分的标记数。

表2.10 format方法格式控制内容

以下为格式控制实例演示:

格式控制标记中的逗号(,)用于显示数字类型的千位分隔符,只在数字类型的格式控制使用。<精度>以小数点(.)开头,小数点后跟数字及具体类型,用于浮点数或字符串类型的格式控制。对于浮点数,数字代表浮点数小数部分输出的有效位数。对于字符串,数字表示输出的最大长度。<类型>表示输出整数和浮点数类型的格式。具体格式类型见表2.11。

表2.11 整数和浮点数格式类型

整数类型的格式控制示例如下所示:

浮点数类型的格式控制示例如下所示:

2.4 math库

2.4.1 math库概述

Python的math库是一个内置模块,它提供了一些常用的数学函数和常量,可以在代码中用于更复杂的数学计算。这个库是Python的内置模块,因此不需要安装就可以使用,但需要先引用。引用math库有两种方式,如下所示:

math库提供了许多实用功能,可以执行许多实际应用的数学计算。例如,计算组合和排列、使用三角函数计算杆高、使用指数函数计算放射性衰变、使用双曲函数计算悬索桥的曲线、解二次方程等。但需要注意的是,math库不支持复数类型,仅支持整数和浮点数运算。

2.4.2 math库常用函数

math库一共提供了4个数学常数和44个函数,4个数学常数见表2.12。math库中函数数量较多,44个函数共分为4类,包括16个数值表示函数(表2.13)、8个幂对数函数(表2.14)、16个三角对数函数(表2.15)和4个高等特殊函数(表2.16)。

表2.12 math库中数学常数

表2.13 math库中数值表示函数

表2.14 math库中幂对数函数

表2.15 math库中三角对数函数

表2.16 math库中高等特殊函数

2.4.3 实例:使用math库计算组合数和排列数

组合数和排列数是组合数学中的两个重要概念。它们都与从一组元素中选择若干个元素有关,但是它们之间有一个重要的区别:排列数考虑元素的顺序,而组合数不考虑元素的顺序。

排列数是指从 n 个不同元素中取出 k 个元素进行排列,通常表示为 A ( n , k )或 P ( n , k )。排列数的计算公式为 A ( n , k )= n !/( n-k )!。组合数是指从 n 个不同元素中取出 k 个元素进行组合,通常表示为 C ( n , k )。组合数的计算公式为 C ( n , k )= n !/( k !×( n-k )!)。

随着计算机科学的日益发展,组合数学的重要性也日渐凸显,因为计算机科学的核心内容是使用算法处理离散数据。狭义的组合数学主要研究满足一定条件的组态(也称组合模型)的存在、计数以及构造等方面的问题。组合数学的主要内容有组合计数、组合设计、组合矩阵、组合最佳化等。

利用Python内置的math库,可以快速计算组合数和排列数,如实例2.11所示。

实例2.11运行结果如下。

2.5 time库

2.5.1 time库概述

Python的time库提供了许多用于处理时间相关任务的函数。这些时间相关的任务包括读取当前时间、格式化时间、睡眠指定秒数等。这个库是Python的内置模块,不需要安装就可以使用,但需要先引用。引用time库有两种方式:

time库最初是为了解决时间相关问题而设计的。它与标准Python版本一起打包,并且一直存在。随着时间的推移,time库不断发展,增加了更多的功能和数据类型。例如,da-tetime模块提供了更多用于处理日期和时间的类和函数。time库提供了许多实用功能,可以执行许多实际应用的时间计算。例如,可以使用time库中的函数来计算代码执行时间、暂停代码执行、测量代码性能等。

2.5.2 time库常用函数

time库中常用的函数有12个,见表2.17。

表2.17 time库中常用的函数

①UTC,全称为协调世界时(Coordinated Universal Time)。

2.5.3 实例:使用time库计算代码执行时间

time库有很多实用的功能,实例2.12使用time库计算代码执行时间,方便对程序进行调试和优化。

实例2.12运行结果如下:

习题

一、选择题

1.利用print()格式化输出,( )用于控制浮点数的小数点后两位输出。

A.{:.2f}

B.{.2}

C.{:.2}

D.{.2f}

2.以下( )是合法的Python标识符。

A.it's

B.__

C.class

D.3B9909

3.下列Python赋值语句中,不合法的是( )。

A.x=1;y=1

B.x=(y=1)

C.x,y=y,x

D.x=y=1

4.下面( )不属于Python保留字。

A.type

B.def

C.elif

D.import

5.( )不是Python语言的保留字。

A.try

B.del

C.None

D.int

6.字符串是一个字符序列,给定字符串s,以下表示s从右侧向左第三个字符的是( )。

A.s[:-3]

B.s[3]

C.s[0:-3]

D.s[-3]

7.以下不属于IPO模型的是( )。

A.Input

B.Process

C.Output

D.Program

8.以下可以采用Python语言保留字的是( )。

A.函数名称

B.第三方库名称

C.变量名称

D.以上选项都不正确

二、判断题

1._MyG5是Python语言合法命名。( )

2.字符串是一个字符序列,例如,s[:-2]是字符串s从右侧向左第二个字符的索引。( )

3.ASCII码是最为广泛的编码方式,它可以表示中文字符,同时避免出现乱码。( )

4.文件名、目录名和链接名都是用一个字符串作为其标识符的。( )

5.计算机编码主要是为了解决信息在传递过程中被窃取而设计的一种加密方法。( )

6.文件后缀名采用.pyw而不是.py的目的是绘制窗口。( )

三、实训题

1.打印调试日志。在智能车调试过程中,良好的日志记录习惯有助于在调试过程中发现问题,解决问题。请设计一段代码,用于格式化输出日志信息,包含当前日期时间、车辆行驶速度、车辆转向角度、电池电压信息。提示:使用time库获取时间戳,使用字符串格式化输出方法。日期信息如下:

2.计算智能车行驶速度。智能车竞赛中使用编码器获得电机转速信息,然而智能车行驶速度需要通过计算获得。将计算公式简化为车速=电机转速×轮胎周长×传动比,其中,轮胎周长是指轮胎胎面与地面接触时的周长,传动比是指驱动轴旋转一圈时车轮旋转的圈数。已知智能车轮胎直径为2.5cm,传动比为2:1,请设计程序实现以下功能:用户输入电机转速,自动计算出车速并保留小数点后两位输出,单位为m/s。示例:

3.智能车平台账户登录欢迎信息。

智能车启动之后,需要登录账号才能进入使用,请编写一段代码在用户输入账户名后,显示含有账户名的欢迎词。示例: SG9eF7w5m7KQdBtdfNVdzCERGj5wCaPJzQ+e7Fj7FUN+QqEEK9ZkbZsUgqY5PsjH

点击中间区域
呼出菜单
上一章
目录
下一章
×