经典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 之前的元素逆序,将下标为kk 之后的元素逆序,最后将整个列表逆序

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, 计算多项式

pn(x)=anxn+an1xn1+···+a1x+a0

直接表达

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
  • 其中 akxk 需要进行k次乘法,所以很复杂。

使用Python实现秦九韶算法快速计算多项式的值

undefined
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)
posted @   RioTian  阅读(892)  评论(0编辑  收藏  举报
编辑推荐:
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 全程不用写代码,我用AI程序员写了一个飞机大战
点击右上角即可分享
微信分享提示

📖目录