Python实现3行代码解简单的一元一次方程
本文所述实例为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编程实现数学运算求一元二次方程的实根算法示例
本文实例讲述了Python编程实现数学运算求一元二次方程的实根算法.分享给大家供大家参考,具体如下: 问题: 请定义一个函数quadratic(a, b, c),接收3个参数,返回一元二次方程:ax² + bx + c = 0的两个解. 实现代码: #!/usr/bin/env python # -*- coding: utf-8 -*- import math def quadratic(a,b,c): if a == 0: raise TypeError('a不能为0') if not is
-
Python中的数学运算操作符使用进阶
Python中对象的行为是由它的类型 (Type) 决定的.所谓类型就是支持某些特定的操作.数字对象在任何编程语言中都是基础元素,支持加.减.乘.除等数学操作. Python的数字对象有整数和浮点数,支持各种数学操作,比如+, -,*, /等. 没有这些操作符,程序中只能使用函数调用的方式进行数学运算,比如add(2, 3), sub(5, 2). 程序中操作符的作用与普通数学操作的用法是一致的,使用中更加简便直观.Python中,这些操作符实现是通过定义一些object的特殊方法实现的,比如o
-
Python中的自定义函数学习笔记
定义一个什么都不做的函数 复制代码 代码如下: >>> def a(): ... pass ... >>> def printHello(): ... print("hello") ... >>> printHello() hello >>> callable(printHello) True 顾名思义,callable函数用于判断函数是否可以调用: 有书上说,callable在Python3.0中已经不再使用,而
-
python实现RSA加密(解密)算法
RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准. 今天只有短的RSA钥匙才可能被强力方式解破.到2008年为止,世界上还没有任何可靠的攻击RSA算法的方式.只要其密钥的长度足够长,用RSA加密的信息实际上是不能被解破的.但在分布式计算和量子计算机理论日趋成熟的今天,RSA加密安全性受到了挑战. RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥.
-
详解Python编程中基本的数学计算使用
数 在 Python 中,对数的规定比较简单,基本在小学数学水平即可理解. 那么,做为零基础学习这,也就从计算小学数学题目开始吧.因为从这里开始,数学的基础知识列位肯定过关了. >>> 3 3 >>> 3333333333333333333333333333333333333333 3333333333333333333333333333333333333333L >>> 3.222222 3.222222 上面显示的是在交互模式下,如果输入 3,就显
-
简单讲解Python中的数字类型及基本的数学计算
Python有四种类型的数字: 1.整型 a = 2 print a 2.长整型 b = 123456789 print b 3.浮点数 c = 3.2E2 print c 4.复数 复数为实数的推广,它使任一多项式都有根.复数当中有个"虚数单位"j,它是-1的一个平方根.任一复数都可表达为x+yj,其中x及y皆为实数,分别称为复数之"实部"和"虚部". d = (2+3j) print d 计算示例: 每种程序语言都有数学计算方法,数学符号通用
-
Python算法之栈(stack)的实现
本文以实例形式展示了Python算法中栈(stack)的实现,对于学习数据结构域算法有一定的参考借鉴价值.具体内容如下: 1.栈stack通常的操作: Stack() 建立一个空的栈对象 push() 把一个元素添加到栈的最顶层 pop() 删除栈最顶层的元素,并返回这个元素 peek() 返回最顶层的元素,并不删除它 isEmpty() 判断栈是否为空 size() 返回栈中元素的个数 2.简单案例以及操作结果: Stack Operation Stack Contents Return
-
用Python做的数学四则运算_算术口算练习程序(后添加减乘除)
最近着迷上了 Python 用Python给小宝做的数学算数口算练习程序(2015年1月添加四则运算)! 给小宝做的口算游戏: #用Python给小宝做的数学算数口算练习程序(2015年1月添加四则运算)! #给小宝做的口算游戏: import string import random input=11 nums=10 num=0 righ1t=0 #分数# flagwrong=0 #没错过 print e[1;34mThis text is bold blue.e[0m print 一共有%d
-
python实现的各种排序算法代码
复制代码 代码如下: # -*- coding: utf-8 -*-# 测试各种排序算法# link:www.jb51.net# date:2013/2/2 #选择排序def select_sort(sort_array): for i, elem in enumerate(sort_array): for j, elem in enumerate(sort_array[i:]): if sort_array[i] > sort_array[j + i]
-
Python3.2中的字符串函数学习总结
Sequence Types sequence类型有六种:strings, byte sequences (bytes objects), byte arrays(bytearray objects), list, tuple, range objects. sequence类型都支持的通用操作: 成员检查:in.not in 连接:+ 复制:* 下标取值:s[i] 切片:s[i : j] 长度检查:len(s) 最小值:min(s) 最大值:max(s) 索引取值:s.index(i) 字符串
-
Python函数学习笔记
局部名字静态检测 Python探测局部作用域的时候:是在python编译代码时检测,而不是通过他们在运行时的赋值. 正常的情况下,没在函数中复制的名字将在包含它的模块中查找: >>> x=99 >>> def selector(): ... print x ... >>> selector() 99 但是: >>> def selector(): ... print x ... x=100 ... >>> selec
-
python计算方程式根的方法
本文实例讲述了python计算方程式根的方法.分享给大家供大家参考.具体实现方法如下: ''' roots = polyRoots(a). Uses Laguerre's method to compute all the roots of a[0] + a[1]*x + a[2]*x^2 +...+ a[n]*x^n = 0. The roots are returned in the array 'roots', ''' from evalPoly import * from numpy i
-
Python的math模块中的常用数学函数整理
在数学之中,除了加减乘除四则运算之外--这是小学数学--还有其它更多的运算,比如乘方.开方.对数运算等等,要实现这些运算,需要用到 Python 中的一个模块:Math 模块(module)是 Python 中非常重要的东西,你可以把它理解为 Python 的扩展工具.换言之,Python 默认情况下提供了一些可用的东西,但是这些默认情况下提供的还远远不能满足编程实践的需要,于是就有人专门制作了另外一些工具.这些工具被称之为"模块" 任何一个 Pythoner 都可以编写模块,并且把这
随机推荐
- Java中synchronized关键字修饰方法同步的用法详解
- jquery中post方法用法实例
- jQuery 中关于CSS操作部分使用说明
- jfinal添加jcaptcha验证码实现方法
- Oracle 12C实现跨网络传输数据库详解
- php实现文本数据导入SQL SERVER
- Android 短信转换成彩信的消息数量(实例代码)
- DOM节点的替换或修改函数replaceChild()用法实例
- jQuery轻松实现表格的隔行变色和点击行变色的实例代码
- 使用 jQuery.ajax 上传带文件的表单遇到的问题
- javascript验证内容为数字以及长度为10的简单实例
- 用智能abc的朋友进来看看,怎么为它提速
- php中使用$_REQUEST需要注意的一个问题
- 深入剖析Java编程中的序列化
- Android开发中MotionEvent坐标获取方法分析
- Python爬虫番外篇之Cookie和Session详解
- Python+tkinter使用40行代码实现计算器功能
- 详解vue服务端渲染浏览器端缓存(keep-alive)
- Java8中利用stream对map集合进行过滤的方法
- 详解Android过滤emoji表情正则表达式