Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情。
- 难度级别: 困难
 
注意:所有这些程序的输出都在 Python3 上进行了测试
预测以下 Python 程序的输出。
1) 以下哪个选项可能是以下程序的输出?
L = list('123456')
L[0] = L[5] = 0
L[3] = L[-2]
print(L)
a) [0, '2', '3', '4', '5', 0] 
b) ['6', '2', '3', '5', '5', '6'] 
c) ['0', '2', '3', '5', '5', '0'] 
d) [0, '2', '3', '5', '5', 0] 
答:(d)  
说明:  L[0] 为'1',L[5] 为'6',这两个元素在List 中都将被替换为0。L[3],即 4 将被替换为 L[-2],即 5。
2) 以下程序的输出是什么?
T = 'cheng'
a, b, c, d, e = T
b = c = '*'
T = (a, b, c, d, e)
print(T)
a) ('c', '', '', 'n', 'g') 
b) ('c', 'h', 'e', 'n', 'g') 
c) (' cheng', '', '') 
d) KeyError 
答:(a)  
解释: 创建一个元组为T = ('c', 'h', 'e', 'n', 'g'),然后解包成a,b,c,d,e,映射从'c'到a和'g'到e。b 和 c 都等于 '*' 然后将现有的元组替换为将 a、b、c、d 和 e 打包成一个元组 T。
3) L 在末尾的值是多少执行以下程序?
L = [2e-04, 'a', False, 87]
T = (6.22, 'boy', True, 554)
for i in range(len(L)):
	if L[i]:
		L[i] = L[i] + T[i]
	else:
		T[i] = L[i] + T[i]
		break
a) [6.222e-04, 'aboy', True, 641] 
b) [6.2202, 'aboy', 1, 641] 
c) TypeError  
d) [6.2202, 'aboy', False, 87] 
答:(c)  
解释:  for 循环将运行 i = 0 到 i = 3,即 4 次(len(L) = 4)。2e-04 与 0.0002 相同,因此 L[i] = 6.22 + 0.0002 = 6.2202。字符串加法将导致连接,'a' + 'boy' = 'aboy'。False + True 为 True,它将返回整数值 1。由于元组是不可变的,代码将以 TypeError 结尾,但 L 的元素将被更新。
4) 以下程序的输出是什么?
T = (2e-04, True, False, 8, 1.001, True)
val = 0
for x in T:
	val += int(x)
print(val)
a) 12 
b) 11 
c) 11.001199999999999 
d) TypeError 
答:(b)  
解释:  2e-04(0.0002)的整数值为0,True为1,False为0,1.001的整数值为1。因此总计0 + 1 + 0 + 8 + 1 + 1 = 11。
5) 以下哪个选项可能是以下程序的输出?
L = [3, 1, 2, 4]
T = ('A', 'b', 'c', 'd')
L.sort()
counter = 0
for x in T:
	L[counter] += int(x)
	counter += 1
	break
print(L)
a) [66, 97, 99, 101] 
b) [66, 68, 70, 72] 
c) [66, 67, 68, 69] 
d) ValueError 
答:(d)  
解释: 在 sort(L) 之后,L 将 = [1, 2, 3, 4]。Counter = 0, L[0] 即 1, x = 'A',但是 char 'A' 到整数的类型转换会抛出错误,并且值不能存储在 L[0] 中,因此会出现 ValueError。