python一元加号_Python一元方程解算系统(需要Sympy库支持)

解算案例

本文为实现python一元方程解算的源码案例(后续不定期更新)

# -*- coding: UTF-8 -*-

from sympy import *

#设置一些可能抛出的异常

def Warn(type):

if type == "missEquater":

print "You missed the euqater!"

elif type == "excessiveEquater":

print "You entered too much equater!"

#检查输入方程是否有超过一个等号

def CheckEquation_1(equation):

equalNums = 0

for char in equation:

if char == "=":

equalNums += 1

return equalNums

#纯化等式,去掉空格

def PurifyEquation(equation):

PureEquation = ""

for char in equation:

if char != " ":

PureEquation += char

return PureEquation

#标准化等式方法

def NormalizationEquation_1(equation):

resultEquation = ""

numbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']

letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

index = 1

for char in equation:

if index < len(equation):

if char in numbers and equation[index] in letters:

resultEquation += char + "*"

else:

resultEquation += char

else:

resultEquation += char

index += 1

return resultEquation

#右式化简方案(传入右式)

def RightSimplify(equation):

#最终输出结果

simplifiedEquation = []

#补上加号

if equationIn[0] != "-" and equationIn[0] != "+":

equation = "+" + equation

#print equation

#获取各个单项式的去符号结果

rightEquationContents = equation.replace("+", " ").replace("-", " ").split(" ")

rightEquationContents.remove("")

#获取各个单项式符号

rightSymbols = []

for char in equation:

if char == "+":

rightSymbols.append("+")

elif char == "-":

rightSymbols.append("-")

#将单项式(去符号)与单项式合并写入返回值列表

currentIndex = 0

for contents in rightEquationContents:

simplifiedEquation.append([rightSymbols[currentIndex], contents])

#递增指针

currentIndex += 1

#返回处理结果

return simplifiedEquation

equationIn = raw_input("Equation here:")

print "Puring equation..."

equationIn = PurifyEquation(equationIn)

print equationIn

print "Normalizing equation..."

equationIn = NormalizationEquation_1(equationIn)

print equationIn

equalNums = CheckEquation_1(equationIn)

if equalNums == 0:

Warn("missEquater")

elif equalNums > 1:

Warn("excessiveEquater")

else:

print "Split the equation..."

#分离等式左右两边

splitedEquation = equationIn.split("=")

#左式准备

leftEquation = splitedEquation[0]

print splitedEquation

print "Split the right side of the equation..."

rightEquation = RightSimplify(splitedEquation[1])

print rightEquation

#循环右边的单项式

for single in rightEquation:

if single[0] == '+':

leftEquation += '-' + single[1]

else:

leftEquation += '+' + single[1]

print "Standard form simplified: " + leftEquation + "=0"

   print solve(leftEquation, "x")

之前写的粒子模拟引擎未来会用上新的解算系统

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/537278.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

接口做的好怎么形容_淘宝直播预告怎么做才合格?如何做好?

很多淘宝商家在直播前没有做淘宝直播预告&#xff0c;或者不知道怎么去做直播预告&#xff0c;这对直播的效果会有很大的影响&#xff0c;那么直播前如何做好直播预告呢?怎样的直播预告才是合格的&#xff0c;下面来了解一下。1.必须去淘宝直播中控台发布。因为手机上发布目前…

“1+7+N”改革工作体系介绍

2021年&#xff0c;浙江省确定了“17N”的改革工作体系&#xff0c;要求以全面深化改革新成效再创体制机制新优势。&#xff08;2022年已经升级为“1612N”&#xff0c;点击阅读&#xff09; “1” 数字化改革&#xff0c;这是浙江全面深化改革的总抓手。将聚焦打造全球数字变…

傻傻分不清的javascript运行机制

学习到javascript的运行机制时&#xff0c;有几个概念经常出现在各种文章中且容易混淆。Execution Context(执行环境或执行上下文)&#xff0c;Context Stack (执行栈)&#xff0c;Variable Object(VO: 变量对象)&#xff0c;Active Object(AO: 活动对象)&#xff0c;LexicalEn…

浙江省数字化改革回顾(2022年5月)

事业的伟大在于目标的壮丽&#xff0c;也在于过程的壮丽&#xff1b;改革的成果在于享有的丰富&#xff0c;也在于经历的丰富。2021年2月18日&#xff0c;春节假期后首个工作日&#xff0c;浙江省委召开全省数字化改革大会&#xff0c;在全国率先开启数字化改革探索实践。此后&…

python 某个数是不是在某个范围内_教写一个简单的python小程序(04)

点击蓝字关注我们 会酸的柚子Python爱好者搞机少年七夕结束了~酸柚也是被强塞了满嘴的狗粮在这样充满恋爱腐朽气息的一天酸柚也是马不停蹄的在赶稿子兄弟们&#xff0c;给我顶起来呀~我们来看看今日的题目可能很多小伙伴对完全平方数这个概念有点生疏了完全平方数数学上&#x…

Python:模块module

python中一个模块就是一个扩展名为.py的文件&#xff0c;也可能是预编译的.pyc文件。 引入模块用&#xff1a;import 模块名 使用引用模块中定义的标识符&#xff08;函数、变量、类&#xff09;用&#xff1a;模块名.标识符名 引入模块中的标识符用&#xff1a;from 模块名 im…

浙江公布2022年数字化改革“最系列“成果 评选出最佳应用104项

10月29日&#xff0c;省委改革办&#xff08;省数改办&#xff09;公布了2022年数字化改革“最系列”成果。该评选由省委改革办&#xff08;省数改办&#xff09;会同省委政研室、省人大常委会法工委、省市场监管局和省大数据局共同开展&#xff0c;评选了最佳应用104项、最强大…

dot net core 使用 IPC 进程通信

原文:dot net core 使用 IPC 进程通信版权声明&#xff1a;博客已迁移到 http://lindexi.gitee.io 欢迎访问。如果当前博客图片看不到&#xff0c;请到 http://lindexi.gitee.io 访问博客。本文地址 https://blog.csdn.net/lindexi_gd/article/details/79946496 dot net core 使…

python可变类型和不可变深浅拷贝类型_python3笔记十四:python可变与不可变数据类型+深浅拷贝...

一&#xff1a;学习内容python3中六种数据类型python赋值python浅拷贝python深拷贝二&#xff1a;python3六种数据类型1.六种数据类型Number(数字)string(字符串)List(列表)Tuple(元祖)Set(集合)Dictionary(字典)2.六种数据类型分类不可变数据(3个)&#xff1a;Number、String、…

Android手机用wifi连接adb调试的方法

https://www.jianshu.com/p/dc6898380e38 0x0 前言 Android开发肯定要连接pc的adb进行调试&#xff0c;传统的方法是用usb与pc进行连接&#xff0c;操作简单即插即用&#xff0c;缺点是pc上必须得有对应手机的usb驱动程序&#xff0c;对于谷歌亲儿子系列和三星摩托等外国品牌而…

控制台应用程序换换为窗体应用_Epic为开发者设计了一套iPhone使用的运动捕捉应用程序...

玩懂手机网7月13日资讯&#xff0c;我们都知道对于游戏或者是动漫开发者来说&#xff0c;运动捕捉设备是一套非常昂贵的设备&#xff0c;需要非常专业的独立开发人员&#xff0c;大量的时间才能完成&#xff0c;最近Epic为开发者设计了一套iPhone使用的运动捕捉应用程序。这套i…

蚂蚁金服亿级并发下的移动端到端网络接入架构解析

为了与金融从业者、科技从业者共同探讨金融 业务的深层次问题&#xff0c;蚂蚁金服联手 TGO 鲲鹏会上海分会&#xff0c;在 12 月 8 日举办了「走进蚂蚁金服&#xff1a;双十一背后的蚂蚁金服技术支持」活动。蚂蚁金服高级技术专家贾岛为大家分享了《亿级并发下的蚂蚁移动端到…

python3.12答案_编程常见问题

通常&#xff0c;不要使用 from modulename import * 。这样做会使导入器的命名空间变得混乱&#xff0c;并且使得连接器更难以检测未定义的名称。在文件的顶部导入模块。这样做可以清楚地了解代码所需的其他模块&#xff0c;并避免了模块名称是否在范围内的问题。每行导入一个…

如何根据视频的宽屏与竖屏来排序?

原理 宽屏与竖屏是根据 帧高度 与 帧宽度 来区分的 帧高度就是图片高度&#xff08;纵向的像素尺寸&#xff09;&#xff0c;帧宽度就是图片宽度&#xff08;横向的像素尺寸&#xff09;&#xff0c;分辨率就是&#xff08;高度x宽度&#xff09;。 windows11的文件排序&…

HashiCorp Vault 1.0开源自动解封特性,新增Batch令牌

HashiCorp发布了其秘密管理工具Vault 的1.0版本&#xff0c;并开源了在发生故障或重启后继续使用Vault服务器所需的“自动解封&#xff08;auto-unseal&#xff09;”特性。这个版本提供了一种可以用于临时工作负载的新令牌batch。另一个新特性是&#xff0c;Kubernetes auth现…

sap模块介绍_小迈说|SAP究竟有多少模块?

SAP究竟有哪些模块继上一期小迈说SAP&#xff01;SPA&#xff1f;的区别&#xff0c;相信大部分读者明白了我们与水浴按摩行业的分别&#xff0c;可是仅仅区分名字还不够&#xff0c;SAP还有众多的模块&#xff0c;这些又该怎么去了解呢&#xff1f;这就轮到肩负爱与责任的小迈…

360 再次开源管理平台 Wayne:基于企业级 Kubernetes 集群

2019独角兽企业重金招聘Python工程师标准>>> 奇虎 360 宣布正式开源 Wayne &#xff0c;这是一个由 360 搜索云平台团队开发的通用的、基于 Web 的 Kubernetes 多集群一站式可视化管理平台。内置了丰富多样的功能&#xff0c;满足企业的通用需求&#xff0c;同时插件…

python setup.py install 出错_python setup.py install 失败

python setup&period;py install 报错ImportError&colon; No module named setuptools学习光荣之路python课程时,使用python setup.py install安装其他模块时,第一次安装某模块成功了.安装另一模块却报错ImportError: No module named s ...对于python setup&perio…

Node.js 根本没有这样搞性能优化的?

1、使用最新版本的 Node.js 仅仅是简单的升级 Node.js 版本就可以轻松地获得性能提升&#xff0c;因为几乎任何新版本的 Node.js 都会比老版本性能更好&#xff0c;为什么&#xff1f; Node.js 每个版本的性能提升主要来自于两个方面&#xff1a; V8 的版本更新&#xff1b;Nod…