python怎么算⼆元⼀次⽅程_使⽤python实现解析⼆元⼀次⽅
程
⼆元⼀次函数的实现
给长辈拜年的祝福语import cmath
import math
import sys
这⾥导⼊cmath包是在后⾯⽤来处理复数的情况
导⼊math使⽤来处理 平⽅ 根号等的运算
⽽导⼊sys的意义是为了⽐较0 ,在python中float的精度值不够,所以在计算复数时需要⽤到sys.float_info.epsilon
def get_float(msg,allow_zero):
x =None
while x is None:
try:英文名字大全
x= float(input(msg))
if not allow_zero and abs(x) < sys.float_info.epsilon:
快速止牙痛的6个简单方法#在python中float是双精度,精度不够,在⽐较时容易出错,所以需要⽤函数sys.float_info.epsilon
#sys.float_info.epsilon代表⽆限接近 0,是机器可以区分出的两个浮点数的最⼩区别
print('不允许为0')
x = None
except ValueError as err:
print(err)
return x
实习期上高速
这个函数是⽤来读取⽤户输⼊的数字,并对其进⾏判定是否满⾜⼆元⼀次⽅程式的标准
对输⼊值进⾏判定是否为数字类型:
是 -> 则进⾏下⼀步,将变量赋值
不是 -> 返回错误信息,并要求重新输⼊数值
print('ax\N{SUPERSCRIPT TWO}+bx+c=0')
#\N{SUPERSCRIPT TWO} 代表显⽰上标⼀个2
ax²+bx+c=0
人生4大喜事a = get_float('enter a: ',False)
b = get_float('enter b: ',True)
c = get_float('enter c: ',True)
中国十大机场x1 = None
x2 = None
discriminant = (b**2)-(4*a*c)
if discriminant == 0:
x1 = -(b/(2*a))
else:
if discriminant >0:
root = math.sqrt(discriminant)
else:
root = cmath.sqrt(discriminant)
x1 = (-b+root)/(2*a)
x2 = (-b-root)/(2*a)
equation = ("{0}x\N{SUPERSCRIPT TWO}+{1}x+{2}=0" " \N{RIGHTWARDS ARROW} x={3}").format(a,b,c,x1) # \N{RIGHTWARDS ARROW} 代表显⽰⼀个箭头标识(→) if x2 is not None:
equation +=' or x={0}'.format(x2)
print(equation)
enter a: 1
enter b: 2
enter c: 1
1.0x²+
2.0x+1.0=0 → x=-1.0
取到a b c 的值后 对(b²-4ac)进⾏计算,
当计算出来的值为0时,表⽰只有⼀个解为
当计算出来的值⼤于0时,表⽰有两个解
当计算出来的值⼩于0时,表⽰有两个复数解
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论