求ax(2)+bx+c=0的解

简介: import cmathimport mathimport sys 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.

import cmath
import math
import sys

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:    #float_info.epsilon为接近0值的浮点数,因计算机浮点数只能无限接近0
    print("zero is not allowed")
    x = None
  except ValueError as err:
   print(err)
 return x
 
print("ax2 + bx +c = 0")
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))
 print(x1)
else:
 if discriminant > 0: 
  root = math.sqrt(discriminant)
 else:
  root = cmath.sqrt(discriminant)   #cmath为复数形式
 x1 = (-b+root)/(2*a)
 x2 = (-b-root)/(2*a)
 print(x1)
 print(x2)

相关文章
|
2月前
求一元二次方程:ax2+bx+c=0 的根
【10月更文挑战第15天】求一元二次方程:ax2+bx+c=0 的根。
63 1
|
3月前
|
人工智能 小程序
ROT5、ROT13、ROT18、ROT47全系列加解密小程序
ROT5、ROT13、ROT18、ROT47全系列加解密小程序
52 0
|
3月前
|
人工智能 小程序
ROT5、ROT13、ROT18、ROT47全系列加解密小程序 原
ROT5、ROT13、ROT18、ROT47全系列加解密小程序 原
57 0
|
7月前
|
索引 存储 C语言
【汇编】[bx+idata]的寻址方式、SI和DI寄存器
【汇编】[bx+idata]的寻址方式、SI和DI寄存器
285 0
【汇编】[bx+idata]的寻址方式、SI和DI寄存器
|
7月前
|
编译器 C语言 C++
xv6(21) 内联汇编
内联汇编
84 1
|
7月前
汇编指令学习(MOV,MOVSX,MOVZX,LEA,XCHG)
汇编指令学习(MOV,MOVSX,MOVZX,LEA,XCHG)
95 0
|
7月前
|
关系型数据库 调度 索引
xv6(2) 启动代码部分
启动代码部分
97 1
|
搜索推荐 Python
【现学现用】matplotlib画图(plt与ax的关系add_subplot与subplots等)
【现学现用】matplotlib画图(plt与ax的关系add_subplot与subplots等)
239 0
【现学现用】matplotlib画图(plt与ax的关系add_subplot与subplots等)