经典Python案例实现
发布日期:2021-05-09 00:11:47 浏览次数:26 分类:博客文章

本文共 1506 字,大约阅读时间需要 5 分钟。

一、

二、

三、

四、

五、函数篇

5.1 计算圆的面积

from math import pi as PIdef 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 resultprint(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 xlst = 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
%%timeans1 = 0for 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)
上一篇:Web开发初探(系统理解Web知识点)
下一篇:Codeforces Round #670 (Div. 2) 深夜掉分(A - C题补题)

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年05月08日 18时11分15秒