Python等级考试(1~6级)全部真题・点这里
一、单选题(共25题,每题2分,共50分)
第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))
答案:B
使用map函数可以对列表中的每个元素应用一个函数,将其转换为指定的类型。在这个例子中,我们希望将列表L中的每个元素转换为整数类型,所以我们使用int函数作为转换函数。然后,使用list函数将map对象转换为列表,得到最终的结果[1, 3, 5, 7, 9]。
第2题
以下关于len()函数的说法中错误的是?
A:len()函数可以用于返回字符串中的字符数
B:len()函数可以用于返回列表中的元素个数
C:len(“I love China” )的结果为10
D:len(“I love China” )的结果为12
答案:C
len(“I love China”)的结果为12,因为字符串中有12个字符,包括空格。
第3题
关于Python异常处理的解释,描述正确的是?
A:一般情况下,在Python正常处理程序时也会发生一个异常
B:异常处理增加了程序代码长度,降低了可读性
C:在程序中加入异常处理会使程序出现错误
D:当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行
答案:D
异常处理是一种机制,用于在程序执行过程中处理可能出现的错误或异常情况。当Python脚本发生异常时,如果没有进行异常处理,程序会终止执行并抛出异常信息。为了避免程序的意外终止,我们需要使用异常处理机制来捕获并处理异常,以便程序能够继续执行或采取适当的措施。
选项A是错误的,一般情况下,在Python正常处理程序时不会发生异常。选项B也是错误的,异常处理并不一定会增加代码长度,而且良好的异常处理可以提高代码的可读性。选项C也是错误的,加入异常处理并不会导致程序出现错误,相反,它可以帮助我们更好地处理错误情况。
第4题
Python文件常用的写入方式有w+和a+,它们的相同点是?
A:覆盖写
B:追加写
C:若文件不存在就创建
D:每次写的时候会自动覆盖上一次的内容
答案:C
w+和a+都是Python文件写入模式中的选项。它们的相同点是,如果文件不存在,它们都会创建一个新的文件。无论是w+还是a+,如果指定的文件不存在,都会自动创建一个新文件进行写入操作。
选项A是错误的,w+是覆盖写模式,而a+是追加写模式。选项B也是错误的,w+是覆盖写模式,而a+是追加写模式。选项D也是错误的,w+和a+都不会自动覆盖上一次的内容,而是根据模式进行写入操作。
第5题
Python标准库math中用来计算平方根的函数是?
A:sqrt
B:max
C:min
D:print
答案:A
在Python标准库math中,用来计算平方根的函数是sqrt。该函数接受一个参数,返回该参数的平方根值。可以通过导入math模块后,使用math.sqrt()来调用该函数。
第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
答案:B
可以使用B:filter函数来实现去掉列表中的部分数据,例如去掉列表[1,2,3,4,5,6,7,8,9]中3的倍数。
filter函数接受一个函数和一个可迭代对象作为参数,然后返回一个由满足条件的元素组成的迭代器或可迭代对象。传入的函数用于判断每个元素是否满足条件,如果满足条件,则保留该元素,否则将其丢弃。
在这个例子中,我们可以定义一个函数,用于判断一个数是否为3的倍数,然后将该函数和列表[1,2,3,4,5,6,7,8,9]传递给filter函数。filter函数将返回一个由不是3的倍数的元素组成的迭代器,即去掉了列表中的3的倍数。
第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]
答案:C
在代码中,list(range(3,6))表示生成一个从3到5的整数序列,并将其转换为列表。结果就是包含3、4、5这三个元素的列表。因此,打印num的结果是[3,4,5]。
第9题
print(divmod(34,8))运行结果是?
A:4 2
B:4
C:2
D:2 4
答案:A
divmod()是一个内置函数,它接受两个参数,并返回一个元组,包含两个值:商和余数。在这个例子中,参数为34和8,所以34除以8的商是4,余数是2。因此,divmod(34,8)的结果是(4, 2)。当使用print()函数打印这个结果时,会分别打印出商和余数,即输出为"4 2"。
第10题
八进制10的十进制值是?
A:8
B:10
C:20
D:24
答案:A
在八进制系统中,每个位上的数值是0到7,因此八进制数中的数字范围是0到7。当表示数字10时,由于超过了八进制范围,需要使用十进制来表示。
因此,八进制数10对应的十进制值是8。
第11题
a=3.1415926
round(a,2)
运行结果是?( )
A:3
B:3.14
C:3.141
D:3.1415926
答案:B
在给定的代码中,a的值是3.1415926。round()是一个内置函数,用于对浮点数进行四舍五入。它接受两个参数,第一个参数是要进行四舍五入的数值,第二个参数是保留的小数位数。
在这个例子中,round(a,2)表示将a四舍五入到小数点后2位。因此,结果是3.14。
第12题
Python内置函数( )用来返回序列中的最小元素?
A:mini()
B:read()
C:max()
D:min()
答案:D
min()函数接受一个可迭代对象作为参数,例如列表、元组或集合,然后返回其中的最小值。当传入多个参数时,min()函数会返回这些参数中的最小值。
第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))
答案:D
divmod(37,9)的结果是(4, 1),其中4是商,1是余数。选项D中的表达式print((37//9,37%9))使用了括号将商和余数组成一个元组。因此,这个表达式会打印出相同的结果,即输出为"(4, 1)"。
第14题
已知输入变量x = ‘hello world’, 调用函数x.replace(‘l’, ‘h’)的结果为?
A:‘hello world’
B:‘lello world’
C:‘hello worhd’
D:‘hehho worhd’
答案:D
在给定的代码中,变量x的值是’hello world’。replace()是字符串的内置方法,用于将指定的字符串或字符替换为新的字符串。
在这个例子中,x.replace(‘l’, ‘h’)表示将字符串x中的所有’l’替换为’h’。因此,结果是’hehho worhd’。
第15题
下列十六进制数中,转换为二进制数后含有偶数个“1”的是?
A:0xF8
B:0xE0
C:0xA9
D:0x15
答案:C
0xF8 对应的二进制数是 11111000,其中有 5 个1,不满足条件。
0xE0 对应的二进制数是 11100000,其中有 3 个1,不满足条件。
0xA9 对应的二进制数是 10101001,其中有 4 个1,满足条件。
0x15 对应的二进制数是 00010101,其中有 3 个1,不满足条件。
因此,选项C:0xA9 是转换为二进制数后含有偶数个"1"的数
第16题
以下表达式是十六进制整数的选项是?
A:16
B:0b16
C:0x16
D:‘0x16’
答案:C
在Python中,表示十六进制整数时,通常会在数字前面加上前缀"0x"。这个前缀指示解释器将该数值解释为十六进制。
在给定的选项中,选项A:16是一个十进制整数,选项B:0b16是一个二进制数(以"0b"为前缀表示二进制),选项D:'0x16’是一个字符串,而选项C:0x16是一个十六进制整数。
第17题
给已有文件“实验中学学生花名册.txt”增加两名学生,而且不能覆盖原有的内容。 下面代码正确的是?
A:
filename="实验中学学生花名册.txt"with open(filename,"w") as f:f.write("黎明\n")f.write("方芳\n")
B:
filename="实验中学学生花名册.txt"with open(filename,"r") as f:f.write("黎明\n")f.write("方芳\n")
C:
filename="实验中学学生花名册.txt"with open(filename,"r+") as f:f.write("黎明\n")f.write("方芳\n")
D:
filename="实验中学学生花名册.txt"with open(filename,"a") as f:f.write("黎明\n")f.write("方芳\n")
答案:D
选项A中使用了文件打开模式"w",这会创建一个新文件并覆盖原有内容,不符合题目要求。
选项B中使用了文件打开模式"r",这只允许读取文件内容,无法写入新内容,也不符合题目要求。
选项C中使用了文件打开模式"r+",这允许读取和写入文件内容,但在写入时会覆盖原有内容,同样不符合题目要求。
选项D中使用了文件打开模式"a",这是以追加模式打开文件,可以在文件末尾添加新内容,不会覆盖原有的内容,符合题目要求。
因此,选项D是正确的代码。
第18题
以下关于二进制整数的定义,正确的是?
A:0B1014
B:0b1010
C:0b1019
D:0bC3F
答案:B
在Python中,表示二进制整数时,通常会在数字前面加上前缀"0b"。这个前缀指示解释器将该数值解释为二进制。
在给定的选项中,选项A:0B1014中的"B"应该是小写的"b",因此不是一个正确的二进制整数表示。
选项C:0b1019中的"9"不是二进制数的有效数字,因此也不是一个正确的二进制整数表示。
选项D:0bC3F中的"C"和"F"也不是二进制数的有效数字,因此同样不是一个正确的二进制整数表示。
只有选项B:0b1010是一个正确的二进制整数表示,表示十进制数10。
所以,选项B是正确的答案。
第19题
设s=“happy time”,那么print(s[-2:])的结果是?
A:me
B:happy
C:time
D:ha
答案:A
在Python中,使用负数索引可以从字符串的末尾开始访问字符。索引 -1 表示最后一个字符,索引 -2 表示倒数第二个字符,依此类推。
s[-2:]表示从索引 -2 开始到字符串末尾的子字符串。在这种情况下,索引 -2 对应字符串中的字符 “m”,而索引 -1 对应字符 “e”。
因此,print(s[-2:])的结果是 “me”。
第20题
filename = "中国诗人.txt"with open(filename,"w") as file:file.write("唐 李白\n")file.write("唐 白居易\n")
以上程序执行程序后,"中国诗人.txt"文件内容为?( )
A:唐 李白 唐 白居易
B:
唐 李白
唐 白居易
C:唐 李白\n 唐 白居易
D:唐 李白\n 唐 白居易\n
答案:B
在给定的代码中,使用文件打开模式"w"打开文件"中国诗人.txt",这会创建一个新文件并覆盖原有内容。
然后,使用file.write()将两行文本写入文件。每一行末尾的"\n"表示换行符。
因此,文件的内容为:
唐 李白
唐 白居易
第21题
ord()函数可以将一个字符转化成ascii码值,而chr函数则是相反的过程。 已知’a’的ascii码值为97,'A’的ascii码值为65, 则Python完成小写转大写的核心代码为?( )
a=input(“请输入一个小写字母:\n”) b=________________ print(“转化结果为:”+b)
A:chr(ord(a)-31)
B:ord(chr(a)-32)
C:chr(ord(a)+32)
D:chr(ord(a)-32)
答案:D
在给定的代码中,a是输入的小写字母。要将其转换为大写字母,可以使用ASCII码的值进行转换。
ord(a)返回字符 a 的ASCII码值。然后,对该值减去32,可以将小写字母的ASCII码转换为相应的大写字母的ASCII码。
最后,使用chr()函数将转换后的ASCII码值转换回字符。
所以,正确的代码应为 b = chr(ord(a) - 32)。
第22题
关于文件的读写,下列解释表述错误的是?
A:读取模式(‘r’)
B:写入模式(‘w’)
C:读写模式(‘w’)
D:附加模式(‘a’)
答案:C
解释错误在于将读写模式(‘w’)误写为读写模式。实际上,读写模式应该是指读取和写入都可行的模式,而不是仅限于写入。
第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
第24题
异常处理的作用是不想让程序终止,如果出错了需要特殊处理。下列实现异常处理的语句是?
A:if /else
B:try/except
C:Warning
D:Error
答案:B
在Python中,使用try/except语句可以实现异常处理。try块中包含可能会引发异常的代码,而except块则用于捕获并处理异常。
当try块中的代码引发异常时,程序的执行流程会立即转到相应的except块,从而避免程序终止,并允许执行特殊的异常处理逻辑。
第25题
小明想对列表arr = [5, 33, 21, 67, 39, 73, 7, 43 ]中的数值进行排序,于是编写了“冒泡排序”代码,如下图。
请问,下图红线处,应该填入哪段代码?( )
A:arr[j] > arr[i + 1]
B:arr[i] > arr[j + 1]
C:arr[i] > arr[i + 1]
D:arr[j] > arr[j + 1]
答案:D
二、判断题(共10题,每题2分,共20分)
第26题
readline()执行结果为字符串,readlines()执行结果为列表。
答案:正确
在Python中,文件对象的readline()方法用于逐行读取文件内容,并将每行内容作为一个字符串返回。每次调用readline()方法,会返回文件中的下一行,直到文件末尾。
第27题
猜一个20以内的随机数二分法比顺序查找的效率更高。
答案:正确
二分法是一种高效的搜索算法,适用于有序数据集合。在这种情况下,猜测一个20以内的随机数是一个有序数据集合,因此二分法比顺序查找的效率更高。
顺序查找是一种逐个比较的搜索方法,它从数据集的开头开始,依次比较每个元素,直到找到匹配的元素或搜索到数据集的末尾。顺序查找的时间复杂度为O(n),其中n是数据集的大小。
相比之下,二分法是一种分而治之的搜索方法。它首先将数据集分成两半,然后确定目标值可能存在的一半,再在该一半中进行查找。每次迭代都将数据集的大小减半,因此二分法的时间复杂度为O(log n),其中n是数据集的大小。
在这种情况下,猜一个20以内的随机数,使用二分法进行查找比顺序查找更高效,因为二分法的时间复杂度较低。在最坏情况下,顺序查找可能需要最多20次比较,而二分法最多只需要log₂(20) ≈ 4次比较。
所以,判断是正确的,二分法比顺序查找的效率更高。
第28题
Python中避免使用反斜线’‘指定文件路径时出错,如\t;常常使用斜线’/‘或者双反斜线’'。
答案:正确
在Python中,使用反斜线(\)作为转义字符,用于表示特殊字符。例如,\t表示制表符,\n表示换行符。如果在字符串中需要使用反斜线本身而不是转义字符,可以使用双反斜线(\)进行转义。
然而,指定文件路径时,在大多数情况下,常常使用斜线(/)而不是双反斜线(\)。这是因为在大多数操作系统中,包括Windows、Linux和macOS,斜线(/)被用作路径分隔符。即使在Windows系统上,使用斜线(/)作为路径分隔符也是可以的,并且会被自动转换为正确的路径分隔符。
使用斜线(/)作为路径分隔符具有跨平台的优势,可以在不同的操作系统上都能正常工作,而不需要考虑不同操作系统上的路径分隔符差异。
第29题
bool函数判断整数参数的布尔值时,只要是非0参数,结果就为True。
答案:正确
在Python中,bool()函数可以用于判断给定参数的布尔值。对于整数参数,如果参数是非零的整数,bool()函数的结果将为True。只要参数是非零值,无论正负,都会被判断为True。
第30题
二进制数转换为十六进制的方法是:从右到左将4位分成一段,左边不满4位的可以用0补满,分别转换为十六进制。
答案:正确
将二进制数从右到左每四位分成一段,并将左边不满四位的部分用零补满,然后将每一段转换为对应的十六进制数是正确的方法。
例如,对于二进制数110110101010,按照每四位分段的方法,可以分为3段:1101、1010、1010。然后将每段转换为对应的十六进制数,得到的结果为DAA。
第31题
Python中的dir函数是一个文件夹操作函数,其主要作用是创建一个文件夹。
答案:错误
在Python中,dir()函数不是用于文件夹操作或创建文件夹的函数。实际上,dir()函数是一个内置函数,用于获取指定对象的属性和方法列表。
当调用dir()函数时,可以传入一个对象作为参数(可选)。如果不传入参数,dir()函数将返回当前作用域内的所有名称列表。如果传入对象作为参数,dir()函数将返回该对象的属性和方法列表。
第32题
二进制数与十六进制数的末位是“1”,各转换为十进制数后都是奇数。
答案:正确
在二进制数和十六进制数中,如果它们的末位是 “1”,则在转换为十进制数后,它们都将成为奇数。
二进制数的末位是 “1” 表示该二进制数是奇数,因为奇数的二进制表示中最低位是 “1”。
十六进制数的末位是 “1” 时,也表示该十六进制数是奇数。因为十六进制中末位 “1” 的十进制值为 1,而奇数的十进制表示中最低位是 1。
以下是一些示例:
二进制数 101(末位是 “1”)转换为十进制是 5(奇数)。
十六进制数 1(末位是 “1”)转换为十进制是 1(奇数)。
第33题
在try-finally异常处理结构中,无论是否发生异常,都会处理最后的代码。
答案:正确
在 Python 的 try-finally 异常处理结构中,finally 代码块中的代码无论是否发生异常都会被执行。即使在 try 代码块中发生了异常并且没有被 except 捕获,finally 代码块也会被执行。
这种结构非常有用,因为它确保无论是否发生异常,都能执行一些必要的清理工作,例如释放资源、关闭文件等。
第34题
song.csv文件中第一列是歌曲名,使用以下Python程序可以把歌曲名单一一读取出来。
import csvwith open('song.csv', 'r') as f:reader = csv.reader(f)for i in reader:print(i[0])
答案:正确
给定的 Python 程序可以读取名为 “song.csv” 的文件,并将每行的第一列(歌曲名)逐一打印出来。程序使用 csv
模块中的 reader
函数来读取 CSV 文件。
下面是对程序的解释:
首先,使用 open()
函数打开名为 “song.csv” 的文件,并使用 with
语句来确保文件在使用后被正确关闭。
创建一个 csv.reader
对象,将文件对象 f
传递给它。这个 reader
对象可以逐行读取 CSV 文件的内容。
使用 for
循环遍历 reader
对象,每次迭代会得到一行数据,存储在变量 i
中。
在循环体中,打印每行数据中的第一列(索引为 0),也就是歌曲名。
第35题
执行代码 x, y, z = sorted([1, 3, 2]) 之后,变量y的值为 1 。
答案:错误
执行代码 x, y, z = sorted([1, 3, 2]) 后,变量 y 的值将为 2,而不是 1。
在这行代码中,sorted([1, 3, 2]) 返回一个已排序的列表 [1, 2, 3]。然后,该列表中的元素会依次赋值给变量 x、y 和 z。
因此,x 的值为 1,y 的值为 2,z 的值为 3。
所以,判断是错误的,变量 y 的值为 2,而不是 1。
三、编程题(共3题,共30分)
第36题
输入10个数据进行升序排序,并在这有序数据上插入一个数据,使之仍然有序。
程序代码如下,请补全。
lis=[]for i in range(10):x=int(input('输入待排序数据%d:'%(i)))lis.append(x)for i in range( ① ):for j in range(i,len(lis)):if ② :lis[i],lis[j]=lis[j],lis[i]print(lis)n=int(input('输入一个需要插入的数据:'))lis.append(n)for i in range( ③ ):if ④ :for j in range(i,len(lis)):lis[j],lis[-1]= ⑤breakprint(lis)
参考程序:
lis=[]for i in range(10):x=int(input('输入待排序数据%d:'%(i)))lis.append(x)for i in range(len(lis)-1):for j in range(i,len(lis)):if lis[i]>lis[j]:lis[i],lis[j]=lis[j],lis[i]print(lis)n=int(input('输入一个需要插入的数据:'))lis.append(n)for i in range(len(lis)-1):if lis[i]>=n:for j in range(i,len(lis)):lis[j],lis[-1]=lis[-1],lis[j]breakprint(lis)
第37题
小文的运动时间数据存储在文件“sport.csv”中,数据内容如下图显示:
下列代码实现了读取数据,求和并统计个数,输出平均时长,并保留2位小数,请你补全代码。
import csvwith open("/data/①") as f:rows = list(csv.reader(f))s=0c=0for row in rows[1:]:s+=int(②)c=c+1print(round(③,2))
参考程序:
import csvwith open("sport.csv") as f:rows = list(csv.reader(f))s=0c=0for row in rows[1:]:s+=int(row[0])c=c+1print(round(s/c,2))
第38题
给定一个整数 num,从 1 到 num 按照下面的规则返回每个数:
如果这个数被 3 整除,返回 ‘Apple’。
如果这个数被 5 整除,返回 ‘Pie’。
如果这个数能同时被 3 和 5 整除,返回 ‘ApplePie’。
如果这个数既不能被 3 也不能被 5 整除,返回这个数字的字符串格式。
n=int(input("请输入一个数字:"))results=[]for i in range(1,①):if ②:results.append("ApplePie")elif i%3==0:results.append("Apple")elif i%5==0:results.append("Pie")else:results.append(③)print(results)
参考程序:
n=int(input("请输入一个数字:"))results=[]for i in range(1,n+1):if i%3==0 and i%5==0:results.append("ApplePie")elif i%3==0:results.append("Apple")elif i%5==0:results.append("Pie")else:results.append(str(i))print(results)