iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >实现一个【伪】四则运算封闭的符号运算和
  • 802
分享到

实现一个【伪】四则运算封闭的符号运算和

符号 2023-01-31 08:01:11 802人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

最后的效果: if __name__ == '__main__': import doctest doctest.testmod() x = Symbols("x") print(x * 2 + 1 ==

最后的效果:

if __name__ == '__main__':
    import doctest
    doctest.testmod()
    x = Symbols("x")
    print(x * 2 + 1 == 8.0 * x + 6).solution

打印:
{'x': -0.8333333333333334}
这里用了8.0是因为众所周知的python2.7+,对于整数除法用的是整除,3/2=1什么的,python3后来有用//这个操作符的,这里不是重点,不用管

昨天快下班的时候事情做完了,于是开始划水,看到sympy是个符号运算的库,我就在想要是让我实现该有多难呢。。感觉真是非常适合新手/高中生的一个题目呢~

好吧,那么我们从四则运算封闭的符号系统做起~

下班后先写了一点,然后吃饭的时候构思了一下,写完啦。今天又补了一点求解一元一次方程。。。

学到的是

  1. 数学方面,符号对四则运算封闭的话,需要额外的两个参数:1、系数,2、次数。例如系数是2,次数是3。发现这个问题之后,果断摒弃了次数。最后实现的符号运算,符号与实数对四则运算封闭,符号与符号对加减封闭(多么偷懒啊哈哈哈哈~原谅我没文化)

  2. Python上,知道了doctest的通过单元测试要实现__repr__方法。
    不然在写文档测试时:

"""
>>> Symbols("x",2) / 4.0
Symbols("x",0.5)
"""

会报如下错误

Failed example:
 Symbols("x",2) / 4.0
Expected:
 Symbols("x",0.5)
Got:
 <__main__.Symbols object at 0x10d5718d0>

丢一个不知道能不能让爬虫爬到。关键词:doctest class test

  1. 还有知道了a+1重载__add__方法,而1+a并不需要重载Int,直接重载a的__radd__就行了。。

多元一次方程的话。。想了想感觉还是挺啰嗦的,就算了。。。
加上次数,感觉要涉及高数了。。。做起来好啰嗦。。
积分。。。阿西BUG,高数忘光了。如果我真的能有机会做的话

代码:https://GISt.GitHub.com/zjjott/0eb6ff1947cd213Dd70a

--结束END--

本文标题: 实现一个【伪】四则运算封闭的符号运算和

本文链接: https://www.lsjlt.com/news/193169.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作