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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM