一、单选题
1、用语句mydict={'a':1,'b':2,'c':3,'d':4}定义了一个字典,以下语句中,可以输出字典键值的是?( )
A print(mydict('c'))
B print(mydict 'c')
C mydict['c']
D print(mydict{'c'})
解析:【喵呜刷题小喵解析】在Python中,字典是一种无序的、可变的数据结构,用于存储键值对。在字典中,键是唯一的,每个键都对应一个值。要访问字典中的值,需要使用方括号([])来指定键,而不是使用括号(())。因此,选项C中的`mydict['c']`是正确的,它会返回键'c'对应的值3。选项A、B和D中的语法都是错误的,因为它们没有正确地使用方括号来访问字典中的值。
2、已知字典dict1={0:"zero",1:"one",2:"two",3:"Three"},执行语句dict1[3]="three"后,字典dict1的内容为?( )
A {0:"zero",1:"one",2:"two",3:"Three"}
B {0:"zero",1:"one",2:"two",3:"three"}
C {0:"zero",1:"one",2:"two","3":three}
D {0:"zero",1:"one",2:"two",3:"Three",3:"three"}
解析:【喵呜刷题小喵解析】:在Python中,字典是一种可变的数据类型,允许我们存储键值对。在题目中,初始的字典`dict1`的内容是`{0:"zero",1:"one",2:"two",3:"Three"}`。执行语句`dict1[3]="three"`后,字典`dict1`的内容会变为`{0:"zero",1:"one",2:"two",3:"three"}`。因为字典中的键必须是唯一的,所以不会有重复的键出现,也不会出现额外的键值对。因此,正确答案是B。
3、以下不属于Python语言流程控制结构的是?( )
A 顺序结构
B 分支结构
C 数据结构
D 循环结构
解析:【喵呜刷题小喵解析】:在Python语言中,流程控制结构主要包括顺序结构、分支结构和循环结构。顺序结构指的是程序按照代码顺序执行的流程,分支结构则包括条件语句(如if语句)和选择语句(如switch语句),用于根据条件判断执行不同的代码块。循环结构则包括for循环和while循环,用于重复执行某段代码。而选项C中的“数据结构”并不是Python语言的流程控制结构,而是数据组织和存储的方式。因此,正确答案是C。
4、下列有关字典对象的说法,不正确的是?( )
A 字典中的值可以是任意类型的数据
B 字典中的每个元素包含键和值两部分
C 在同一个字典中,键值必须互不相同
D 可以通过字典的键找到对应的值,也可以通过值来找到对应的键
解析:【喵呜刷题小喵解析】在Python中,字典是一种无序的、可变的数据结构,用于存储键值对。
A选项:字典中的值可以是任意类型的数据。这是正确的,因为字典可以存储任意类型的数据作为值,只要键是唯一的。
B选项:字典中的每个元素包含键和值两部分。这也是正确的,因为字典的每个元素都是一个键值对。
C选项:在同一个字典中,键值必须互不相同。这也是正确的,因为字典的键必须是唯一的,每个键对应一个值。
D选项:可以通过字典的键找到对应的值,也可以通过值来找到对应的键。这是不正确的,因为在Python中,字典只能使用键来找到对应的值,不能使用值来找到对应的键。如果需要找到与特定值相关联的键,可以使用循环遍历字典来实现。
因此,不正确的说法是D选项。
5、执行以下语句,程序将输出?( )
yuan=2,3,1,4,6,5 list1=sorted(yuan) list1
A 报错
B 1, 2, 3, 4, 5, 6
C (1, 2, 3, 4, 5, 6)
D [1, 2, 3, 4, 5, 6]
解析:【喵呜刷题小喵解析】:首先,我们分析题目中的代码。代码试图将变量`yuan`(实际上是一个元组)排序,然后将排序后的结果赋值给`list1`。然而,`yuan`的赋值方式是不正确的,它应该是一个列表,而不是元组。正确的赋值方式应该是`yuan = [2, 3, 1, 4, 6, 5]`。
由于`yuan`实际上是一个元组,而不是列表,所以`sorted(yuan)`会引发一个TypeError,因为元组是不可变的,不能被排序。因此,程序会报错,而不是输出排序后的列表。
但是,如果我们假设`yuan`是一个列表,那么`sorted(yuan)`会返回一个新的排序后的列表,这个列表是`[1, 2, 3, 4, 5, 6]`。然后,这个排序后的列表会被赋值给`list1`,所以`list1`的值应该是`[1, 2, 3, 4, 5, 6]`。
所以,题目中的选项D是正确答案。但是,请注意,这是基于一个假设的答案,因为题目中的代码本身会引发错误。
6、以下是一个猜数字程序,当输入的数字大于目标数字(本程序指定为5)时,提示“大了”; 当小于时,提示“小了”; 当相等时,提示“相等”,程序退出。程序中空白处分别应填入的代码是?( )
A if,break
B else,break
C elif,break
D elif,continue
解析:【喵呜刷题小喵解析】:题目中描述的是一个猜数字程序,当输入的数字大于目标数字(本程序指定为5)时,提示“大了”;当小于时,提示“小了”;当相等时,提示“相等”,程序退出。根据这个描述,我们可以分析出程序中的空白处应该填入的条件和语句。
首先,我们需要判断输入的数字是否大于目标数字5,如果是,则提示“大了”,如果不是,则进入下一个判断。这里应该使用if语句。
其次,当输入的数字不大于5时,我们需要判断它是否等于5,如果是,则提示“相等”,并退出程序。这里应该使用elif语句。
最后,当输入的数字既不大于5也不等于5时,程序应该继续执行下一次循环,这里应该使用continue语句。
因此,程序中空白处应该填入的代码是elif和break,即选项C。
7、执行下列代码后,运行结果是?( )
for i in range(0,10,2): print(i*2,end=',')
A 0,
4,
8,
12,
16,
B 0,4,8,12,16,
C 2,
6,
10,
14,
18,
D 2,6,10,14,18,
解析:【喵呜刷题小喵解析】:代码中的`for i in range(0,10,2)`表示从0开始,到10结束,步长为2的循环。因此,循环会执行5次,分别对应的i的值为0,2,4,6,8。每次循环,代码会打印i的2倍,并以逗号结尾。因此,执行结果应为0,4,8,12,16,。所以正确答案是B。
8、已知列表a=[1,2,3],执行语句print(2*a),显示的结果是?( )
A [2, 4, 6]
B [1, 2, 3, 1, 2, 3]
C [1, 2, 3, 2, 4, 6]
D [1, 2, 3, 3, 2, 1]
解析:【喵呜刷题小喵解析】在Python中,`*`运算符用于列表的重复操作。`2*a`表示将列表`a`重复两次,然后拼接在一起。列表`a`是`[1, 2, 3]`,重复两次后得到`[1, 2, 3, 1, 2, 3]`。因此,执行语句`print(2*a)`,显示的结果是`[1, 2, 3, 1, 2, 3]`,对应选项C。
9、已知列表List1=[1,2,3,4,5],要在列表List1中的最前面添加元素0,则下列操作可行的是?( )
A List1=0+List1
B List1="0"+List1
C List1=[0]+List1
D、
List1=List1+[0]
解析:【喵呜刷题小喵解析】在Python中,列表(List)是一种可变序列类型,可以通过多种方式进行元素的添加和修改。对于题目中提到的列表List1=[1,2,3,4,5],要在列表的最前面添加元素0,应该使用列表的扩展(extend)或者拼接(+)操作。
选项A:List1=0+List1,这个操作在Python中并不合法,因为列表和整数不能进行加法运算。
选项B:List1="0"+List1,这个操作将字符串"0"和列表List1进行了拼接,结果会得到一个字符串,而不是列表,因此也不符合题目要求。
选项C:List1=[0]+List1,这个操作将整数0包装成一个列表,然后和原来的列表List1进行了拼接,结果会得到一个新的列表[0,1,2,3,4,5],符合题目要求。
选项D:List1=List1+[0],这个操作将整数0添加到了列表List1的末尾,而不是最前面,因此也不符合题目要求。
因此,正确答案是选项C。
10、正确定义元组yuan的语句是?( )
A yuan={1,2,3}
B yuan=[1,2,3]
C yuan=(1,2,3)
D yuan=<1,2,3>
解析:【喵呜刷题小喵解析】:在Python中,元组(tuple)是一种不可变序列类型,它使用圆括号()来定义。因此,正确定义元组yuan的语句是yuan=(1,2,3)。选项A中,yuan={1,2,3}定义的是一个集合(set),而不是元组。选项B中,yuan=[1,2,3]定义的是一个列表(list),也不是元组。选项D中,yuan=<1,2,3>并不是Python中的正确语法。因此,正确答案是C。
11、下列程序的运行结果是?( )
name='The dog is ehite' new_name=name[:11]+'white' print(new_name[11:])
A The dog is white
B hite
C ehite
D white
解析:【喵呜刷题小喵解析】:首先,我们需要理解Python的字符串切片操作。在Python中,字符串切片操作的基本格式为str[start:end],其中start是开始索引,end是结束索引。注意,Python的索引是从0开始的。
然后,我们分析题目中的代码。在代码中,首先定义了一个字符串name,其值为'The dog is ehite'。然后,创建了一个新的字符串new_name,它是name的前11个字符加上'white'。因此,new_name的值为'The dog is white'。
最后,代码打印了new_name从第11个字符到末尾的字符,即'white'。因此,运行结果的答案是B选项,'hite'。
12、关于下列程序理解说法正确的是?( )
num=0
while num<10:
print("Python")
A 在while代码块中无论加什么都不能改变死循环
B 运行结果打印输出10个"Python"语句
C 这个while循环是一个死循环,会一直打印"Python"
D 在while代码块中加一行代码num-=1可以改变死循环
解析:【喵呜刷题小喵解析】:该程序在循环条件num<10中,num初始化为0,所以条件一直成立,程序会一直执行循环体print("Python"),从而打印出10个"Python"语句。而A选项表示无论循环体中加入什么代码都无法改变死循环,实际上在循环体中加入num-=1等语句是可以改变循环的,因此A选项错误。C选项表示这是一个死循环,会一直打印"Python",实际上循环会在打印10个"Python"后结束,因此C选项错误。D选项表示在循环体中加入num-=1可以改变死循环,实际上num-=1会使num的值减小,当num小于10时,循环结束,因此D选项错误。因此,正确答案是B。
13、以下说法正确的是?( )
A、
同一个元组中,元素的类型必须相同
B、 tuple()函数可以将列表转换为元组
C、
用del就可以删除元组中的元素
D、
列表和元组都是可变数据类型
解析:【喵呜刷题小喵解析】:
A选项:同一个元组中,元素的类型必须相同。这个说法是错误的,元组中的元素可以是不同的类型,只要它们在元组中按照顺序排列即可。
B选项:tuple()函数可以将列表转换为元组。这个说法是正确的,tuple()函数可以将列表转换为元组,例如:my_list = [1, 2, 3]; my_tuple = tuple(my_list) 将会得到元组(1, 2, 3)。
C选项:用del就可以删除元组中的元素。这个说法是错误的,元组是不可变的,所以不能使用del来删除元组中的元素。
D选项:列表和元组都是可变数据类型。这个说法是错误的,元组是不可变的,而列表是可变的。
因此,正确答案是B选项。
14、下列说法错误的是?( )
A 字典是可变的无序集合
B 列表、元组可以相互嵌套使用
C 字典虽然不能利用下标访问元素,但可以排序
D 字典属于一对一映射关系的数据类型
解析:【喵呜刷题小喵解析】字典(dictionary)是一种可变的数据类型,它存储的是键值对,每个键对应一个值,属于一对一映射关系的数据类型。字典是无序的,因此不能排序。列表和元组可以相互嵌套使用,即一个列表或元组可以包含另一个列表或元组作为元素。而字典虽然不能利用下标访问元素,但可以通过键来访问对应的值。因此,选项C“字典虽然不能利用下标访问元素,但可以排序”是错误的。
15、将下列列表a中偶数提取出来并形成一个新的列表c,请补充完整语句?( )
a = [3,5,7,6,2,8,10]
c=[]
for i in a:
if _______:
________
print(c)
A i%2==0:
append(i)
B i%2==0
extend(i)
C i//2=1
append(i)
D i//2=1
extend(i)
解析:【喵呜刷题小喵解析】:在Python中,判断一个数是否为偶数,可以使用取模运算符`%`。如果`i % 2`的结果为0,那么`i`就是偶数。因此,第一个空格应该填写`i % 2 == 0`。对于将元素添加到列表的操作,应该使用`append()`方法,而不是`extend()`方法。`extend()`方法用于将一个列表的所有元素添加到另一个列表中,而`append()`方法用于将单个元素添加到列表中。因此,第二个空格应该填写`c.append(i)`。所以,完整的语句应该是:
```python
for i in a:
if i % 2 == 0:
c.append(i)
```
16、据相关文件规定,全国景区对老年人实行优惠政策:60岁以内全票,60-69岁(含60岁和69岁)的老年人半票,69岁以上免费。输入年龄,可以输出全票/半票/免费信息的程序是?(
A、while True:
a=int(input('年龄:'))
if(a>=70):
print('免费')
elif(a>60 and a<70):
print('半票')
else:
print('全票')
B、
while True: a=int(input('年龄:')) if(a>=70): print('免费') elif(a>=60 and a<70): print('半票') else: print('全票')
C、
while True: a=int(input('年龄:')) if(a>70): print('免费') elif(a>=60 and a<70): print('半票') else: print('全票')
D、
while True: a=int(input('年龄:')) if(a>70): print('免费') elif(a>60 and a<70): print('半票') else: print('全票')
解析:【喵呜刷题小喵解析】:根据题目描述,60岁以内全票,60-69岁(含60岁和69岁)的老年人半票,69岁以上免费。因此,当年龄大于或等于70岁时,输出“免费”,当年龄在60岁到69岁之间(含60岁和69岁)时,输出“半票”,当年龄小于60岁时,输出“全票”。选项A中的代码符合题目要求,而选项B、C、D中的代码在年龄判断条件上存在错误,因此正确答案是A。
17、执行下列代码后,屏幕打印的k值的个数共有多少个?( )
k=100 while k>1: print(k) k=k//2
A 5
B 6
C 10
D 50
解析:【喵呜刷题小喵解析】:在这段代码中,`k`的初始值为100。然后,当`k`大于1时,进入循环。在循环中,`k`的值会先打印出来,然后`k`会被赋值为`k//2`。也就是说,每次循环,`k`都会除以2。当`k`等于1时,循环结束。所以,在循环中,`k`的值会打印出来:100, 50, 25, 12, 6, 3, 1。总共7个值,但是题目要求的是k值的个数,所以答案应选B。
18、已知a="123",那么a*2的结果是?( )
A 246
B 123123
C '123123'
D '246'
解析:【喵呜刷题小喵解析】:根据题目,已知a="123",这表示a是一个字符串类型的变量,值为"123"。而题目要求计算a*2的结果。在Python中,字符串类型的变量不能进行数学运算,因此a*2实际上会连接字符串两次,即"123123"。但题目要求的是结果,而不是字符串连接,所以选项A"246"是错误的。因此,正确答案是选项B"123123",但这个答案在题目中是一个干扰项,题目可能出错了。如果题目要求的是数值计算,那么应该先将a转换为数值类型,再进行计算,即a=int("123"),然后a*2=246。但题目没有明确指出,我们只能根据题目给出的信息进行分析。
19、以下代码输出结果是?( )
ls = [888,'note',[2021,'Python',123],20] print(ls[2][1])
A note
B Python
C 2021
D 结果错误
解析:【喵呜刷题小喵解析】:在Python中,列表的索引是从0开始的。给定的列表`ls`的第三个元素是一个列表`[2021,'Python',123]`,所以`ls[2]`就是这个子列表。然后,`ls[2][1]`表示子列表的第二个元素,即字符串`'Python'`。所以输出结果为`'Python'`,选项D表示结果错误,所以选D。
20、在Python3.5.2的IDLE交互式环境下依次输入以下程序语句后的结果是?( )
>>>S=[10,20,30,40]
>>>10 in S
A True
B true
C False
D false
解析:【喵呜刷题小喵解析】:在Python中,判断一个元素是否在列表中的语法是 `元素 in 列表`。在这个例子中,`10 in S` 将会判断10是否在列表S中。由于10在列表S中,所以应该返回 `True`。但是,在Python中,`True` 和 `False` 的首字母都应该大写,因此正确的答案应该是 `False`,选项C。题目中 `10 in S` 语句没有执行,所以不会返回任何结果。如果执行这个语句,应该返回 `True`,但是题目没有要求执行这个语句,所以正确答案是 `False`。注意,题目中的选项A和B使用了小写字母 `t`,这是不正确的,正确的应该是大写字母 `T`。
21、原有列表s=[5,2,9,1],下列哪个操作不能使得列表s变为[9,5,2,1]?( )
A s.sort()
s.reverse()
print(s)
B s.sort(reverse=True)
print(s)
C print(sorted(s,reverse=True))
D、
s.sort()
print(s)
解析:【喵呜刷题小喵解析】题目要求找出一个不能使列表s=[5,2,9,1]变为[9,5,2,1]的操作。我们来逐一分析选项:
A. `s.sort()`:此操作会将列表s按照升序排序,所以排序后的列表会是[1,2,5,9],而不是[9,5,2,1]。
B. `s.sort(reverse=True)`:此操作会将列表s按照降序排序,排序后的列表会是[9,5,2,1],与题目要求一致。
C. `print(sorted(s,reverse=True))`:此操作会返回一个新的降序排序的列表,而不是修改原列表s,所以原列表s不会改变。
D. `s.sort() print(s)`:此操作首先会将列表s按照升序排序,然后打印排序后的列表,排序后的列表会是[1,2,5,9],而不是[9,5,2,1]。
从上面的分析可以看出,选项B和D都会使列表s按照某种顺序排序,而不是直接将其变为[9,5,2,1]。而选项C虽然会返回一个新的降序排序的列表,但原列表s不会改变。因此,唯一不能使列表s变为[9,5,2,1]的操作是B选项。
22、已知Lista=list("five"),执行语句Lista[2:]=list("rst")后,列表Lista中的元素为?( )
A ['f', 'i', 'v', 'e', 'r', 's', 't']
B ['f', 'r', 's', 't']
C ['f', 'i', 'r', 's']
D ['f', 'i', 'r', 's', 't']
解析:【喵呜刷题小喵解析】:在Python中,列表的切片操作`Lista[2:] = list("rst")`意味着从索引2开始到列表末尾的所有元素都被新列表"rst"替换。原始列表`list("five")`的元素为['f', 'i', 'v', 'e'],执行此操作后,列表将变为['f', 'i', 'r', 's', 't']。因此,正确答案为D。
23、以下代码输出结果是?( )
ls =["2021","123","Python"] ls.append([2021,"2021"]) ls.append(2021) print(ls)
A ['2021', '123', 'Python', 2021]
B ['2020', '123', 'Python', [2021, '2021']]
C ['2021', '123', 'Python', [2021, '2021'], 2021]
D ['2020', '123', 'Python', [2021],2021]
解析:【喵呜刷题小喵解析】:Python中的列表是可变序列类型,列表元素可以是任意类型。根据代码,ls是一个列表,初始时包含三个元素:'2021','123','Python'。然后,通过`ls.append([2021,'2021'])`,将一个新的列表元素添加进去,该列表包含两个元素:2021和'2021'。接着,`ls.append(2021)`将2021作为一个单独的元素添加到列表末尾。所以,最后的列表ls应该包含五个元素,即['2021','123','Python',[2021,'2021'],2021]。所以,正确的选项是C。
24、小红用一个列表score=[80,78,92,96,100,88,95]来依次表示她七周的英文测验分数,如果想要查找到第三周的英文测验分数并将其删除,应该怎么做?( )
A score[3]
B score[2]
C score.pop(3)
D score.pop(2)
解析:【喵呜刷题小喵解析】在Python中,列表的索引是从0开始的。所以,第一周的英文测验分数是score[0],第二周的英文测验分数是score[1],以此类推。题目中想要查找到第三周的英文测验分数并将其删除,那么应该使用索引2(因为索引2对应的是第三周的英文测验分数)。因此,应该使用score.pop(2)来删除第三周的英文测验分数。所以,正确答案是C。
25、执行下列代码后,运行结果是?( )
seq=['hello','good','morning'] s='*'.join(seq) print(s)
A hello*good*morning*
B *hello*good*morning
C hello*good*morning
D *hello*good*morning*
解析:【喵呜刷题小喵解析】:题目中的代码执行了以下操作:
1. 定义一个列表 `seq=['hello','good','morning']`,其中包含三个字符串。
2. 使用字符串的 `join()` 方法将列表中的字符串连接起来,字符串之间用 `*` 分隔。`join()` 方法将列表中的所有字符串按顺序组合成一个新的字符串,每个字符串之间插入指定的分隔符(这里是 `*`)。
3. 将连接后的字符串赋值给变量 `s`。
4. 使用 `print()` 函数输出变量 `s` 的值。
所以,执行这段代码后,`s` 的值将是 `'hello*good*morning'`,然后输出这个值。因此,正确答案是选项 C。
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!