python 面试题 牛客_python之牛客网刷题总结

1.max = x > y ? x : y 不是python的语法,这一点特别容易混淆;python三元运算符的使用如下:

a if x>y else b

2.random.random()生成0和1之间的随机浮点数float

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

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))

本题是求0-100亿之间的素数的个数,首先你要读懂代码。

读懂代码后,自己编写Meissel-Lehmer 算法快速求出0-100亿内的素数个数。

关于楼上说的网上百度100亿以内的素数,我没有百度到。但是我们可以记住这个值

4.有如下类定义,下列描述错误的是?

class A(object):

pass

class B(A):

pass

b = B()

isinstance(b, A) == True、isinstance(b, object) == True、issubclass(b, B) == True都是对的

issubclass(B, A) == True是错的

isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。

issubclass() 函数用于判断参数是否是类型参数的子类。

5.下面的程序根据用户输入的三个边长a,b,c来计算三角形面积.请指出程序中的错误:(设用户输入合法,面积公式无误)

import math

a, b, c = raw_input(“Enter a,b,c: ”) #错误原因:不允许类似a,b,c=input()的语句,否则会报错:可以这么输入a,b,c= input('enter a b c: ').split()

s = a + b + c

s = s / 2.0

area = sqrt(s*(s-a)*(s-b)*(s-c))#应该是math.sqrt,或者上面1直接用from math import sqrt⚠️❗️

print “The area is:”, area

python3.x中,只有input()函数

input():接受任何类型的输入,返回的对象类型为字符串

标签:python,sqrt,之牛客,网刷题,input,sieve,True,math,size

来源: https://www.cnblogs.com/zhaikunkun/p/12649834.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值