题目一
对于Python中的表达式{1,2,3,4,5}-{3,4,5,6,7}的结果是?
解析
本题的考察点在于对集合运算的掌握,很多人在使用Python中的集合只是为了得到去重后的数据而忽略其计算法则,对于集合我们可以进行& 交集
,| 并集
,- 差集
,^ 异或集
,对于题目中给出的集合,四种运算的结果如下:
交集 & :两个集合中共同含有的元素。
print({1, 2, 3, 4, 5} & {3, 4, 5, 6, 7}) # 运行结果 {3, 4, 5}
并集 | :两个集合中所有的元素。
print({1, 2, 3, 4, 5} | {3, 4, 5, 6, 7}) # 运行结果 {1, 2, 3, 4, 5, 6, 7}
差集 - :第一个集合中的元素去掉两个集合重复的元素。
print({1, 2, 3, 4, 5} - {3, 4, 5, 6, 7}) # 运行结果 {1, 2}
异或集 | :两个集合中不重复的元素。
print({1, 2, 3, 4, 5} ^ {3, 4, 5, 6, 7}) # 运行结果 {1, 2, 6, 7}
本题答案
{1 ,2}
题目二
写代码:使用Python列表生成式得到100以内(包括100)所有能被2整除的自然数。
解析
列表生成式可以让我们使用极简的一行代码去生成列表,但在实际应用中很多人更喜欢按照标准的语句去写代码,因而忽略列表生成式的实现方式。本题的答案可以写成如下的格式:
[i for i in range(101) if i % 2 == 0]
生成式解读
i
:用于生成列表元素的变量;
for i in range(101)
:用于循环产生生成列表的范围;
if i % 2 == 0
:生成元素所需的条件。
注意:本题中需要100以内的数据,因此range中需要填入101。
题目三
下列代码的运行结果是:
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print(x[10:])
解析
对于本题,多数人给出的答案就是报错(列表越界问题),但是此写法在Python中是一种Bug的存在,最终的输出结果为空列表[]
。
注意:答10的小伙伴们,注意Python索引是从0开始的。
题目四
Python中
abs(3+4j)
的运行结果为?
题目五
下列代码最终的输出结果为?
str1 = 'erge zuishuai' str1.replace('zuishuai', 'zuichou') print(str1)
解析
本题在于考察Python中字符串本身的特性,对于Python来说字符串是一种不可变的数据类型,因此当只对字符串执行replace
操作时,字符串本身的值并不会发生变化,最终打印的结果为erge zuishuai
(二哥的帅是不可撼动的)。这里想要改变字符串的值在replace
的同时对字符串重新进行赋值即可。
题目六
对于列表
lst=[1,2,3]
,执行代码lst[:3]=[4]
后打印列表的结果为?
解析
本题在于考察Python中列表的基本概念,很多人会将此题的结果回答为[1,2,3,4]
,需要注意的是题目中给出的条件是将切片lst[:3]
的结果替换为[4]
也就是将[1,2,3]
替换为[4]
,因此本题的打印结果应为[4]
。
题目七
对于列表
lst=[[1]]*3
,执行代码x[0][0]=7
后打印列表的结果为?
解析
使用题目中的方式创建二维列表的时候,创建后的结果为[[1], [1], [1]]
,对于此种方式创建的结果,三个[1]
指向了同一块内存,因此当改变任意一个[1]的值的时候,三个值都会被改变,因此结果为[[7], [7], [7]
]。
题目八
下列代码中结果为
True
的语句是?{1,2,3}=={1,3,2}
[1,2,3]==[1,3,2]
解析
本题在于考察对于列表和集合的理解,在Python中集合是无序的,而列表是有序的,对于有序列表的==判断来说,必须要满足数值+位置都是相同的才能为True
,而集合只需满足两个集合中数值相同即可。
题目九
Python中
(1)+(2)
的结果为?
解析
错误的解题思路:()
表示元组,元组(1)
和元组(2)
相加的结果是(1,2)
。
上述思路的正确题目:(1,)+(2,)
;在使用单个数字定义元组时,需要在数字后添加,。
正确答案:(1)+(2)=3
。
题目十
Python表达式sum(range(10))的运行结果是?
解析
本题在于考察Python中对于range()
函数的理解,range()
返回一个可迭代对象,range(10)
返回自然数0-9,最终进行sum
运算的结果为45
。