牛客网专项练习30天Pytnon篇第28天

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: 牛客网专项练习30天Pytnon篇第28天

1.在不考虑计算机运行资源(如内存)的限制,以下 python3 代码的预期运行结果是:(B)

import math
def sieve(size):
    sieve= [True] * size
    sieve[0] = False
    sieve[1] = False
    for i in range(2, int(math.sqrt(size)) + 1):
      k= i * 2
      while k < size:
        sieve[k] = False
        k += i
    return sum(1 for x in sieve if x)
print(sieve(10000000000))

A.455052510


B.455052511


C.455052512


D.455052513


解析:  


      本题计算量较大可以尝试将数值减小,例如sieve(10)==4,sieve(100)==25,sieve(1000)==168;根据结果得知该题为求出100亿内的质数个数。判断n是不是素数,只需整除一遍2至n的算术平方根即可,如果出现整除的情况,则不是素数;可以认为因数是成对出现的,比如10就是分界点,所有成对的因数分布在10的左右,2到10的所有数就已经包含了所有可能的因数对。


2.下面的python3函数,如果输入的参数n非常大,函数的返回值会趋近于以下哪一个值:(B)

import random
def foo(n):
    random.seed()
    c1 = 0
    c2 = 0
    for i in range(n):
        x = random.random()
        y = random.random()
        r1 = x * x + y * y
        r2 = (1 - x) * (1 - x) + (1 - y) * (1 - y)
        if r1 <= 1 and r2 <= 1:
            c1 += 1
        else:
            c2 += 1
    return c1 / c2


A.4 / 3


B.(math.pi - 2) / (4 - math.pi)


C.math.e ** (6 / 21)


D.math.tan(53 / 180 * math.pi)


解析:


       以xy坐标轴(0,0)和(1,1)为圆心分别画两个圆,x,y取值范围为0≤x≤1,0≤y≤1,r1=x²+y² ,r2=(1-x²)+(1-y²),求两圆相交阴影占总面积比例:c1/c2=2*(Π/4-1/2)/1*1-2*(Π/4-1/2)=Π-2/4-Π。


3.当使用import导入模块时,按python查找模块的不同顺序可划分为以下几种:


①环境变量中的PYTHONPATH


②内建模块


③python安装路径


④当前路径,即执行Python脚本文件所在的路径


其中查找顺序正确的一组是:(C)


A.①④②③


B.②①④③


C.②④①③


D.①②③④


解析:


      Python搜索模块的顺序为:内建模块>当前路径,即执行Python脚本文件所在的路径>环境变量中的PYTHONPATH>python安装路径,故答案为C。


4.下列程序打印结果为:(B)

import re
str1 = "Python's features"
str2 = re.match( r'(.*)on(.*?) .*', str1, re.M|re.I)
print(str2.group(1))

A.Python


B.Pyth


C.thon’s


D.Python‘s features


解析:

     re模块正则匹配功能使用:re.match(正则表达式,要匹配的字符串,[匹配模式])。


正则表达式r'(.*)on(.*?).*'


r表示后面的字符串是一个普通字符串(比如\n会译为\和n,而不是换行符);


()符号包住的数据为要提取的数据,通常与.group()函数连用;


.匹配单个任意字符;


*匹配前一个字符出现0次或无限次;


?匹配前一个字符出现0次或1次;


(.*)提取的数据为str1字符串中on左边的所有字符,即Pyth;


(.*?)提取的数据为str1中on右边,空格前面,即's;


.group(0)输出的是匹配正则表达式整体结果;


.group(1) 列出第一个括号匹配部分;


.group(2) 列出第二个括号匹配部分。


5.以下这段代码的输出结果为:(D)

import numpy as np
a = np.repeat(np.arange(5).reshape([1,-1]),10,axis = 0)+10.0
b = np.random.randint(5, size= a.shape)
c = np.argmin(a*b, axis=1)
b = np.zeros(a.shape)
b[np.arange(b.shape[0]), c] = 1
print(b)

A.Hello World!


B.一个 shape = (5,10) 的随机整数矩阵


C.一个 shape = (5,10) 的 one-hot 矩阵


D.一个 shape = (10,5) 的 one-hot 矩阵


解析:


      repeat(np.arange(5).reshape([1,-1]), 10, axis = 0)首先np.arange(5),生成一数组[0,1,2,3,4],reshape([n,-1])意思是将原数组重组为n行x/n列的新数组,所以数组共有5个元素,重组为1行5列的数组,因为axis=0,所以是沿着横轴方向重复,增加行数,所以原数组增加10行,数组每个元素都+10;随机生成大小为a.shape的数组,数组元素为[0,5)区间范围的整数;a*b组成的新数组,给出每行最小值的下标;生成a.shape大小的全零数组;b.shape[0]表示b的行数,b[np.arange(10), c]=1表示np.arange(10)生成的数组中,所有c对应的位置全置为1。


相关文章
|
Python
牛客网专项练习30天Pytnon篇第01天
牛客网专项练习30天Pytnon篇第01天
68 1
|
Python
牛客网专项练习30天Pytnon篇第02天
牛客网专项练习30天Pytnon篇第02天
92 0
|
Python
牛客网专项练习30天Pytnon篇第25天
牛客网专项练习30天Pytnon篇第25天
140 0
|
索引 Python
牛客网专项练习30天Pytnon篇第16天
牛客网专项练习30天Pytnon篇第16天
87 0
|
索引 Python
牛客网专项练习30天Pytnon篇第10天
牛客网专项练习30天Pytnon篇第10天
85 0
|
机器学习/深度学习 索引 Python
牛客网专项练习30天Pytnon篇第06天
牛客网专项练习30天Pytnon篇第06天
67 0
牛客网专项练习30天Pytnon篇第24天
牛客网专项练习30天Pytnon篇第24天
80 0
|
Python
牛客网专项练习30天Pytnon篇第23天
牛客网专项练习30天Pytnon篇第23天
89 0
|
Python
牛客网专项练习30天Pytnon篇第07天
牛客网专项练习30天Pytnon篇第07天
89 0
|
索引 Python
牛客网专项练习30天Pytnon篇第12天
牛客网专项练习30天Pytnon篇第12天
63 0