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

yipeiwu_com7年前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 2.7 检测一个网页是否能正常访问的方法

如下所示: #!/bin/env python #coding:utf-8 import requests import sys url = "https://mp.csdn...

python实现html转ubb代码(html2ubb)

这两天在用python写一个采集器,有个功能模块是html代码转换为ubb,网上貌似没有现成程序,就自己写了个函数,顺便锻炼下自己的正则。 import re def Html2UB...

Python中的defaultdict模块和namedtuple模块的简单入门指南

在Python中有一些内置的数据类型,比如int, str, list, tuple, dict等。Python的collections模块在这些内置数据类型的基础上,提供了几个额外的数...

Python找出9个连续的空闲端口

一、项目需求 安装某软件,配置时候需要填写空闲的端口。查看5个平台的某个端口是否被占用 5个平台为windows, linux, aix, hp, solaris 二、实现方案有两种 1...

python实现按行切分文本文件的方法

本文实例讲述了python实现按行切分文本文件的方法。分享给大家供大家参考,具体如下: python脚本利用shell命令来实现文本的操作, 这些命令大大减少了我们的代码量。 比如按行切...