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()的语句,否则会报错:可以这么输入python3.x中,只有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
input():接受任何类型的输入,返回的对象类型为字符串
标签:python,sqrt,之牛客,网刷题,input,sieve,True,math,size 来源: https://www.cnblogs.com/zhaikunkun/p/12649834.html