Python程序的输出|组 15(模块)
先决条件:正则表达式
注意:所有这些程序的输出都在 Python3 上进行了测试
1) 以下哪个选项可能是以下程序的输出?
from random import randrange
L = list()
for x in range(5):
L.append(randrange(0, 100, 2)-10)
# Choose which of outputs below are valid for this code.
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]
答。 (一种)
说明: for 循环将导致向列表 L 追加 5 个元素。元素的范围为 [0, 98] – 10 = [-10, 88],排除选项 (d)。由于步长为 2,因此上限为 98,因此选项(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 3.12
答。 (二)
说明: 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 等价于 [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' 对象不支持项目分配
答。 (二)
说明:在第一个打印语句中,所有的'ge'都将被替换为'**',并且忽略大小写。第 2 条语句中没有忽略大小写,因此将替换“ge”而不是“Ge”。 5) 以下哪个选项可能是以下程序的输出?
import math
import random
L = [1, 2, 30000000000000]
for x in range(3):
L[x] = math.sqrt(L[x])
# random.choices() is available on Python 3.6.1 only.
string = random.choices(["apple", "carrot", "pineapple"], L, k = 1)
print(string)
一个菠萝']
b) ['苹果']
c) '菠萝'
d) a 和 b
答。 (四)
说明:使用了 math 和 random 两个模块,for 循环后的 L 为 [1.0, 1.4142135623730951, 5477225.575051662]。 choice() 将选择作为第一个参数,将它们的权重作为第二个参数,k 是选择所需的数值。由于它的重量,答案几乎总是“菠萝”,但“苹果”和“胡萝卜”有时可能会成为输出。