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.pswp.cn/news/537278.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/537278.shtml
英文地址,請注明出處:http://en.pswp.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…