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

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

class Solution(object):
    def exec(self, equation):
        vars = None
        eqList = list(equation)
        denth = 0
        for i,each in enumerate(equation):
            if each in "abcdefghijklmnopqrstuvwxyz":
                vars = each
                if i == 0:
                    continue
                if equation[i-1] in ‘1234567890‘:
                    eqList.insert(i + denth, ‘*‘)
                    denth += 1

        equation = ‘‘.join(eqList)
        equation1 = equation.replace("=", "-(") + ")"
        c = eval(equation1, {vars: 1j})
        return -c.real/c.imag  

s = Solution()

print(s.exec("3a-1 =a+2"))

  

这篇文章主要介绍了Python实现3行代码解简单的一元一次方程,很适合Python初学者学习借鉴,需要的朋友可以参考下

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


1

2

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

3236.0

功能代码如下:


1

2

3

4

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能有所帮助。

原文地址:https://www.cnblogs.com/bonelee/p/12675517.html

时间: 2025-01-16 22:40:22

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

jquery轮播图详解,40行代码即可简单解决。

我在两个月以前没有接触过html,css,jquery,javascript.今天我却在这里分享一篇技术贴,可能在技术大牛面前我的文章漏洞百出,也请斧正. 可以看出来,无论是div+css布局还是jquery其实真的很简单,只要不停的练习就会有很大进步.每天150行代码,会帮助我们走的更远.对于编程对于脚本语言,我们这样的学生娃没有和比人一样初中,高中就开始研究,要想走在时代的前沿需要怎样的努力和毅力,是我们一类人需要思考的方向. 下面解释下焦点图,焦点图使用范围非常广,banner和anima

100行代码实现简单目录浏览器制作

给大家分享使用Lae软件开发工具开发小应用程序的过程,希望大家喜欢! 界面部分我们用lae软件开发工具实现,无需写代码,业务逻辑部分使用Lae软件开发平台自带的LuaIDE编辑器,使用100行lua代码完成简单目录浏览器的制作. lae软件下载地址: https://github.com/ouloba/laetool.git lae软件下载地址(国内):https://pan.baidu.com/s/1ckMy0Q 相关视频: http://www.tudou.com/listplay/aly7

Python 70行代码实现简单算式计算器

描述:用户输入一系列算式字符串,程序返回计算结果. 要求:不使用eval.exec函数. 实现思路:找到当前字符串优先级最高的表达式,在算术运算中,()优先级最高,则取出算式最底层的(),再进行加减乘除运算.对于加减乘除,也要确立一个优先级,可以使用一个运算符列表,用for循环逐个处理运算符,并且要考虑同级情况(如for遍历至*时,也要考虑同级别的\是否要提前运算).不断循环上述过程,直到最终得到一个结果. 关键点:使用re模块匹配出当前状态下优先级最高的算式. result = re.sear

利用Python的几行代码开发一个QQ机器人!小白也能快速上手的案例

本篇教大家如何用Python来实现QQ机器人,如有不足欢迎在评论方指出! 简单介绍 安装方法 可在 Python个版本下使用,用 pip 安装: pip install qqbot 使用方法 一.启动 QQBot 二.操作 QQBot QQBot 启动后,在另一个控制台窗口使用 qq 命令来操作 QQBot ,目前提供以下命令: list 命令提供强大的联系人查询功能,例如: 如: qq list group 机器人测试 例如: 实现我们自己的 QQ 机器人 要实现咱们自己的QQ 机器人超级简单

Python的130行代码等于1580的行C++的代码 ?Python 的10大谬论

谬误 #1: Python 是一门新语言 伴随着所有的初创公司正在使用它以及孩子们最近也在学习它的事实,这个谬误为何仍然存在是可以理解的.实际上 Python 已经 超过23岁了, 它最初发布于1991年, 早于 HTTP 1.0协议 5年且早于 Java 4年. 目前比较有著名的很早就使用 Python 的例子是在1996年: Google 的第一个成功的网络爬虫. 如果你对于长长的 Python 历史比较好奇,Python 的作者 Guido van Rossum 已经为你准备好整个故事了.

酷毙了!python用37行代码打造属于自己的音乐播放器,附源码

想不想手动打造一款专属于你的播放器,同时练练Python编程? 如果想,那就立即行动吧! 所需库pygametkintermutagen 至于它们的使用,可以浏览一下文档,如果你想做更功能强大的播放器,那必须好好看看哦! 设计思路作为版本0,我们并不想做太复杂的项目.只需实现以下几个功能: 将某个目录下的mp3文件名在listbox中显示 显示当前播放的歌曲名 播放上一首歌曲 播放下一首歌曲 停止播放 获取目录下的mp3文件直接上代码! def directorychooser():direct

48行代码解一道亚马逊的在线笔试题

这题是我从这里看到的一道亚马逊的在线笔试题,具体规则请前往该文章查看,下面贴出我的解题代码: 其中11,12,13,14分别代表J,Q,K,A; class CardCompare { private int[] cards = new int[] { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }; public bool CompareCards(int[] cards1, int[] cards2) { return cardsScore(card

python学习---50行代码实现图片转字符画1

转自:https://blog.csdn.net/mm1030533738/article/details/78447714 项目链接: https://www.shiyanlou.com/courses/370/labs/1191/document from PIL import Image #从PIL模块中引入Image这个类import argparse  #引入argparse这个模块(argparse库是用来管理命令行参数输入的) parser = argparse.ArgumentP

Python十几行代码获取db库新增的poc

1.背景介绍 由于项目需要及个人爱好,我每个月都要下载exploit-db库上的压缩包,更新到自己的漏洞平台上.然而,,在以前都是把exploit的整个文件夹通过远程桌面传到服务器上,由于这个文件夹非常的大,导致每次都需要好长时间才能传完,所以,就想着写个脚本光收集上个月新增的poc. 2.利用工具 Python2.7的os和sys库 3.脚本 首先,db库提供了特别便利的方式,它会有一个excel文件存储漏洞信息,包括poc的文件路径,所以,只要把新增的那些信息放在一个txt文本中,再根据路径