image

编辑人: 青衫烟雨

calendar2025-05-10

message2

visits706

2021年09月Python三级理论答案及解析

一、单选题

1、使用map函数可以实现列表数据元素类型的转换,而无需通过循环。则将列表L=['1','3','5','7','9']转换为列表[1,3,5,7,9]的函数写法为?

A、map(int,L)

B、list(map(int,L))

C、map(L,int)

D、list(map(L,int))

解析:【喵呜刷题小喵解析】题目要求将列表L=['1','3','5','7','9']转换为列表[1,3,5,7,9]。在Python中,`map()`函数可以对列表中的每个元素应用一个函数,并返回一个新的迭代器。但是,`map()`函数不能直接返回一个新的列表,它返回的是一个迭代器。因此,我们需要使用`list()`函数将迭代器转换为列表。所以,将列表L=['1','3','5','7','9']转换为列表[1,3,5,7,9]的函数写法为:`list(map(int,L))`。选项A的`map(int,L)`只调用了`map()`函数,没有将结果转换为列表,所以A是错误的。选项C和D的`map(L,int)`和`list(map(L,int))`都是错误的,因为`map()`函数的第一个参数应该是函数,第二个参数应该是列表,而在这两个选项中,参数的位置颠倒了。因此,正确答案是B。

2、以下关于len()函数的说法中错误的是?

A、len()函数可以用于返回字符串中的字符数

B、len()函数可以用于返回列表中的元素个数

C、len("I love China" )的结果为10

D、len("I love China" )的结果为12

解析:【喵呜刷题小喵解析】:A选项正确,len()函数可以用于返回字符串中的字符数。B选项也正确,len()函数可以用于返回列表中的元素个数。对于C选项,len("I love China")的结果应为7,而不是10,因为"I love China"这个字符串中有7个字符,所以C选项是错误的。D选项错误,因为len("I love China")的结果应为7,而不是12。因此,正确答案是C。

3、关于Python异常处理的解释,描述正确的是?

A、一般情况下,在Python正常处理程序时也会发生一个异常

B、异常处理增加了程序代码长度,降低了可读性

C、在程序中加入异常处理会使程序出现错误

D、当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行

解析:【喵呜刷题小喵解析】:在Python中,异常处理是一种处理程序运行时可能发生的错误或异常情况的机制。当Python脚本发生异常时,我们需要捕获并处理它,否则程序会终止执行。因此,选项D描述是正确的。选项A描述错误,因为Python中的异常不是程序正常执行的一部分,而是在发生错误或异常情况时才会发生。选项B描述错误,因为异常处理虽然可能会增加一些代码,但它提高了程序的健壮性,使得程序在发生错误时能够更优雅地处理,而不是直接崩溃。选项C描述错误,因为加入异常处理是为了处理程序中可能出现的错误,而不是使程序出现错误。

4、Python文件常用的写入方式有w+和a+,它们的相同点是?

A、覆盖写

B、追加写

C、若文件不存在就创建

D、每次写的时候会自动覆盖上一次的内容

解析:【喵呜刷题小喵解析】:Python文件常用的写入方式有w+和a+,其中w+表示写入模式打开文件,如果文件存在则覆盖,如果文件不存在则创建;a+表示追加模式打开文件,如果文件存在则在文件末尾追加内容,如果文件不存在则创建。因此,它们的相同点是若文件不存在就创建。所以,正确答案是C。

5、Python标准库math中用来计算平方根的函数是?

A、sqrt

B、max

C、min

D、print

解析:【喵呜刷题小喵解析】:在Python标准库math中,用来计算平方根的函数是sqrt。因此,正确答案是A选项。其他选项如max、min和print都不是用来计算平方根的函数。

6、某同学上完体育课回教室发现丢失了重要的物品,于是他找到班主任求助。班主任打开视频监控,然后把视频进度拖到这节课中间时间点,发现水杯已经丢了,于是判定是前半节课丢的。接着又把视频进度拖到前面一半的一半……重复以上过程,很快就锁定了物品丢失的真相。以上描述,体现出了哪一种算法思想?

A、二分法

B、选择排序法

C、递归法

D、迭代法

解析:【喵呜刷题小喵解析】:题目描述了一个同学通过班主任使用视频监控来查找物品丢失的时间点,班主任通过不断将视频进度减半的方式来缩小查找范围,最终锁定了物品丢失的真相。这种通过不断将问题规模减半来逐步缩小查找范围的方法,正是二分法的基本思想。因此,正确答案是A,二分法。

7、去掉列表中的部分数据,例如去掉列表[1,2,3,4,5,6,7,8,9]中3的倍数,可以使用哪一函数来实现?

A、map

B、filter

C、zip

D、enumerate

解析:【喵呜刷题小喵解析】:在Python中,`filter()`函数用于过滤序列,过滤掉不符合指定条件的元素,返回由符合条件元素组成的新列表。因此,去掉列表中的部分数据,例如去掉列表[1,2,3,4,5,6,7,8,9]中3的倍数,可以使用`filter()`函数来实现。其他选项的含义如下:`map()`函数用于对序列的每个元素执行指定的函数,并返回由函数返回值组成的新列表;`zip()`函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象;`enumerate()`函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。因此,正确答案是B,即`filter()`函数。

8、定义一个列表 num=list(range(3,6)) print(num) 输出的结果是?

A、[0,1,2,3]

B、[0,1,2,3,4,5,6]

C、[3,4,5]

D、[3,4,5,6]

解析:【喵呜刷题小喵解析】根据题目,我们定义了一个列表 num=list(range(3,6))。在Python中,range(start, stop)函数会生成一个从start开始到stop-1结束的整数序列。因此,range(3,6)会生成一个包含3,4,5的序列。所以,列表 num 的内容应为 [3,4,5]。因此,输出的结果应该是 [3,4,5]。选项C是正确的。

9、print(divmod(34,8))运行结果是?

A、4 2

B、4

C、2

D、2 4

解析:【喵呜刷题小喵解析】:在Python中,`divmod()`函数返回两个值,第一个值是除法的商,第二个值是除法的余数。对于`divmod(34,8)`,商是4,余数是2,所以`print(divmod(34,8))`的运行结果是`(4, 2)`,即选项A。

10、八进制10的十进制值是?

A、8

B、10

C、20

D、24

解析:【喵呜刷题小喵解析】:在八进制中,数字10等于十进制的8。因为八进制中,基数为8,所以每一位上的数字代表的数值是8的幂次方。具体来说,8的0次方是1,8的1次方是8。因此,八进制的10等于十进制的8。

11、a=3.1415926 round(a,2) 运行结果是?

A、3

B、3.14

C、3.141

D、3.1415926

解析:【喵呜刷题小喵解析】根据Python语言的round()函数,它会返回浮点数最接近的整数或指定小数位数。在本题中,变量a的值为3.1415926,round(a,2)表示将a四舍五入到小数点后两位,因此运行结果为3.14。所以,正确答案是B选项。

12、Python内置函数( )用来返回序列中的最小元素?

A、mini()

B、read()

C、max()

D、min()

解析:【喵呜刷题小喵解析】:在Python中,内置函数`min()`用于返回序列中的最小元素。其他选项中的`mini()`、`read()`和`max()`都不是Python内置的函数。因此,正确答案是`D`。

13、下面表达式的运行结果与print(divmod(37,9))运行结果相同的是?

A、print(37%9,37//9)

B、print((37%9,37//9))

C、print(37//9,37%9)

D、print((37//9,37%9))

解析:【喵呜刷题小喵解析】题目要求找出与`print(divmod(37,9))`运行结果相同的表达式。`divmod(37,9)`会返回两个值,分别是37除以9的商和余数。* `print(37%9, 37//9)`:这里`37%9`计算的是余数,`37//9`计算的是商,但是顺序与`divmod`不同。* `print((37%9,37//9))`:虽然计算的是商和余数,但是它们被放在一个元组中,与`divmod`返回值的格式不同。* `print(37//9, 37%9)`:这里虽然也是先计算商再计算余数,但是顺序与`divmod`不同。* `print((37//9,37%9))`:这里计算的也是商和余数,并且它们被放在一个元组中,与`divmod`返回值的格式相同。因此,与`print(divmod(37,9))`运行结果相同的表达式是`print((37//9,37%9))`,即选项D。

14、已知输入变量x = 'hello world', 调用函数x.replace('l', 'h')的结果为?

A、'hello world'

B、'lello world'

C、'hello worhd'

D、'hehho worhd'

解析:【喵呜刷题小喵解析】在Python中,字符串的`replace()`方法用于替换字符串中的某个子字符串。在给定的示例中,输入变量`x`的值为`'hello world'`,函数`x.replace('l', 'h')`的作用是将所有出现的'l'字符替换为'h'字符。因此,经过替换后,字符串变为`'hehho worhd'`,与选项D匹配。

15、下列十六进制数中,转换为二进制数后含有偶数个“1”的是?

A、0xF8

B、0xE0

C、0xA9

D、0x15

解析:【喵呜刷题小喵解析】十六进制数转换为二进制数后,需要统计二进制数中“1”的个数。A选项:0xF8转换为二进制是11111000,有3个“1”。B选项:0xE0转换为二进制是11100000,有2个“1”。C选项:0xA9转换为二进制是10101001,有2个“1”。D选项:0x15转换为二进制是00010101,有2个“1”。因此,只有C选项和D选项的二进制数中含有偶数个“1”。但题目只要求选择一个答案,所以正确答案是C。

16、以下表达式是十六进制整数的选项是?

A、16

B、0b16

C、0x16

D、'0x16'

解析:【喵呜刷题小喵解析】:在十六进制数中,必须以0x或0X开头,其中x或X代表十六进制的缩写。因此,选项C "0x16" 是一个合法的十六进制整数表示。选项A "16" 没有前缀,所以不是十六进制数。选项B "0b16" 中的 "0b" 是二进制的前缀,所以也不是十六进制数。选项D "'0x16'" 是字符串,不是整数,因此也不是十六进制数。因此,正确答案是C。

17、给已有文件“实验中学学生花名册.txt”增加两名学生,而且不能覆盖原有的内容。 下面代码正确的是?

A

B

C

D

解析:【喵呜刷题小喵解析】:在文件中添加新内容时,通常的做法是在文件末尾追加新数据,而不是覆盖原有内容。根据图片显示,选项D的代码似乎是在文件末尾添加了两条新的学生信息,没有覆盖原有的内容。因此,D选项是正确的。其他选项中的代码没有按照正确的方式在文件末尾追加内容,可能会覆盖原有的学生信息。

18、以下关于二进制整数的定义,正确的是?

A、0B1014

B、0b1010

C、0b1019

D、0bC3F

解析:【喵呜刷题小喵解析】:二进制整数的表示法是以0b(或0B)开头,后面跟着0和1的序列。因此,选项B "0b1010" 是一个有效的二进制整数表示。选项A "0 1014" 不是有效的二进制表示,因为它没有以0b开头。选项C "0b1019" 也不是有效的二进制表示,因为二进制数不能表示超过7位的整数(0到127或-1到-128),这里的1019超出了这个范围。选项D "0bC3F" 同样不是有效的二进制表示,因为它包含非0和非1的字符。因此,只有选项B是正确的。

19、设s="happy time",那么print(s[-2:])的结果是?

A、me

B、happy

C、time

D、ha

解析:【喵呜刷题小喵解析】:在Python中,字符串的索引是从0开始的。`s[-2:]`表示从字符串`s`的倒数第二个字符开始,取到字符串的结尾。对于字符串`s="happy time"`,倒数第二个字符是`t`,倒数第一个字符是`i`,所以`s[-2:]`的结果是`ti`,对应选项A。因此,正确答案是A。

20、程序执行程序后,"中国诗人.txt"文件内容为?

A、唐 李白 唐 白居易

B、唐 李白 唐 白居易

C、唐 李白\n 唐 白居易

D、唐 李白\n 唐 白居易\n

解析:【喵呜刷题小喵解析】题目中询问的是"中国诗人.txt"文件的内容。根据题目给出的选项,我们可以逐一分析:A选项:唐 李白 唐 白居易* 此选项的格式与题目中的图片内容不符,因为题目中的图片显示诗人名字是分行显示的。B选项:唐 李白唐 白居易* 此选项与题目中的图片内容完全一致,诗人名字分行显示。C选项:唐 李白 唐 白居易* 此选项没有分行,与题目中的图片内容不符。D选项:唐 李白 唐 白居易* 此选项同样没有分行,与题目中的图片内容不符。因此,正确答案是B选项。

21、rd()函数可以将一个字符转化成ascii码值,而chr函数则是相反的过程。 已知'a'的ascii码值为97,'A'的ascii码值为65, 则Python完成小写转大写的核心代码为?( )

A、chr(ord(a)-31)

B、ord(chr(a)-32)

C、chr(ord(a)+32)

D、chr(ord(a)-32)

解析:【喵呜刷题小喵解析】在Python中,`ord()`函数可以将字符转化为其对应的ASCII码值,`chr()`函数则是将ASCII码值转化为对应的字符。题目中已知'a'的ASCII码值为97,'A'的ASCII码值为65,要求实现小写字母转大写字母。小写字母a的ASCII码值为97,大写字母A的ASCII码值为65,两者相差32,因此要将小写字母转换为大写字母,需要将小写字母的ASCII码值减去32。因此,Python完成小写转大写的核心代码为`chr(ord(a)-32)`,选项D正确。

22、关于文件的读写,下列解释表述错误的是?

A、读取模式('r')

B、写入模式('w')

C、读写模式('w')

D、附加模式('a')

解析:【喵呜刷题小喵解析】:在文件的读写模式中,选项A表示读取模式('r'),选项B表示写入模式('w'),选项D表示附加模式('a')。然而,选项C中的“读写模式('w')”是错误的。在Python等编程语言中,'w'模式表示写入模式,如果文件已经存在,它会被覆盖;如果文件不存在,会创建新文件。这个模式并不支持同时读取和写入,因此选项C是错误的。

23、小明编写了一个插入排序的算法,为列表arr = [5, 33, 21, 67, 39, 73, 7, 43 ]中的数值进行排序,他在调试时,如下图所示有意修改了循环的次数,请问,现在代码运行后print(arr)打印出的结果是?

A、[5, 33, 21, 67, 39, 73, 7, 43]

B、[5, 21, 33, 67, 39, 43, 7, 73]

C、[5, 21, 33, 39, 67, 7, 73, 43]

D、[5, 21, 33, 67, 39, 73, 7, 43]

解析:【喵呜刷题小喵解析】:根据题目中的图片,我们可以看到小明编写的插入排序算法在调试时,有意修改了循环的次数。在插入排序中,每一次循环都会将当前元素插入到已排序的部分中合适的位置,直到整个列表都排好序。如果循环次数被修改,可能会导致排序结果不正确。然而,具体的影响取决于修改的方式。如果循环次数被减少,那么列表可能无法完全排序。如果循环次数被增加,可能会导致列表的重复排序。根据题目中的选项,只有选项D中的列表是可能的排序结果,因此答案为D。

24、异常处理的作用是不想让程序终止,如果出错了需要特殊处理。下列实现异常处理的语句是?

A、if /else

B、try/except

C、Warning

D、Error

解析:【喵呜刷题小喵解析】:在编程中,异常处理是用于处理程序中可能出现的错误或异常情况的一种机制。`try/except`是Python等语言中用于实现异常处理的语句,其中`try`语句块中的代码可能会引发异常,而`except`语句块用于处理这些异常。而`if/else`是条件语句,用于根据条件执行不同的代码块,并不直接处理异常。`Warning`和`Error`也不是用于异常处理的语句,它们通常与错误和警告信息的输出有关。因此,实现异常处理的语句是`try/except`,答案为B。

25、小明想对列表arr = [5, 33, 21, 67, 39, 73, 7, 43 ]中的数值进行排序,于是编写了“冒泡排序”代码,如下图。 请问,下图红线处,应该填入哪段代码?

A

B

C

D

解析:【喵呜刷题小喵解析】根据冒泡排序算法,每次遍历列表时,会将相邻的两个元素进行比较,如果顺序不对则交换位置。根据提供的列表arr = [5, 33, 21, 67, 39, 73, 7, 43],我们需要将列表中的元素按照从小到大的顺序进行排序。在冒泡排序中,每次遍历都会将当前最大的元素“冒泡”到列表的末尾。因此,在每次遍历中,我们需要比较相邻的两个元素,如果它们的顺序不对,就交换它们的位置。在给出的选项中,选项D中的代码实现了这个比较和交换的过程,符合冒泡排序的算法要求。因此,正确答案是D。

二、判断题

26、readline()执行结果为字符串,readlines()执行结果为列表。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Python中,`readline()`函数用于从文件中读取一行,并返回读取到的字符串。而`readlines()`函数用于读取文件中的所有行,并将它们作为一个列表返回,其中每个元素都是文件中的一行。因此,`readline()`的执行结果为字符串,而`readlines()`的执行结果为列表。所以,题目的说法是正确的。

27、猜一个20以内的随机数二分法比顺序查找的效率更高。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:二分法是一种在有序数组中查找特定元素的搜索算法。其基本原理是,首先比较数组中间的元素与目标值,如果中间元素正是目标值,则搜索结束;如果目标值大于或小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。二分法的平均时间复杂度为O(log n),而顺序查找的时间复杂度为O(n)。因此,对于20以内的随机数,二分法比顺序查找的效率更高。所以,本题答案为A。

28、Python中避免使用反斜线'\'指定文件路径时出错,如\t;常常使用斜线'/'或者双反斜线'\\'。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Python中,确实推荐使用斜线(/)或双反斜线(\)来指定文件路径,而不是反斜线(\)。反斜线在字符串中是一个特殊字符,用于转义,例如"\n"表示换行符。因此,当需要在字符串中包含反斜线时,需要使用双反斜线(\)来表示一个实际的反斜线。然而,当指定文件路径时,为了避免混淆和错误,推荐使用斜线(/)或双反斜线(\)。斜线(/)在大多数操作系统中都是路径分隔符,包括Windows(在Python中),因此它是一个更通用的选择。双反斜线(\)在Python字符串中会被解释为单个反斜线,因此也可以用于指定文件路径,但斜线(/)更为常见。因此,A选项是正确的。

29、bool函数判断整数参数的布尔值时,只要是非0参数,结果就为True。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在大多数编程语言中,当判断整数参数的布尔值时,非0值通常被视为True,而0被视为False。因此,题目中的说法“只要是非0参数,结果就为True”是正确的。所以,选项A是正确的。

30、二进制数转换为十六进制的方法是:从右到左将4位分成一段,左边不满4位的可以用0补满,分别转换为十六进制。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:题目中描述的二进制数转换为十六进制的方法是正确的。从右到左将4位分成一段,左边不满4位的可以用0补满,然后分别转换为十六进制,这是二进制数转换为十六进制的标准方法。因此,答案是A,正确。

31、Python中的dir函数是一个文件夹操作函数,其主要作用是创建一个文件夹。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Python中,`dir`函数并不是一个用于创建文件夹的函数。实际上,`dir`函数的主要作用是列出对象的属性。当你对一个模块、类、实例或者类型使用`dir`函数时,它会返回该对象的所有属性和方法列表。因此,题目的陈述是错误的。

32、二进制数与十六进制数的末位是“1”,各转换为十进制数后都是奇数。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在二进制和十六进制中,末位为“1”的数转换为十进制后,确实都是奇数。在二进制中,末位为“1”表示该数是奇数(因为二进制中,末位为0表示偶数,末位为1表示奇数)。例如,二进制数11转换为十进制是3,是一个奇数。在十六进制中,末位为“1”同样表示该数是奇数。例如,十六进制数1F转换为十进制是31,也是一个奇数。因此,题目的说法是正确的。

33、在try-finally异常处理结构中,无论是否发生异常,都会处理最后的代码。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Java等语言中,try-finally语句结构中的finally块中的代码总是会被执行,无论try块中是否发生了异常。这种设计确保了资源总是会被适当地清理,例如关闭文件、释放数据库连接等。因此,无论是否发生异常,都会执行finally块中的代码,所以选项A正确。

34、song.csv文件中第一列是歌曲名,使用以下Python程序可以把歌曲名单一一读取出来。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:根据题目中的描述,song.csv文件中第一列是歌曲名,使用Python程序可以读取csv文件。因此,题目中的Python程序可以把歌曲名一一读取出来,选项A正确。

35、执行代码 x, y, z = sorted([1, 3, 2]) 之后,变量y的值为 1 。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Python中,`sorted()`函数返回一个新的排序后的列表,并不会修改原列表。因此,执行`x, y, z = sorted([1, 3, 2])`后,`x`、`y`和`z`分别代表排序后的列表中的前三个元素,即`x=1`,`y=2`,`z=3`。所以,变量`y`的值并不是1,而是2。因此,题目的陈述是错误的。

喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:2021年09月Python三级理论答案及解析

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share