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():接受任何類型的輸入,返回的對象類型為字符串