前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python求解一元二次方程根

Python求解一元二次方程根

作者头像
Python小屋屋主
发布2018-04-16 16:27:59
2.2K0
发布2018-04-16 16:27:59
举报
文章被收录于专栏:Python小屋Python小屋

本文使用Python实现一元二次方程求根公式,主要演示运算符和几个内置函数的用法,封面图片与本文内容无关。

def root(a, b, c, highmiddle=True): #首先保证接收的参数a,b,c都是数字,并且a不等于0 #由于计算机表示实数时存在精度的问题,所以不能使用==来判断实数是否为0 #函数的最后一个参数highmiddle为True表示高中,False表示初中 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

#delta<0时无解 d = b**2 - 4*a*c #根据一元二次方程求根公式进行计算 #当d<0时,在实数域内无解,d**0.5会得到复数 x1 = (-b + d**0.5) / (2*a) x2 = (-b - d**0.5) / (2*a)

if isinstance(x1, complex): if highmiddle: #高中阶段需要考虑复数根,实部和虚部都保留3位小数 x1 = round(x1.real, 3) + round(x1.imag, 3)*1j x2 = round(x2.real, 3) + round(x2.imag, 3)*1j return (x1, x2) else: #初中阶段只考虑实数根 print('no answer') return #如果是实数根,保留3位小数 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))

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-01-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档