image

编辑人: 人逝花落空

calendar2025-06-13

message3

visits618

2024月03月Python三级理论答案及解析

一、单选题

1、Python中,hex(2023)的功能是?( )

A、

将十进制数2023转化为十六进制数

B、

将十进制数2023转化为八进制数

C、

将十六进制数2023转化为十进制数

D、

将八进制数2023转化为十进制数

解析:

在Python中,hex()函数用于将十进制数转换为十六进制数。因此,hex(2023)的功能是将十进制数2023转化为十六进制数。选项A正确,而其他选项关于八进制和十六进制与十进制之间的转换都不是hex(2023)的功能。

2、下列Python表达式的值与其他三个选项不相等的是哪一个?( 

A、

(A)16

B、

(11)8

C、

(10)10

D、

(1010)2

解析:

首先,我们需要理解不同表达式在Python中的表示形式及其对应的值。在Python中,后缀表示数字的类型或基数(进制)。对于选项A和C,它们都是十进制数,分别表示为16和10(十进制),它们的值是相等的。对于选项D,它是二进制数,表示为(1010)2,转换为十进制也是10。然而,选项B中的(11)8表示的是一个八进制数,其值转换为十进制是7而非其他三个选项中的值。因此,选项B的值与其他三个选项不相等。

3、下列说法错误或值为False的是?( )

A、

将十进制数转化为八进制数的方法是除以8取余,逆序输出

B、

(8)16>(8)10

C、

(45)10=4×1015×100

D、

八进制数15对应的十进制数为13

解析:

选项A描述的是十进制转化为八进制的方法,这是正确的。选项B中的表达式"(8)16>(8)10"似乎包含了一些混淆的表述,可能是题目表述有误或者理解困难。按照正常的数值理解,8的十六进制和十进制表示是相等的,所以这个表达式既不能说对也不能说错,但由于题目要求选择错误或值为False的选项,我们可以假设这个表述是错误的。选项C描述了十进制数45如何被转化为八进制的过程,这是正确的。选项D描述了八进制数15转化为十进制的过程,结果是正确的。因此,根据题目的要求,选择错误的选项为B。

4、下面选项中最大的数是?( 

A、

(37)8

B、

(11111)2

C、

(1F)16

D、

(32)10

解析:

本题要求找出最大数,所以需要把四个选项转换成同样的数值形式进行比较。A选项是二进制数,B选项是十进制数,C选项是十六进制数,D选项也是十进制数。我们可以使用Python来进行转换。

A选项:(37)8,转换为十进制是3×8^1 + 7×8^0 = 24 + 7 = 31。

B选项:(11111)2,转换为十进制是1×2^5 + 1×2^4 + 1×2^3 + 1×2^2 + 1×2^1 + 1×2^0 = 32。

C选项:(1F)16,转换为十进制是1×16^1 + F×1 = 16 + 9 = 25。注意这里的F代表十六进制的数字9。

D选项:(32)10,已经是十进制数,无需转换。所以最大的是D选项的十进制数32。

5、关于下列代码,说法正确的是?( 

try:
    a = int(input('输入一个数:'))
    b = int(input('输入另一个数:'))
    m = a / b
    print('结果是', m)
except:
    print('其他错误!')
except ValueError:
    print('输入的不是数字!')

A、

输入的都是数字,且b为非0整数时,执行try后面的语句

B、

输入的有非数字时,执行except ValueError后面的语句

C、

输入的b0时,执行except后面的语句

D、

6行代码只能出现在try-except代码块的最后,所以代码书写有误,不能运行

解析:

对于给出的代码,我们来逐项分析选项:

A. 输入的都是数字,且b为非0整数时,执行try后面的语句:这个描述是正确的,当输入的都是数字且b不为0时,代码会正常执行并输出结果。

B. 输入的有非数字时,执行except ValueError后面的语句:这个描述也是正确的,当输入中包含非数字时,会引发ValueError异常,因此会执行except ValueError后的代码。

C. 输入的b为0时,执行except后面的语句:这个描述不完全正确。虽然b为0时会导致除以零的错误,但代码中并没有针对这种情况的专门处理,因此会直接引发一个更广泛的异常(如TypeError或其他),然后执行第一个except块中的代码。所以这个选项表述不准确。

D. 第6行代码只能出现在try-except代码块的最后,所以代码书写有误,不能运行:这个描述是正确的。在Python的try-except结构中,try块中的代码应该放在前面,而except块中的代码应该放在后面。给出的代码中,print(‘结果是’, m)应该放在try块中而不是except块中。因此,选项D是正确的。

6、下列代码的运行结果是?( 

for i in range(2):
    try:
        a = 5 % i
    except:
        print('&&&&&')
    else:
        print('@@@@@')
    finally:
        print('*****')

A、

@@@@@

*****

@@@@@

*****

B、

&&&&&

*****

@@@@@

*****

C、

&&&&&

*****

&&&&&

*****

D、

&&&&&

@@@@@

*****

解析:

首先,我们来分析代码的运行过程。这段代码包含一个for循环,循环两次,分别计算表达式a = 5 % i。在第一次循环中,i的值为0,所以表达式的结果为5 % 0,这在Python中会引发一个异常,因为除以零是不允许的。在异常发生时,程序会执行except块中的代码,打印出’&&&&&‘,然后执行finally块中的代码,打印出’‘。在第二次循环中,i的值为1,表达式的结果为5 % 1,这是合法的操作,所以不会引发异常。因此,会执行else块中的代码,打印出’@@@@@‘,然后执行finally块中的代码,打印出’’。因此,这段代码的输出应该是:

@@@@@
*****
&&&&&
*****
所以答案是B选项。

7、下面程序使用的with语句打开文件,处理结束后会?( )

c=['老虎','狗','狮子','大象','狼']
with open('动物.csv','w') as f:
  f.write(','.join(c)+'\n')

A、

自动读取 动物.csv 文件

B、

自动写入 动物.csv 文件

C、

自动打开 动物.csv 文件

D、

自动关闭 动物.csv 文件

解析:

在Python中,使用with语句打开文件时,会在代码块执行完毕后自动关闭文件。上述程序中的with open('动物.csv','w') as f:表示以写入模式(‘w’)打开名为’动物.csv’的文件,并将文件对象赋给变量f。程序在处理完文件后,会自动关闭该文件,因此答案是D,即“自动关闭 动物.csv 文件”。

8、与下列Python程序实现的功能一样的是?( 

with open('动物.csv','r') as f:
  h=f.read().strip().split(',')
print(h)

A、

f=open('动物.csv','r')
h=f.read().split(',').strip()
f.close()
print(h)

B、

f=open('动物.csv','r')
h=f.read().strip().split(',')
f.close()
print(h)

C、

f=open('动物.csv','r')
h=f.read().strip().split(',')
print(f)

D、

f=open('动物.csv','r')
h=f.read().split(',').strip()
f.close()
print(f)

解析:

题目中的Python程序功能是读取名为’动物.csv’的文件,去除字符串头尾空白符后按逗号分割字符串,然后打印分割后的结果。选项B的程序与题目中的程序功能一致,都是先打开文件,读取内容,然后去除头尾空白符并按逗号分割,最后打印分割后的结果。其他选项的程序在文件处理或操作上有细微差别,如没有使用with语句自动关闭文件、先分割再去除空白符、打印的是文件对象而非处理后的内容等。

9、关于语句f=with open('d:/stu.csv', 'r'),下列描述不正确的是?( )

A、

如果文件stu.csv不存在,会创建stu.csv

B、

以只读方式打开文件

C、

f是变量名

D、

程序处理完毕,会自动关闭stu.csv

解析:

关于语句f=with open(‘d:/stu.csv’, ‘r’),以下是对各选项的描述:

A. 如果文件stu.csv不存在,会创建stu.csv - 这个描述是不正确的。使用’with open()’语句并以只读模式(‘r’)打开文件时,如果文件不存在,Python不会创建该文件。

B. 以只读方式打开文件 - 这是正确的。语句中的’r’表示以只读模式打开文件。

C. f是变量名 - 这也是正确的。在语句中,f是用来引用文件的变量。

D. 程序处理完毕,会自动关闭stu.csv - 这是正确的。使用’with’语句,当代码块执行完毕时,文件会自动关闭。

因此,描述不正确的选项是A。

10、有关Python文件常用读写方式的描述,错误的是?( )

A、

read() 每次读取整个文件

B、

read() 生成的文件内容是一个列表

C、

readline() 每次只读取文件的一行

D、

readlines() 每次按行读取整个文件内容,将读取到的内容放到一个列表中

解析:

在Python中,使用read()方法读取文件时,返回的是文件内容的字符串,而不是列表。因此,选项B描述错误。其他选项描述都是正确的,read()确实可以一次性读取整个文件,readline()每次只读取一行,而readlines()会按行读取整个文件内容,并将读取到的内容以列表的形式返回。

11、关于语句f=open(r"c:\计算.txt",'w'),下列描述不正确的是?( )

A、

f是变量

B、

'w'以写方式打开文件

C、

如果文件“计算.txt”不存在,不会报错

D、

如果文件“计算.txt”内原来有内容,将不会被覆盖

解析:

在Python中,语句f=open(r"c:\计算.txt",‘w’)的功能是打开(或创建)一个文件,并以写模式打开它。

A选项:f是变量,这是正确的,因为我们在使用open函数后,将返回的文件对象赋值给了变量f。

B选项:’w’以写方式打开文件,这也是正确的,’w’模式表示写模式,如果文件存在,则清空文件内容;如果文件不存在,则创建新文件。

C选项:如果文件"计算.txt"不存在,不会报错,这也是正确的,因为’w’模式可以在文件不存在的情况下创建新文件。

D选项:如果文件"计算.txt"内原来有内容,将不会被覆盖,这是不正确的。在’w’模式下,如果文件已经存在,那么原来的内容会被清空,即被覆盖。所以,D选项描述是不正确的。

12、小明用插入排序算法,编写了如下代码,对列表arr中的数值进行排序,

请问,代码中红色①处,应填写什么代码?( )

arr = [9, 3, 7, 5, 1, 6, 8, 4, 2] 
for i in range(1, len(arr)):
        key = arr[i]
        j = i-1
        while j >=0 and key < arr[j] : 
                arr[j+1] = ①
                j = j - 1
        arr[j+1] = key 
print ("排序后的数组:",arr)

A、

arr[i]

B、

arr[j-1]

C、

arr[i+1]

D、

arr[j]

解析:

在插入排序算法中,红色①处应该填写的是要插入的位置的值,也就是arr[j]。因为在while循环中,j代表的是当前元素前面的位置,而key是待插入的元素。在每次循环中,需要将arr[j+1]的值往后移动一位,为key腾出空间,然后将key插入到正确的位置。因此,红色①处应该填写arr[j],表示将当前位置的元素往后移动一位,为待插入元素腾出空间。

13、列表a中全是整数,小明想将其中所有奇数都增加1,偶数不变,于是编写了如下代码。

请问红色①处,代码应该是?( )

a = [1,2,3,4,5,6,7,8,9,10]
for x in range(len(a)):
  if ① != 0:
    a[x] = a[x]+1
print(a)

A、

a[x] /2

B、

a[x] ^ 2

C、

a[x] *2

D、

a[x] % 2

解析:

在这个问题中,小明想要将列表a中的所有奇数都增加1,而偶数保持不变。为了实现这个目标,我们需要检查每个元素是奇数还是偶数。在Python中,检查一个数是否为奇数通常是通过将该数模2(即使用“%”运算符)来实现的。如果结果不等于0,那么该数为奇数。因此,红色①处应该是“a[x] % 2”。选项D是正确的。

14、小明用冒泡排序算法编写了一段Python程序,请问程序中红色标记的①处,应该填写什么代码?( )

a = [8,4,2,11,3,9]
n = len(a)
for i in range(0, n):
    for j in range(0, n-i-1 ):
        if a[j]>a[ ① ]:
            a[j],a[j+1] = a[j+1],a[j]        
print(a)

A、

j-1

B、

j+1

C、

n-1

D、

n+1

解析:

在冒泡排序算法中,内层循环的目的是将当前未排序部分的最大值冒泡到正确的位置。在内层循环的每一次迭代中,都会比较相邻的两个元素,如果它们的顺序不正确,就会交换它们的位置。因此,在内层循环中,需要比较的是当前元素与其后面的元素,即a[j]a[j+1]。所以红色标记的①处应该填写j+1

15、divmod(-10,3)返回值是?( )

A、

(-3,1)

B、

(-4,2)

C、

(-4,-2)

D、

(-3,-1)

解析:

在Python中,divmod()函数用于返回两个数的商和余数。对于负数,除法运算的结果仍为负数。因此,当我们将-10除以3时,商为-3,余数为-1。所以,divmod(-10,3)返回的结果是(-3,-1),与选项B相符。

16、下列Python代码的结果是?( 

set_a = set('happy')
set_b = set('java')
set_c = set_a-set_b
c = list(set_c)
print(c)

A、

{'h', 'p', 'y'}

B、

['a']

C、

['v', 'y', 'h', 'p', 'j', 'a']

D、

['y', 'h', 'p']

解析:

首先,我们来分析给定的Python代码。代码中有两个集合set_a和set_b,分别包含’happy’和’java’中的字符。然后,使用集合的差集操作“-”,得到set_c = set_a - set_b,即包含在set_a中但不在set_b中的字符。这些字符是’h’, ‘p’, ‘y’,因为它们在’happy’中但不在’java’中。接下来,将set_c转换为列表并打印出来。因此,输出应该是[‘y’, ‘h’, ‘p’],对应选项D。

17、给定列表 nums = [1, 2, 3, 4, 5, 6],以下哪个选项返回 True?( )

A、

not all(nums)

B、

any(nums)

C、

not (all(nums) and any(nums))

D、

not (all(nums) or any(nums))

解析:

在Python中,all()函数会检查给定的可迭代参数(如列表)中的所有元素是否都为True,而any()函数则会检查是否存在任何一个元素为True。对于给定的列表nums = [1, 2, 3, 4, 5, 6],列表中的元素都是非零值,因此使用all()函数会返回True,表示所有元素都为True。而使用any()函数同样会返回True,因为列表中的任何一个元素都是非零值。因此,选项B的表达式any(nums)会返回True。其他选项的含义如下:

A. not all(nums):对列表中的所有元素进行否定,由于所有元素都是非零值,所以all(nums)为True,not all(nums)则为False。

C. not (all(nums) and any(nums)):先判断所有元素和任意元素是否都为非零值(即all(nums)和any(nums)都为True),然后对结果进行否定。由于列表中的元素都是非零值,所以该表达式也为True。

D. not (all(nums) or any(nums)):判断所有元素和任意元素是否至少有一个为非零值(即all(nums)或any(nums)为True),然后对结果进行否定。由于列表中的元素都是非零值,所以该表达式同样为True。但由于题目要求返回True的选项只有一个,因此选项B是正确的答案。

18、Pythonprint(tuple(range(0,8,3)))语句,执行的结果是?( )

A、

(0,3,6)

B、

(0,2,4,6)

C、

(0,1,2,3,4,5,6,7)

D、

(0,4)

解析:

在Python中,range(0, 8, 3)表示从0开始,到8(不包含8)为止,步长为3的序列。这个序列实际上是(0, 3, 6)。然后,tuple()函数将这个序列转换为一个元组。所以,print(tuple(range(0, 8, 3)))的执行结果是(0, 3, 6),对应选项A。

19、下列关于map()函数的代码,其运行结果是?( )

res=map(str,[3, 6, 8, 4, 5])
print(list(res))

A、

'36845'

B、

[3, 6, 8, 4, 5]

C、

[6, 12, 16, 8,10]

D、

['3', '6', '8', '4', '5']

解析:

在Python中,map()函数用于将一个函数应用于一个或多个序列中的每个元素,并返回一个迭代器。在给定的代码中,map()函数将整数列表中的每个元素转换为字符串类型。因此,运行代码后,结果是一个包含字符串的迭代器。通过list()函数将迭代器转换为列表,得到的结果为:[‘3’, ‘6’, ‘8’, ‘4’, ‘5’]。因此,正确答案是D。

20、下列Python程序运行结果是?( 

a=int(min("2345"))
b=int(max("14693"))
c=b+a
print(c)

A、11

B、243

C、729

D、6561

解析:

首先,min("2345")会返回字符串中的最小字符,即"2",然后将其转换为整数,得到结果2。同理,max("14693")会返回字符串中的最大字符"9",将其转换为整数得到结果9。接下来,将这两个整数相加得到结果2 + 9 = 11。因此,程序的运行结果是11,答案为A。

21、以下哪个函数可以将字符转换为ASCII码?( )

A、

ascii()

B、

ord()

C、

chr()

D、

encode()

解析:

在Python中,函数ord()可以将字符转换为ASCII码。函数ascii()用于返回字符串的ASCII码形式,但它不是直接用于单个字符的转换。函数chr()用于将ASCII码转换为对应的字符,而函数encode()用于将字符串编码为特定的编码格式,如UTF-8等。因此,正确答案是B。

22、以下哪个值在bool函数中会被解释为False?( )

A、0

B、1

C、-1

D、2

解析:

在Python中,bool函数将其他数据类型转换为布尔值。在Python中,只有数字0会被解释为False,而其他非零数字(包括正数和负数)都会被解释为True。因此,选项A中的值0会被解释为False。其他选项中的值(1,-1和2)都会被解释为True。

23、以下哪个选项描述了abs()函数的返回值类型?( )

A、

int

B、

float

C、

bool

D、

不确定,取决于输入参数类型

解析:

在Python中,abs()函数返回的是输入参数的绝对值,其返回值类型取决于输入参数的类型。如果输入参数是整数,返回的也是整数;如果输入参数是浮点数,返回的也是浮点数。因此,abs()函数的返回值类型不是固定的,它取决于输入参数的类型,所以答案是D。

24、给定一个整数列表nums,如何使用sum函数计算列表中所有元素的和,并返回结果?( )

A、

sum(nums)

B、

sum[nums]

C、

sum(nums,[])

D、

sum(nums,0)

解析:

在Python中,计算列表中所有元素的和可以使用内置的sum()函数。根据Python的语法,sum()函数可以直接接受一个可迭代对象(如列表)作为参数,并返回其所有元素的和。因此,要计算列表nums中所有元素的和,可以直接使用sum(nums)。选项A是正确的用法,而选项B、C、D的语法都是错误的。

25、以下哪个选项描述了程序的输出结果?( 

fruits = ['apple', 'banana', 'orange']
for i, fruit in enumerate(fruits):
    print(i, fruit)

A、

(0, 'apple')

(1, 'banana')

(2, 'orange')

B、

apple 0

banana 1

orange 2

C、

0 apple

1 banana

2 orange

D、

('apple', 0)

('banana', 1)

('orange', 2)

解析:

题目给出的Python程序使用了enumerate()函数来遍历列表fruits,该函数会返回列表中每个元素的索引和值。在每次循环中,i是索引,fruit是对应的元素值,然后程序会打印出索引和对应的元素值。因此,程序的输出会是每个元素和其对应的索引,即:

0 apple
1 banana
2 orange

选项C正确地描述了程序的输出结果。

二、判断题

26、十六进制3C转换成八进制为74。( )

A 正确

B 错误

解析:

十六进制数3C转换为十进制是56,再将十进制数转换为八进制是得到的结果为数值的本身和没有余数(也就是说这个数值就是八进制数),但这里的转换结果是数值为七十四,而非题目中的七四,所以题目中的说法是错误的。

27、异常处理结构中,如果try程序段中出现了运行错误的语句,那么每一个except程序段都会被运行。( )

A 正确

B 错误

解析:

在异常处理结构中,如果try程序段中出现了运行错误的语句,并不是每一个except程序段都会被运行。Python会根据异常类型选择对应的except程序段去执行,如果没有匹配的except程序段,则会执行最后的else程序段或者finally程序段。因此,该说法错误。

28、下面Python程序,将产生一个“动物.csv” 的文件。( )

c=['老虎','狗','狮子','大象']
f=open('动物.csv','w')
f.write(','.join(c)+'\n')
f.close()

A 正确

B 错误

解析:

这段Python代码会创建一个名为"动物.csv"的文件,并将列表c中的元素以逗号分隔的形式写入文件,然后添加一个换行符。因此,这段代码将成功创建一个包含一行数据的CSV文件,故判断为正确。

29、使用open()函数打开'food.csv'文件后,返回的是元组。( )

A 正确

B 错误

解析:

在Python中,使用open()函数打开’food.csv’文件(假设该文件存在且可以成功打开),返回的是一个文件对象,并非元组。文件对象可以进行读取、写入等操作。因此,该说法“使用open()函数打开’food.csv’文件后,返回的是元组”是错误的。

30、

f=open(r"c:\字符串.txt",'w')
f.write('Eden\nOrion\nPhoenix\n')
f.close()

上面的程序,能在原来文件的基础上添加三行字符串。( 

A 正确

B 错误

解析:

使用Python的open()函数以写入模式(‘w’)打开一个文件时,会覆盖原有文件的内容。因此,上述程序会在字符串.txt文件中写入三行字符串,但不会在该文件原有的内容上追加内容。所以,该程序无法在原来文件的基础上添加三行字符串。

31、abs()函数的功能是获取参数的绝对值,例如abs(-3.14)的运行结果是-3。( )

A 正确

B 错误

解析:

在Python中,abs()函数的功能是获取参数的绝对值。对于负数,abs()函数会返回其正值。因此,abs(-3.14)的运行结果应该是3.14,而不是-3。所以,题目的描述是错误的。

32、print(type({"name":"Alice","age":25})==dict)结果为True。( )

A 正确

B 错误

解析:

在Python中,type({"name":"Alice","age":25})会返回dict,这是因为这个表达式创建了一个字典并返回其类型。然而,print()函数的作用是打印输出,不返回任何值(或者说返回None)。因此,print(type({"name":"Alice","age":25}))的结果实际上是None,而不是dict。因此,print(type({"name":"Alice","age":25})==dict)的结果会是False而非True,所以答案是B错误。

33、format()函数可以指定变量的类型、精度、对齐方式等格式选项,从而生成不同的字符串,如:"{:.2f}".format(3.1415926)的结果为"3.14"。( )

A 正确

B 错误

解析:

Python中的format()函数确实可以用来指定变量的类型、精度、对齐方式等格式选项,从而生成不同的字符串。在这个例子中,“{:.2f}”.format(3.1415926)的结果确实为"3.14",保留了小数点后两位。因此,题目的描述是正确的。

34、使用open()函数打开一个已存在的文件时,如果指定的模式为"w",则会清空该文件中的内容。( )

A 正确

B 错误

解析:

在Python中,使用open()函数打开一个已存在的文件时,如果指定的模式为"w"(写入模式),确实会清空该文件中的所有内容。这是因为"w"模式会截断文件并从头开始写入新内容,从而覆盖原有内容。因此,该题目的描述是正确的。

35、二进制数在末尾加个0”,等于这个数乘以2。( )

A 正确

B 错误

解析:

对于二进制数来说,在末尾加个"0"实际上是将其乘以2的操作并不完全准确。在二进制中,数字以二进制形式表示,即只能包含0和1。如果在二进制数的末尾添加一个"0",实际上是将该数乘以2的零次方,也就是乘以1,而不是乘以2。因此,该说法是错误的。

三、简答题

36、整数问题

给定一个十进制整数n,求出从1n的所有整数中出现“1”的个数。

例如,n2时,12出现1个“1”。

n12时,123456789101112,出现5个“1”。

现编写一个Python程序,实现如下功能:输入整数n,执行程序后,输出该范围内出现“1”的个数。请完善程序。

n=int(input('请输入整数:'))
        ①        
i=1
while        ②        :
    x=i
    while x>0:
        if         ③        :
            count=count+1
        x//=10
             ④        
print(n,'范围内1的个数有:',count)

参考答案:

①:初始化计数器count为0,即count = 0
②:i <= n
③:x % 10 == 1(判断个位是否为1)
④:i++(更新i的值,进入下一个整数的判断)

解析:

这个问题是关于统计一个范围内所有整数中出现"1"的个数。我们可以通过遍历从1到n的所有整数,并检查每个整数的个位是否包含数字1来解决这个问题。Python程序中的计数器变量count用于记录出现数字1的总次数。以下是程序的详细解析:

①初始化计数器count为0。这是因为在循环开始之前,我们需要知道从哪里开始计数。

②在while循环中,我们遍历从1到n的所有整数,所以循环条件应为i <= n。只要i小于或等于n,我们就继续检查每个整数是否包含数字1。

③在内部的while循环中,我们检查整数i的个位是否为数字1。这是通过取整数的余数(x % 10)并检查是否等于1来实现的。如果等于1,说明当前整数包含数字1,我们就增加计数器count的值。

④更新i的值,进入下一个整数的判断。这是通过i += 1实现的,以便在下一次循环迭代时检查下一个整数。每次循环结束时,i的值都会增加,直到检查完从1到n的所有整数为止。最后,程序输出出现数字1的总次数。

37、偶数排序

下列Python程序将数列中的偶数按从小到大顺序输出,请你补全代码。

def even(x):
    return  x%2==0   #自定义函数even,判断x是否为偶数
c=[3,7,1,18,9,12,5,2,22,10]
n=        ①        
h=[]
for i in         ②        :
    for j in range(0,n-i-1):
        if         ③        :
            c[j],c[j+1]=        ④        
for i in range(0,n-1):
         h=filter(        ⑤        ,c)
ans=list(h)     
print(ans)

参考答案:

① len(c)
② c
③ even(c[j]) and not even(c[j+1]) or even(c[j+1]) and not even(c[j]) (或even函数对两个相邻元素的判断)
④ c[j], c[j+1] (交换相邻两个元素的操作)
⑤ lambda x: even(x)(筛选出偶数)

解析:

①在代码中,需要获取列表c的长度,以便在后续的循环中使用,所以①处应填入len(c)。
②在for循环中,我们需要遍历整个列表c,因此②处应填入c。
③在if条件判断中,我们需要找出相邻的偶数进行交换,所以需要判断当前元素和下一个元素是否为偶数,因此③处应填入even(c[j]) and not even(c[j+1]) or even(c[j+1]) and not even(c[j]),即使用自定义的even函数判断这两个元素是否为偶数。
④在交换元素的操作中,我们需要将相邻的两个元素进行交换,所以④处应填入c[j], c[j+1],表示交换两个元素的操作。
⑤在filter函数中,我们需要用一个函数来筛选出列表中的偶数,因此⑤处应填入一个函数,这个函数接收一个参数x,并返回even(x)的结果,即lambda x: even(x)。这样,filter函数就会筛选出列表中的偶数。

38、食堂问卷调查

学校食堂为了提高服务质量,让老师和同学们更好地投入工作和学习,对同学们开展了问卷调查,调查项目共5(5个问题),每个项目有ABC三个选项,同学们每题可选一项,学校后勤管理的李老师对调查结果进行了收集整理,并存放在"myd.csv"文件中(部分数据如图所示),现在需要分析同学们对这5个项目的答题情况,统计出每个项目选"A"的情况。李老师用Python编写了以下代码,输出结果如下图,请你完善划线处。

import csv
with open("/data/        ①        ")as f:
    cont=list(csv.reader(f))
    qk={"第1题":0,"第2题":0,"第3题":0,"第4题":0,"第5题":0}
    for row in cont[        ②        ]:
        for i in range( len(row)):
            if row[i]==        ③        :
                qk["第"+str(i+1)+"题"]+=1
for i in range(5):
    print("第"+str(i+1)+"题选A的人数为:"+str(qk["第"+str(i+1)+"题"]))

参考答案:

① “myd.csv”
② 1:
③ “A”

解析:

在这段Python代码中,李老师正在对存放在"myd.csv"文件中的食堂问卷调查结果进行分析。代码的主要目的是统计每个项目中选"A"的情况。以下是详细的解析:

① “myd.csv”:这是需要打开的CSV文件的名称,其中包含了问卷调查的数据。

② 1:在代码中,cont是一个列表,包含了CSV文件中的所有行。由于CSV文件的第一行是标题行(即问题的标题),所以需要从第二行开始遍历数据。因此,这里应该填写的是从第二行开始遍历的索引值,即1。

③ “A”:这是需要统计的选项值,即要查找的选"A"的情况。在遍历每一行数据时,如果某一单元格的值等于"A",则对应问题的选"A"的人数就要增加1。因此,这里应填写"A"。

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

创作类型:
原创

本文链接:2024月03月Python三级理论答案及解析

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