- 难度级别: 中等
1)以下程序的输出是什么?
List = [True, 50, 10] List.insert(2, 5) print(List, "Sum is: ", sum(List))
a) [True, 50, 10, 5] Sum is: 66
b) [True, 50, 5, 10] Sum is: 65
c) TypeError: +: 'int' and 'str' 不支持的操作数类型
d) [True, 50, 5, 10] 总和是:66
答:(d)
解释: 列表最初有 3 个元素。insert() 在索引 2 处添加元素 5,在索引 3 处移动元素 10,List 变为 [True, 50, 5, 10]。布尔值的整数值为 1,因此总和变为 1 + 50 + 5 + 10 = 66。
2) 以下程序的输出是什么?
T = (1, 2, 3, 4, 5, 6, 7, 8) print(T[T.index(5)], end = " ") print(T[T[T[6]-3]-6])
a) 4 0
b) 5 8
c) 5 索引错误
d) 4 1
答:(b)
说明: 内置函数 index() 返回元素的索引。T.index(5) = 4 和 T[4] = 5。另一个打印语句具有元组索引,类似于列表的索引。T[6] = 7,T[6]-3 = 4,T[T[6]-3] = 5,T[T[6]-3]-6 = -1 和 T[T[T[6 ]-3]-6],即 T[-1] = 8。
3) 以下程序的输出是什么?
L = [1, 3, 5, 7, 9] print(L.pop(-3), end = ' ') print(L.remove(L[0]), end = ' ') print(L)
a) 5 无 [3, 7, 9]
b) 5 1 [3, 7, 9]
c) 5 1 [3, 7, 9]
d) 5 无 [1, 3, 7, 9]
答:(a)
解释: pop() 将删除并返回其索引作为参数传递的元素。L.pop(-3) 将删除 5 并返回 5,由 print() 打印。remove() 确实返回任何值,它是一个 void 函数。L[0] = 1,L.remove(1) 将从列表中删除 1,列表保持为 [3, 7, 9]。
4) 以下程序的输出是什么?
def REVERSE(L): L.reverse() return(L) def YKNJS(L): List = [] List.extend(REVERSE(L)) print(List) L = [1, 3.1, 5.31, 7.531] YKNJS(L)
a) [1, 3.1, 5.31, 7.531]
b) [7.531, 5.31, 3.1, 1]
c) IndexError
d) AttributeError: 'NoneType' 对象没有属性 'REVERSE'
答。(b)
解释: REVERSE() 反转列表并返回它。YKNJS() 将列表 L 的反向添加到空列表 List。L = [1, 3.1, 5.31, 7.531],反转并变为 [7.531, 5.31, 3.1, 1]。
5) 以下程序的输出是什么?
from math import sqrt L1 = [x**2 for x in range(10)].pop() L1 + = 19 print(sqrt(L1), end = " ") L1 = [x**2 for x in reversed(range(10))].pop() L1 + = 16 print(int(sqrt(L1)))
a) 10.0 4.0
b) 4.3588 4
c) 10.0 4
d) 10.0 0
答。(c)
解释: 第一次列表压缩将创建列表为 [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] 并且 pop() 将返回 81. 81 + 19 = 100,其平方root 是 10.0,类似地,在第二种情况下 pop() 将返回 0,因为范围相反,16 的平方根的整数值为 4。