Python编程(1~6级)全部真题・点这里
一、单选题(共25题,每题2分,共50分)
第1题
下面程序执行完毕后,最终的结果是?( )
a=[34,17,7,48,10,5]
b=[]
c=[]
while len(a)>0:
s=a.pop()
if(s%2==0):
b.append(s)
else:
c.append(s)
print(b)
print(c)
A:[34, 48,10] [17, 7, 5]
B:[10, 48, 34] [5, 7, 17]
C:[10, 48, 34] [17, 7, 5]
D:[34, 48, 10] [5, 7, 17]
正确答案:B
在程序执行过程中,元素从列表a中取出并赋值给变量s,在判断s是否为偶数后将其添加到列表b或列表c中。由于列表a使用了pop()方法,所以每次取出的是最后一个元素。
正确的执行结果是:
b = [10, 48, 34]
c = [5, 7, 17]
第2题
以下程序的运行结果是?( )
l =["兰溪","金华","武义","永康","磐安","东阳","义乌","浦江"]
for s in l:
if"义"in s:
print(s)
A:兰溪 金华 武义
B:武义 义乌
C:武义
D:义乌
正确答案:B
程序中的for循环遍历列表l中的每个元素,并将每个元素赋值给变量s。然后,在if语句中检查字符串"义"是否存在于变量s中。如果存在,则打印变量s的值。
在给定的列表l中,有两个元素包含字符串"义",分别是"武义"和"义乌"。因此,程序会打印出这两个元素。
因此,选项B:武义 义乌 是正确答案。
第3题
以下程序的输出结果是?( )
ls = [1,2,3]
lt = [4,5,6]
print(ls+lt)
A:[1,2,3,4,5,6]
B:[1,2,3,[4,5,6]]
C:[4,5,6]
D:[5,7,9]
正确答案:A
程序中的print语句打印了列表ls和列表lt的相加结果。在Python中,使用"+"运算符可以将两个列表进行拼接,形成一个新的列表。
对于给定的代码,列表ls是[1, 2, 3],列表lt是[4, 5, 6]。通过"+"运算符将ls和lt相加,得到的结果是一个包含两个列表元素的新列表,即[1, 2, 3, 4, 5, 6]。
因此,选项A:[1, 2, 3, 4, 5, 6] 是正确答案。
第4题
列表listV = list(range(10)),以下能够输出列表listV中最小元素的是?( )
A:print(min(listV))
B:print(listV.max( ))
C:print(min(listV()))
D:print(listV.revrese(i)[0])
正确答案:A
选项A中的min(listV)使用了min()函数,它可以找到列表中的最小值。通过调用min(listV),我们可以输出列表listV中的最小元素。
因此,选项A:print(min(listV)) 是正确答案。
第5题
以下程序的输出结果是?( )
a = tuple('abcdefg')
print(a)
A:(‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’)
B:[‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’]
C:[‘abcdefg’]
D:‘abcdefg’
正确答案:A
程序中的tuple(‘abcdefg’)将字符串’abcdefg’转换为一个元组,并将其赋值给变量a。元组是一种不可变的序列类型,在Python中用圆括号表示。
因此,输出结果是一个包含字符 ‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’ 的元组。
因此,选项A:(‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’) 是正确答案。
第6题
运行如下程序,结果是?( )
l=[1,"laowang",3.14,"laoli"]
l[0]=2
del l[1]
print(l)
A:[1, 3.14, ‘laoli’]
B:[2, 3.14, ‘laoli’]
C:[“laowang”,3.14, ‘laoli’]
D:[2,“laowang”,3.14,]
正确答案:B
程序中的列表l初始为:[1, “laowang”, 3.14, “laoli”]。
接下来的操作分别是:
l[0] = 2:将列表l的第一个元素修改为2。现在列表l变为:[2, “laowang”, 3.14, “laoli”]。
del l[1]:删除列表l的第二个元素。现在列表l变为:[2, 3.14, “laoli”]。
print(l):打印列表l的最终结果。
因此,选项B:[2, 3.14, ‘laoli’] 是正确答案。
第7题
关于列表s的相关操作,描述不正确的是?( )
A:s.append();在列表末尾添加新的对象
B:s.reverse();反转列表中的元素
C:s.count();统计某个元素在列表中出现的次数
D:s.clear();删除列表s的最后一个元素
正确答案:D
描述D不正确。实际上,s.clear()是用于清空列表s的所有元素,而不是删除最后一个元素。调用clear()方法后,列表s将变为空列表。
正确的描述是:
A:s.append();在列表末尾添加新的对象
B:s.reverse();反转列表中的元素
C:s.count();统计某个元素在列表中出现的次数
所以选项D:s.clear();删除列表s的最后一个元素 是描述不正确的。
第8题
关于以下代码,描述正确的是?( )
a = 'False'
if a:
print('True')
A:上述代码的输出结果为True。
B:上述代码的输出结果为False。
C:上述代码存在语法错误。
D:上述代码没有语法错误,但没有任何输出。
正确答案:A
在给定的代码中,变量a被赋值为字符串’False’。在Python中,非空字符串被视为True,因此条件if a:判断为True。
因此,代码块中的print(‘True’)语句会被执行,输出结果为True。
因此,选项A:上述代码的输出结果为True 是正确描述。
第9题
下列代码的输出结果是?( )
ls = [[0,1],[5,6],[7,8]]
lis = []
for i in range(len(ls)):
lis.append(ls[i][1])
print(lis)
A:[1,6,8]
B:[0,5,7]
C:[0,6,8]
D:[0,1]
正确答案:A
在给定的代码中,列表ls包含了三个子列表:[0, 1]、[5, 6]和[7, 8]。
然后,我们创建了一个空列表lis。
通过for循环遍历列表ls的每个元素,使用索引i来访问每个子列表,然后将每个子列表的第二个元素(索引为1)添加到列表lis中。
因此,循环结束后,列表lis的内容为[1, 6, 8]。
因此,选项A:[1, 6, 8] 是正确答案。
第10题
已知列表lis=[‘1’,‘2’,3],则执行print(2 in lis)语句输出的结果是?( )
A:True
B:true
C:False
D:false
正确答案:C
给定的列表lis是[‘1’, ‘2’, 3],注意其中的元素类型不同,'1’和’2’是字符串类型,而3是整数类型。
在Python中,使用in运算符可以检查某个元素是否存在于列表中。对于给定的代码,我们检查数字2是否存在于列表lis中。
由于2不在列表lis中,所以表达式2 in lis的结果为False。
因此,选项C:False 是正确答案。
第11题
现在有s=“abcdefghi”,请问s[4]的值是?( )
A:d
B:e
C:abcd
D:0
正确答案:A
在Python中,字符串的索引从0开始。给定的字符串s=“abcdefghi”,索引4对应的字符是’d’。
因此,选项A:d 是正确答案。
第12题
下面代码的输出结果是?( )
a={'sx':90,'yuwen':93,'yingyu':88,'kexue':98}
print(a['sx'])
A:93
B:90
C:88
D:98
正确答案:B
给定的代码中,定义了一个字典a,其中包含了不同科目的成绩。键(key)是科目名称,值(value)是对应的分数。
在print语句中,使用键’sx’来访问字典a中对应的值。根据给定的字典a,'sx’对应的值是90。
因此,选项B:90 是正确答案。
第13题
下面代码的输出结果是?( )
a=[1,3,5,7,9]
for i in a:
print(i)
A:1,3,5,7,9
B:[1,3,5,7,9]
C:1 3 5 7 9
D:9 7 5 3 1
正确答案:C
给定的代码使用for循环遍历列表a中的每个元素,并使用print语句打印每个元素。
循环的执行顺序是按照列表a中元素的顺序进行的,依次打印出1、3、5、7和9。
因此,输出结果是每个元素之间用空格分隔的序列:1 3 5 7 9。
因此,选项C:1 3 5 7 9 是正确答案。
第14题
以下用于Python循环结构的关键字是?( )
A:while
B:loop
C:if
D:do…for
正确答案:A
在Python中,用于循环结构的关键字是while。while关键字用于创建一个循环,它会根据给定的条件重复执行一段代码块,直到条件不再满足为止。
其他选项的解释如下:
B:loop 并不是Python中的关键字,它不用于定义循环结构。
C:if 是用于条件判断的关键字,而不是循环结构的关键字。
D:do…for 不是Python中的关键字。在Python中,for关键字用于迭代循环,而不是do…for。
因此,选项A:while 是正确答案。
第15题
以下代码绘制的图形是?( )
import turtle
for i in range(1,7):
turtle.fd(50)
turtle.left(60)
A:正方形
B:六边形
C:三角形
D:五角星
正确答案:B
给定的代码使用Turtle模块来进行绘图。通过循环,使用turtle.fd(50)命令向前移动50个像素,然后使用turtle.left(60)命令向左旋转60度。
循环的迭代次数是6次(范围是1到7,不包括7),因此代码将重复执行前进和左转的操作6次。
这样,通过连续的前进和左转操作,绘制出一个具有6个边的多边形,也就是六边形。
因此,选项B:六边形 是正确答案。
第16题
已知列表a=[1,2,3],b=[‘4’],执行语句print(a+b)后,输出的结果是?( )
A:[1,2,3,4]
B:[1,2,3,‘4’]
C:[‘1’,‘2’,‘3’,‘4’]
D:10
正确答案:B
在Python中,使用加号运算符(+)可以连接两个列表。执行a+b即将列表a和列表b进行连接。
列表a是[1, 2, 3],列表b是[‘4’]。连接后的结果是一个新的列表,其中包含了列表a和列表b的所有元素。
因此,输出结果是[1, 2, 3, ‘4’]。
第17题
已知列表a=[1,2,3,4,5],下列语句输出结果为False的是?( )
A:print(a[3]==a[-2])
B:print(a[:3]==a[:-2])
C:print(a[:1]==a[0])
D:print(a[2]==a[-3])
正确答案:C
在给定的代码中,a是一个包含了整数的列表。
选项C中的语句print(a[:1]==a[0])比较了列表a的切片a[:1]和索引为0的元素a[0]是否相等。
切片a[:1]表示取列表a的第一个元素组成一个新的列表,即[1],而索引为0的元素是1。
因此,切片a[:1]和索引为0的元素a[0]是不相等的。
第18题
在python中,表示跳出当前循环的语句是?( )
A:break
B:pass
C:exit
D:Esc
正确答案:A
在Python中,使用关键字"break"可以跳出当前的循环。当程序执行到"break"语句时,循环会立即终止,并且程序会继续执行循环之后的代码。
其他选项的解释如下:
B:pass 是一个占位语句,它不执行任何操作。它用于在语法上需要语句的位置,但程序逻辑上不需要任何操作的情况下进行填充。
C:exit 是一个函数,用于终止整个程序的执行,并返回到操作系统。
D:Esc 是一个按键,用于在一些集成开发环境(IDE)中中断程序的执行,而不是Python语言本身的语句。
因此,选项A:break 是正确答案。
第19题
已知字典score={“语文”:95,“数学”:93,“英语”:97},则执行print(score[“语文”]+score[“数学”]//2),输出的结果为?( )
A:141
B:141.5
C:94
D:94.0
正确答案:A
根据给定的字典score,"语文"对应的值是95,"数学"对应的值是93。
表达式score[“语文”]+score[“数学”]//2首先计算score[“数学”]的值,即93。然后,进行整数除法运算,将其除以2,结果为46。
最后,将score[“语文”]和结果46进行相加,得到141。
因此,输出结果为141。
因此,选项A:141 是正确答案。
第20题
以下程序的运行结果是?( )
a={"name":"jt","age":29,"class":5}
a["age"]=15
a["school"]="派森社"
print("age:",a["age"])
print("school:",a["school"])
A:age: 29 school: 派森社
B:age: 15
C:age: 15 school: 派森社
D:school: 派森社
正确答案:C
给定的程序首先创建了一个字典a,其中包含了键值对"name":“jt”、“age”:29和"class":5。
接下来,通过赋值操作a[“age”]=15,将字典a中键"age"对应的值修改为15。
然后,通过赋值操作a[“school”]=“派森社”,向字典a中添加了一个新的键值对"school":“派森社”。
最后,程序分别打印了键"age"和"school"对应的值。
根据修改后的字典a,"age"对应的值是15,“school"对应的值是"派森社”。
因此,输出结果为:
age: 15
school: 派森社
因此,选项C:age: 15 school: 派森社 是正确答案。
第21题
下列程序的执行结果是?( )
s=(1,2,3,4,5,6,7,8)
print(len(s),max(s),min(s))
A:7 8 1
B:8 8 1
C:8 1 8
D:7 1 8
正确答案:B
给定的程序中,s是一个元组,包含了整数1到8。
len(s)返回元组s的长度,即元素的个数,结果为8。
max(s)返回元组s中的最大值,即8。
min(s)返回元组s中的最小值,即1。
因此,输出结果为:
8 8 1
第22题
下列不属于Python中处理字典的方法是?( )
A:pop()
B:replace()
C:get()
D:popitem()
正确答案:B
在Python中,字典是一种无序的键值对集合,通过键来访问对应的值。
以下是给定选项的解释:
A:pop() 是用于删除指定键的键值对,并返回该键对应的值。
B:replace() 不是字典的内置方法。它是字符串的方法,用于替换字符串中的子串。
C:get() 是用于根据键获取对应的值。如果键不存在,则可以设置默认值作为返回结果。
D:popitem() 用于随机删除并返回字典中的一个键值对。
因此,选项B:replace() 是不属于Python中处理字典的方法。
第23题
下列语句,不能创建元组的是?( )
A:tup=()
B:tup=(1)
C:tup=1,2
D:tup=(1,2)
正确答案:B
在Python中,元组是由逗号分隔的值组成的不可变序列。
以下是给定选项的解释:
A:tup=() 创建了一个空的元组。
B:tup=(1) 实际上并没有创建一个元组,而是创建了一个整数值1。如果要创建一个只包含一个元素的元组,需要在元素后面加上逗号,即tup=(1,)。
C:tup=1,2 创建了一个包含两个整数值1和2的元组。
D:tup=(1,2) 创建了一个包含两个整数值1和2的元组。
因此,选项B:tup=(1) 是不能创建元组的,因为它实际上创建了一个整数值而不是元组。
第24题
s=“abc123”,采用字符串操作函数将其中的字符c替换为字符C,以下哪个操作正确?( )
A:s.replace(‘c’, ‘C’)
B:replace(c,C)
C:s.replace(c,C)
D:replace(‘abc123’,‘abC123’)
正确答案:A
在给定的选项中,只有选项A:s.replace(‘c’, ‘C’) 是正确的。
字符串的replace()方法用于将指定的子串替换为新的子串。在这个场景中,我们想要将字符’c’替换为字符’C’。
因此,正确的操作是调用字符串s的replace()方法,将’c’替换为’C’,即s.replace(‘c’, ‘C’)。
其他选项B、C和D中的语法都是不正确的,不符合Python中字符串的操作方式。
因此,选项A:s.replace(‘c’, ‘C’) 是正确的操作。
第25题
下面程序的执行结果为?( )
s = '{0}+{1}={2}'.format(2, 3, 5)
print(s)
A:0+1=2
B:{0}+{1}={2}
C:2+3=5
D:{2}+{3}={5}
正确答案:C
给定的程序使用了字符串的format()方法进行格式化。在这个例子中,使用了大括号{}来表示占位符,通过format()方法中的参数进行替换。
在s = ‘{0}+{1}={2}’.format(2, 3, 5)这行代码中,大括号内的数字表示要替换的占位符的索引。索引从0开始,依次递增。
因此,{0}会被参数2替换,{1}会被参数3替换,{2}会被参数5替换。
最后的结果是’2+3=5’。
因此,输出结果为:
2+3=5
因此,选项C:2+3=5 是正确答案。
二、判断题(共10题,每题2分,共20分)
第26题
已知字符串str=‘www.baidu.com’,那么print(str.split(‘.’,1))的结果是:[‘www’, ‘baidu’,‘com’]。( )
正确答案:错误
print(str.split(‘.’, 1))的结果是[‘www’, ‘baidu.com’]。在split(‘.’, 1)中,参数1表示最大分割次数,即将字符串分割为最多两部分,以第一个.为分隔符。所以结果中只有两个元素,分别是’www’和’baidu.com’。
第27题
运行如下程序,运行结果为:hellohelloeverybody。( )
a1='hello'
a2='everybody'
print(a1*2+a2)
正确答案:正确
运行该程序的结果为hellohelloeverybody。程序首先将变量a1的值’hello’重复两次得到’hellohello’,然后将其与变量a2的值’everybody’进行字符串拼接,得到最终结果’hellohelloeverybody’。
第28题
元组中不可以通过下标索引获取元素。( )
正确答案:错误
元组中可以通过下标索引获取元素。在Python中,元组是有序的不可变序列,可以使用下标来访问元组中的元素。下标从0开始,表示元组中的第一个元素,依次递增。例如,对于元组 t = (1, 2, 3),可以使用 t[0] 来获取第一个元素,结果为 1。所以,元组可以通过下标索引获取元素。
第29题
在使用get()语句返回字典中指定键的值的时候,如果该键的值在字典中不存在,则返回系统默认值“unKnown”。( )
正确答案:错误
在使用 get() 方法返回字典中指定键的值时,如果该键的值在字典中不存在,则返回 None,而不是系统默认值 “unKnown”。可以通过在 get() 方法中传递第二个参数来指定默认值,如 get(key, default),这样如果键不存在,则返回指定的默认值。如果没有提供默认值参数,则返回 None。
所以,正确的说法是:在使用 get() 语句返回字典中指定键的值时,如果该键的值在字典中不存在,则返回 None。
第30题
元组是一种可变的序列,创建后可以修改。( )
正确答案:错误
元组是一种不可变的序列,创建后不可以修改。一旦创建了元组,就无法对其进行添加、删除或修改元素的操作。元组中的元素是固定的,不能更改其值或顺序。
相反,可变的序列类型如列表(list)可以进行添加、删除和修改元素的操作。
所以,正确的说法是:元组是一种不可变的序列,创建后不可以修改。
第31题
条件语句中,if…语句和if…else语句没有区别。( )
正确答案:错误
条件语句中,if…else 语句和 if… 语句是有区别的。
在 if… 语句中,只有当条件为真(True)时,执行 if 语句块中的代码。而在 if…else 语句中,当条件为真时,执行 if 语句块中的代码;当条件为假(False)时,执行 else 语句块中的代码。
所以,正确的说法是:if…else 语句和 if… 语句在条件为假时会有不同的执行路径,因此它们是有区别的。
第32题
列表是一种序列,列表的元素可以追加、替换、插入和删除。( )
正确答案:正确
列表是一种序列,它的元素可以追加、替换、插入和删除。列表是Python中最常用的数据类型之一,其特点是可变性,即列表的内容可以随意修改。
通过使用列表的方法和操作,可以对列表进行各种操作,包括追加元素(使用 append() 方法)、替换元素(通过索引直接赋值)、插入元素(使用 insert() 方法)和删除元素(使用 remove()、pop() 等方法)等。
因此,正确的说法是:列表是一种序列,列表的元素可以追加、替换、插入和删除。
第33题
在循环语句中,break 语句的作用是提前进入下一次循环。( )
正确答案:错误
在循环语句中,break 语句的作用是终止当前的循环,跳出循环体。它不是用于进入下一次循环,而是用于完全退出当前的循环。
当程序执行到 break 语句时,会立即跳出当前的循环,不再执行循环体中剩余的代码,而是继续执行循环后的代码。
因此,正确的说法是:break 语句的作用是提前终止当前的循环,而不是进入下一次循环。
第34题
执行以下程序,运行结果是:14。( )
a=1
while a<100:
if a%2==0 and a%7==0:
print(a)
break
a=a+1
正确答案:正确
执行该程序的运行结果是 14。
程序中使用了 while 循环,初始化变量 a 为 1。在每次循环中,首先判断 a 是否同时满足 a%2==0 和 a%7==0 的条件,即同时为偶数且能被 7 整除。如果满足条件,则打印出 a 的值,并使用 break 语句终止循环。否则,将 a 的值增加 1,进入下一次循环。
由于 14 是满足条件的最小的数,所以在 a 逐步增加的过程中,当 a 取值为 14 时,满足条件,打印出 14 并使用 break 终止循环。因此,最终的运行结果是 14。
第35题
以下语句的输出结果为0,1,2,( )
for i in range(3) :
print(i, end=',')
正确答案:正确
执行以下语句的输出结果为 0, 1, 2,。
在 for 循环中,使用 range(3) 创建一个范围对象,表示从 0 到 2(不包括 3)的整数序列。循环会依次将序列中的元素赋值给变量 i,并执行循环体中的代码。循环体中的代码是打印变量 i 的值,并在末尾加上逗号作为分隔符。
因此,循环会依次执行三次,分别打印出 0, 1, 2,最后输出结果为 0, 1, 2,。
三、编程题(共2题,共30分)
第36题
数字转汉字
用户输入一个1~9(包含1和9)之间的任一数字,程序输出对应的汉字。如输入2,程序输出“二”。可重复查询。
以下是一个示例的Python代码实现,用于将用户输入的数字转换为对应的汉字:
def number_to_chinese(number):
chinese_dict = {
1: '一',
2: '二',
3: '三',
4: '四',
5: '五',
6: '六',
7: '七',
8: '八',
9: '九'
}
if number in chinese_dict:
return chinese_dict[number]
else:
return "输入的数字不在1~9的范围内"
while True:
try:
user_input = int(input("请输入一个1~9之间的数字(包含1和9):"))
if 1 <= user_input <= 9:
result = number_to_chinese(user_input)
print(result)
else:
print("输入的数字不在1~9的范围内")
except ValueError:
print("输入无效,请输入一个有效的整数。")
该代码定义了一个 number_to_chinese
函数,接受一个数字作为参数,并返回对应的汉字。然后,通过一个循环,不断接受用户输入的数字,并将其转换为汉字输出。如果用户输入的数字不在1~9的范围内,会给出相应的提示。
你可以运行这段代码并根据提示输入数字,程序会输出对应的汉字。如果输入无效或不在范围内的数字,程序也会做出相应的提示。
第37题
假设10位评委的打分是99,80,86,89,94,92,75,87,86,95, 现需要运用Python语言进行编程实现:
去掉一个最高分,去掉一个最低分,计算平均分,并打印出来。打印格式为:去掉一个最高分:XX分,去掉一个最低分:XX分,最后得分为:XX分。
以下是一个Python代码的实现,用于计算去掉一个最高分和一个最低分后的平均分,并将结果打印出来:
scores = [99, 80, 86, 89, 94, 92, 75, 87, 86, 95]
# 去掉一个最高分和一个最低分
scores_sorted = sorted(scores)
scores_sorted = scores_sorted[1:-1]
# 计算平均分
average_score = sum(scores_sorted) / len(scores_sorted)
# 打印结果
print("去掉一个最高分:{}分".format(max(scores_sorted)))
print("去掉一个最低分:{}分".format(min(scores_sorted)))
print("最后得分为:{}分".format(average_score))
在这段代码中,我们首先定义了评委的打分列表 scores
,然后使用 sorted()
函数对列表进行排序,并通过切片操作 scores_sorted[1:-1]
去掉了一个最高分和一个最低分。接下来,我们计算剩余分数的平均值,使用 sum()
函数求和,再除以剩余分数的个数。
最后,使用 print()
函数按照指定的格式打印出去掉一个最高分、去掉一个最低分和最后得分的结果。
你可以运行这段代码,得到去掉一个最高分和一个最低分后的平均分,并按照指定的格式打印出来。对于给定的评委打分列表,结果应该为:
去掉一个最高分:95分
去掉一个最低分:80分
最后得分为:88.625分