二元一次函数的实现

import cmath
import math
import sys

这里导入cmath包是在后面用来处理复数的情况
导入math使用来处理 平方 根号等的运算
而导入sys的意义是为了比较0 ,在python中float的精度值不够,所以在计算复数时需要用到sys.float_info.epsilon

def get_float(msg,allow_zero):
    x =None
    while x is None:
        try:
            x= float(input(msg))
            if not allow_zero and abs(x) < sys.float_info.epsilon:
 #在python中float是双精度,精度不够,在比较时容易出错,所以需要用函数sys.float_info.epsilon
 #sys.float_info.epsilon代表无限接近 0,是机器可以区分出的两个浮点数的最小区别 
                print('不允许为0')
                x = None
        except ValueError as err:
            print(err)
    return x

这个函数是用来读取用户输入的数字,并对其进行判定是否满足二元一次方程式的标准
对输入值进行判定是否为数字类型:
是 -> 则进行下一步,将变量赋值
不是 -> 返回错误信息,并要求重新输入数值

print('ax\N{SUPERSCRIPT TWO}+bx+c=0')
#\N{SUPERSCRIPT TWO} 代表显示上标一个2
ax²+bx+c=0
a = get_float('enter a: ',False)
b = get_float('enter b: ',True)
c = get_float('enter c: ',True)

x1 = None
x2 = None
discriminant = (b**2)-(4*a*c)
if discriminant == 0:
    x1 = -(b/(2*a))
else:
    if discriminant >0:
        root = math.sqrt(discriminant)
    else:
        root = cmath.sqrt(discriminant)
    x1 = (-b+root)/(2*a)
    x2 = (-b-root)/(2*a)
equation = ("{0}x\N{SUPERSCRIPT TWO}+{1}x+{2}=0"
            " \N{RIGHTWARDS ARROW} x={3}").format(a,b,c,x1)
           # \N{RIGHTWARDS ARROW} 代表显示一个箭头标识(→)
if x2 is not None:
    equation +=' or x={0}'.format(x2)
print(equation)
enter a: 1
enter b: 2
enter c: 1
1.0x²+2.0x+1.0=0 → x=-1.0

取到a b c 的值后 对(b²-4ac)进行计算,
当计算出来的值为0时,表示只有一个解为
当计算出来的值大于0时,表示有两个解
当计算出来的值小于0时,表示有两个复数解

使用python实现解析二元一次方程的更多相关文章

  1. Python数学实现二元一次方程

    import cmath import math import sys def get_float(msg,allow_zero): x = None while x is None: try: x ...

  2. 用 ElementTree 在 Python 中解析 XML

    用 ElementTree 在 Python 中解析 XML 原文: http://eli.thegreenplace.net/2012/03/15/processing-xml-in-python- ...

  3. Python XML解析(转载)

    Python XML解析 什么是XML? XML 指可扩展标记语言(eXtensible Markup Language). 你可以通过本站学习XML教程 XML 被设计用来传输和存储数据. XML是 ...

  4. python高效解析日志入库

    python脚本解析日志文件入库一般有三个重要的步骤:读文件.解析文件.入库.在这三个方面下功夫,可确保我们获得最优的性能(这里不讨论并发) 1 读文件:一次读一行,磁盘IO太多,效率低下:一次性读如 ...

  5. Python网页解析

    续上篇文章,网页抓取到手之后就是解析网页了. 在Python中解析网页的库不少,我最开始使用的是BeautifulSoup,貌似这个也是Python中最知名的HTML解析库.它主要的特点就是容错性很好 ...

  6. [Python]ConfigParser解析配置文件

    近期发现非常多接口配置都硬编码在souce file中了,于是就看了下python怎么解析配置文件,重构下这一块. 这个应该是早就要作的... 配置文件: [mysqld] user = mysql ...

  7. Python 文本解析器

    Python 文本解析器 一.课程介绍 本课程讲解一个使用 Python 来解析纯文本生成一个 HTML 页面的小程序. 二.相关技术 Python:一种面向对象.解释型计算机程序设计语言,用它可以做 ...

  8. Python XML解析之ElementTree

    参考网址: http://www.runoob.com/python/python-xml.html https://docs.python.org/2/library/xml.etree.eleme ...

  9. python大法好——Python XML解析

    Python XML解析 什么是XML? XML 被设计用来传输和存储数据. XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识. 它也是元标记语言,即定义了用于定义其他与 ...

随机推荐

  1. 使用MS的ScriptDom来拆解TSQL脚本

    此处提供9.1.40413.0版本的DLL一共4个:Microsoft.Data.Schema.dll.Microsoft.Data.Schema.ScriptDom.dll.Microsoft.Da ...

  2. Python time.md

    time模块 Comparing Clocks time.clock():在Unix 上,返回当前的处理器时间,以浮点数秒数表示. time.monotonic():返回一个单调时钟的值(在分秒内), ...

  3. 批量删除Redis中的数据

    测试环境上是docker安装的redis,生产上使用的是阿里云Redis服务,需要批量清理生产上的数据. 阿里云提供了BS结构的工具管理Redis,但是不能全选批量删除,只能脚本删除,方法是在测试环境 ...

  4. php 添加 redis 扩展

    Windows下PHP安装Redis扩展的具体步骤方法 下面我们就结合详细的图文,给大家介绍Windows下PHP安装Redis扩展的方法: 首先我们打开这个上面给出的下载链接地址,界面如下: 这里我 ...

  5. 【转】iOS消息推送实现过程记录

    客户端代码:链接地址 服务器代码:链接地址  链接地址 这里记录下iOS消息推送实现的全过程 首先,申请秘钥. 之后进入链接地址开发者,当然你得有啊!!!!! 点击这里 如图: 下面实现创建推送证书( ...

  6. 如何将freemarker文件转化为html文件

    最近在做静态的页面报表服务,将前端生成的ftl文件转化为html格式的文件,供后面合成pdf使用. freemarker基础可以参见:freemarker官方文档 前期准备:需要一个基础的ftl格式的 ...

  7. (转)添加Template(模板)并基于模板部署应用

    通过Template,可以定义一个或多个需要部署的镜像,定义依赖的对象,定义可供用户输入的配置参数项. 以cakephp-mysql.json为例. # oc create -f https://ra ...

  8. 美团热修复Robust-源码篇

    上一篇主要分析了Robust的使用方法,这一篇就来总结一下Robust的源码分析. 我个人倾向于将Robust框架分为两个部分,自动插入代码和动态加载Patch. 一.Robust源码分析 目前我的分 ...

  9. linux下日语语言包安装

    光盘挂载: mount /dev/cdrom /mnt/cdrom cd /mnt/cdrom/Server 以oel5.5为例: rpm -ivh fonts-japanese-0.20061016 ...

  10. 11 基于django的图书管理系统 多表

    1.需求 作业需求:1.列出图书列表.出版社列表.作者列表2.点击作者,会列出其出版的图书列表3.点击出版社,会列出旗下图书列表4.可以创建.修改.删除 图书.作者.出版社 踩分点:1.满足需求1,2 ...