Python实现3行代码解简单的一元一次方程

yipeiwu_com6年前Python基础

本文所述实例为Python用3行代码实现解一元一次方程,代码简洁高效,具体用法如下:

>>> solve("x - 2*x + 5*x - 46*(235-24) = x + 2")
3236.0

功能代码如下:

def solve(eq,var='x'):
  eq1 = eq.replace("=","-(")+")"
  c = eval(eq1,{var:1j})
  return -c.real/c.imag

下面就来解读下代码吧。

首先是第一行,它将等式进行了变形,生成了一个结果为0的算式“x - 2*x + 5*x - 46*(235-24) -( x + 2)”。
第二行用eval来执行这个算式,并将x = 1j代入算式,结果是-9708+3j。
注意x = 1j,所以这个方程就化简为“-9708+3x = 0”了,只要将-(-9708) / 3就能得到x了。
而-9708是这个复数的实部,3是这个复数的虚部,于是结果变成了“-c.real/c.imag”。
因此很显然,这个函数是不能解复数方程的。
顺带一提,Python 2.x的/运算会使用整数除法,导致小数部分丢失,所以要获得正确结果就应该使用Python 3.x

希望本文所述实例对大家学习Python能有所帮助。

相关文章

Python下载懒人图库JavaScript特效

这是一个简单的Python脚本,主要从懒人图库下载JavaScript特效模板,在脚本中使用了gevent这个第三方库,使用的时候需要先安装。 #!/usr/bin/python #...

django加载本地html的方法

django加载本地html的方法

django加载本地html from django.shortcuts import render from django.http import HttpResponse fro...

python实现在每个独立进程中运行一个函数的方法

本文实例讲述了python实现在每个独立进程中运行一个函数的方法。分享给大家供大家参考。具体分析如下: 这个简单的函数可以同于在单独的进程中运行另外一个函数,这对于释放内存资源非常有用...

Python读写Json涉及到中文的处理方法

今天在帮前端准备数据的时候,需要把数据格式转成json格式,说实话,涉及到中文有时候真的是很蛋疼,除非对Python的编码规则比较了解,不然处理起来真的很蛋疼。 整个逻辑 我们需要处理的...

Scrapy使用的基本流程与实例讲解

Scrapy使用的基本流程与实例讲解

前面已经介绍过如何创建scrapy的项目,和对项目中的文件功能的基本介绍。 这次,就来谈谈使用的基本流程: (1)首先第一点,打开终端,找到自己想要把scrapy工程创建的路径。这里,我...