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


本文所述实例为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 解一元一次方程

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

给我90道超级简单的一元一次方程应用题(含答案)

列方程并求出方程式的解
一个数的8倍,比6.4与4.5的积多2.8,求这个数。

一个数的5倍比3.5与6.3的积少3.02,这个数是多少?

甲数比乙数的十分之四多1,已知甲数是2,乙数是多少?

什么数与0.32相乘得25.6?

一个数的15倍比5.6少0.8,这个数是多少?

列方程式解应用题。、
1、甲、乙两个进水管往一个可装8吨水的池里注水,甲管每分钟注水400千克,要想在8分钟注满水池,乙管每分钟注水多少千克?

2、两地相距249千米,一列火车从甲地开往乙地,每小时行55.5千米,行了多少小时还离乙地有27千米?

3、买5个本子和3支铅笔一共用去10.4元,已知铅笔每支0.9元,每本子多少元?

4、服装厂要做984套衣服,已经做了120套,剩下的要在12天内完成平均每天做多少套?

5、电机厂计划生产1980台电动机,已经生产了4天,每天生产45台,由于改进了技术,以后每天比原来增产15台,实际完成任务需几天?

6、学校买来乒乓球和篮球一共135个,买来的乒乓球是篮球的8倍,两种球各多少个?

7、图书馆买来文艺科技书共235本,文艺书的本数比科技书的2倍多25本,两种书各买了多少本?

8、甲、乙、丙三人为灾区捐款共270元,甲捐的是乙捐的3倍,乙是丙的两倍,三人各捐多少元?

9、A、B两个码头相距379.4千米,甲船比乙船每小时快3.6千米,两船同时在这两个码头相向而行,出发后经过三小时两船 还相距48.2千米,求两船的速度各是多少?

附加题:
   1、甲、乙两辆汽车分别以每小时100千米和120千米的速度从A城开往B城。甲车比乙车早1小时离开A城,但两车同时到达B城。求两城间的路程?(不用方程解答:追击问题)
 

评论关闭