- 难度级别: 困难
注意:所有这些程序的输出都在 Python3 上进行了测试
1) 以下哪个选项可能是以下程序的输出?
python
复制代码
from random import randrange L = list() for x in range(5): L.append(randrange(0, 100, 2)-10) print(L)
a) [-8, 88, 8, 58, 0]
b) [-8, 81, 18, 46, 0]
c) [-7, 88, 8, 58, 0]
d) [-8, 88, 94, 58, 0]
答案:(a)
解释: for 循环将导致向列表 L 追加 5 个元素。元素的范围为 [0, 98] – 10 = [-10, 88],排除了选项 (d)。上限为 98,因为步长为 2,因此选项 (c) 和 (b) 无效。另请注意,每次你可能不会获得相同的输出或选项中的输出,因为函数是随机的。
2) 以下程序的输出是什么?
from math import * a = 2.13 b = 3.7777 c = -3.12 print(int(a), floor(b), ceil(c), fabs(c))
a) 2 3 -4 3
b) 2 3 -3 3.12
c) 2 4 -3 3
d) 2 3 -4
答案:(b)
说明: int() 返回一个数的整数值,int(2.13) = 2。 floor() 返回小于或等于该数的最大整数, floor(3.777) = 3。 ceil() 返回最小整数大于或等于数字,ceil(-3.12) = -3。fabs() 返回数字的模数,因此 fabs(-3.12) = 3.12。
3) 以下程序的输出是什么?
import re p = re.compile('\d+') print(p.findall("I met him once at 11 A.M. on 4th July 1886"), end = " ") p = re.compile('\d') print(p.findall("I went to him at 11 A.M."))
a) ['11', '4', '1886', '11']
b) ['1141886'] ['1', '1']
c) ['11', '4', '1886'] ['11']
d) ['11', '4', '1886'] ['1', '1'
答案:(d)
解释: \d 等价于 [0-9] 并且 \d+ 将匹配 [0-9] 上的一个组,一个或更大大小的组。在第一个语句中,数字组是 11, 4, 1886。在第二个语句中,\d 会将每个数字视为不同的实体,因此 1, 1。
4) 下面程序的输出是什么?
import re print(re.sub('ge', '**', 'Geeksforgeeks', flags = re.IGNORECASE), end = " ") print(re.sub('ge', '**', 'Geeksforgeeks'))
a) **eksfor**eks **eksfor**eks
b) **eksfor**eks Geeksfor**eks
c) **Geeksfor**geeks Geeksfor**geeks
d) TypeError: ‘str’ object does not support item assignment
答。(b)
解释: 在第一个 print 语句中,所有的 'ge' 将被替换为 '**',并且不区分大小写。在第二个语句中不考虑大小写,因此将替换 'ge' 而不是 'Ge'。
5) 以下哪个选项可能是以下程序的输出?
import math import random L = [1, 2, 30000000000000] for x in range(3): L[x] = math.sqrt(L[x]) string = random.choices(["apple", "carrot", "pineapple"], L, k = 1) print(string)
a) ['pineapple']
b) ['apple']
c) 'pineapple'
d) a 和 b
答案。(d)
说明: 使用了 math 和 random 两个模块,for 循环后的 L 为 [1.0, 1.4142135623730951, 5477225.575051662]。Choices() 将选择作为第一个参数,将它们的权重作为第二个参数,k 是选择所需的数值。答案几乎总是“pineapple”,因为它的重量,但“apple”和“carrot”有时可能会成为输出。