专栏首页Python小屋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))

本文分享自微信公众号 - Python小屋(Python_xiaowu),作者:董付国

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-01-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 最优的素数判断代码(Python)是这样写出来的

    素数判断是个很经典的问题,各种语言的程序设计课程都会涉及到,按照素数定义(除了1和自身,素数没有其他因数)很容易写出下面的代码: def isPrime1(n...

    Python小屋屋主
  • Python使用多进程批量判断素数

    代码功能:使用进程池判断素数,统计100000000以内的素数个数。 from multiprocessing import Pool def isPrime(...

    Python小屋屋主
  • Python利用Spark并行处理框架批量判断素数

    方法一: from pyspark import SparkConf, SparkContext conf = SparkConf().setAppName(...

    Python小屋屋主
  • 【leetcode刷题】T175-判断子序列

    你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。

    木又AI帮
  • leetcode: 47. Permutations II

    JNingWei
  • [牛客OI测试赛2]F假的数学游戏(斯特灵公式)

    $n! \approx \sqrt{2 \pi n} (\frac{n}{e})^n$

    attack
  • 偿还技术债(1)-EventBus源码详解

    我们知道,EventBus 在有消息被发送出来时,可以直接为我们回调该消息的所有监听方法,回调操作是通过反射 method.invoke 来实现的。那么 Eve...

    叶志陈
  • BZOJ3122: [Sdoi2013]随机数生成器(BSGS)

    直接把\(X_{i+1} = (aX_i + b) \pmod P\)展开,推到最后会得到这么个玩意儿

    attack
  • leetcode 155 Min Stack

    Design a stack that supports push, pop, top, and retrieving the minimum element ...

    用户1539362
  • python pyqt5 QMessageBox 消息框

    import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.Qt...

    用户5760343

扫码关注云+社区

领取腾讯云代金券