經典Python案例實現


入門_30個常用python實現 .pdf

一、

二、

三、

四、

五、函數篇

5.1 計算圓的面積

from math import pi as PI

def CircleArea(r):
    if isinstance(r,(int,float)) and r > 0: #確保接收的參數為大於0的數字
        return PI * r * r
    else:
        return("You must give me an interger or float as radius.")

print(CircleArea(3))

5.2 返回實數中大於平均值的實數

編寫函數,接收任意多個實數,返回一個元組,其中第一個元素為所有參數的平均值,其他元素為大於平均數的實數

def demo(*para): #參數傳遞的序列解包
    avg = sum(para) / len(para)
    g = [i for i in para if i > avg]
    return (avg,) + tuple(g)
print(demo(1,2,3,4,5))

5.3 求字符串中字母(數字、符號)數目

def demo(s):
    result = [0,0]
    for ch in s:
        if 'a' <= ch <= 'z':
            result[1]+=1
        elif 'A' <= ch <= 'Z':
            result[0]+=1
    return result

print(demo('aaaaCCCBSFSSaaafdg'))

5.4 接受列表按一定規則排序

編寫函數,接收包含20個整數的列表 \(lst\) 和一個整數\(k\) 作為參數,返回新列表。

處理規則為:將列表 \(lst\) 中下標\(k\) 之前的元素逆序,將下標為\(k\)\(k\) 之后的元素逆序,最后將整個列表逆序

def demo(lst,k):
    x = lst[:]
    x[:k] = reversed(x[:k])
    x[k:] = reversed(x[k:])
    x.reverse()
    return x
lst = list(range(1,21))
print(demo(lst,5))

5.5 python快速求解多項式的值

  • 給定 x, 計算多項式

\[p_n(x) = a_nx^n + a_{n-1}x^{n-1}+···+a_1x + a_0 \]

直接表達

def p_n(x,a_n:list):
    ans = 0
    for i in range(len(a_n)): 
        ans += x**i*a_n[i]
    return ans
%%time
ans1 = 0
for i in range(1000):
    ans1 += p_n(2,[i for i in range(200)])
Wall time: 116 ms
  • 其中 \(a_kx^k\) 需要進行k次乘法,所以很復雜。

使用Python實現秦九韶算法快速計算多項式的值

def Horner(x,a_n:list):
    n = len(a_n)-1
    def b_n(x,i):
        if i == n: return a_n[i] # b_n = a_n
        return a_n[i]+ b_n(x,i+1)*x # b_{n-1} = a_{n-1} + b_n*x
    return b_n(x,0)


免責聲明!

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



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