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():接受任何类型的输入,返回的对象类型为字符串

猜你喜欢

转载自www.cnblogs.com/zhaikunkun/p/12649834.html