【python学习】解析算法案例分析

《中学生可以这样学Python》P171-176

根据定义计算组合数

#解析算法案例分析
##根据定义计算组合数
import math
def Cni(n,i):
    return int(math.factorial(n)/math.factorial(i)/math.factorial(n-i))
print(Cni(10,6))

编写程序,计算一元二次方程的根

##编写程序,计算一元二次方程的根
def root(a,b,c,highmiddle=True):
    if not isinstance(a,(int,float,complex)) or abs(a)<1e-6:
        print('error')
        return
    if not isinstance(b,(int,float,complex)):
        print('error')
        return
    if not isinstance(c,(int,float,complex)):
        print('error')
        return
    d=b**2-4*a*c
    x1=(-b+d**0.5)/(2*a)
    x2=(-b-d**0.5)/(2*a)
    if isinstance(x1,complex):
        if highmiddle:
            x1=round(x1.real,3)+round(x1.imag,3)*1j
            x2=round(x2.real,3)+round(x2.imag,3)*1j
            return (x1,x2)
        else:
            return 'no answer'
    return (round(x1,3),round(x2,3))

r=root(1,2,4)
if isinstance(r,tuple):
    print('x1={0[0]}\nx2={0[1]}'.format(r))

并联电路的电阻计算

##并联电路的电阻计算
def compute(lst):
    r=sum(map(lambda x:1/x,lst))
    return round(1/r,3)
print(compute([50,30,20]))

根据公式计算圆的面积

##根据公式计算圆的面积
from math import pi as PI
def circleArea(r):
    if isinstance(r,(int,float)):
        return PI*r*r
    else:
        return '半径必须为数值'
print(circleArea(3))

已知三角形的两个边长和夹角角度,计算第三边长

##已知三角形的两个边长和夹角角度,计算第三边长
from math import cos,pi
def thirdLength(a,b,C):
    C=C/180*pi ##角度C转为弧度C
    return (a**2+b**2+2*a*b*cos(C))**0.5
print(thirdLength(3,4,90))

编写程序,执行后用户输入摄氏温度,由程序转换为华氏温度并输出

##编写程序,执行后用户输入摄氏温度,由程序转换为华氏温度并输出
C=input('请输入摄氏温度:')
try:
    F=float(C)*1.8+32
    print(F)
except:
    print('输入不合法')
    

结果:

>>> %Run test8.py
210
x1=(-1+1.732j)
x2=(-1-1.732j)
9.677
28.274333882308138
5.0
请输入摄氏温度:36.5
97.7
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值