Python 二次方程
以下实例为通过用户输入数字,并计算二次方程:
实例(Python 3.0+)
# Filename : test.py
# author by : study.p2hp.com
# 二次方程式 ax**2 + bx + c = 0
# a、b、c 用户提供,为实数,a ≠ 0
# 导入 cmath(复杂数学运算) 模块
import cmath
a = float(input('输入 a: '))
b = float(input('输入 b: '))
c = float(input('输入 c: '))
# 计算
d = (b**2) - (4*a*c)
# 两种求解方式
sol1 = (-b-cmath.sqrt(d))/(2*a)
sol2 = (-b+cmath.sqrt(d))/(2*a)
print('结果为 {0} 和 {1}'.format(sol1,sol2))
执行以上代码输出结果为:
$ python test.py 输入 a: 1 输入 b: 5 输入 c: 6 结果为 (-3+0j) 和 (-2+0j)
该实例中,我们使用了 cmath (complex math) 模块的 sqrt() 方法 来计算平方根。
Python3 实例



immortal.lyth
lee***m@gmail.com
import math a,b,c = input("请输入3个数字(空格分隔):").split() a = float(a) b = float(b) c = float(c) d = (b**2) - (4*a*c) if a==0 and b==0 and c==0 : print("有无穷个解") elif d >= 0: x1 = (-b-d/(2*a)) x2 = (-b+d/(2*a)) print('结果为:%.2f,%.2f'%(x1,x2)); else: print("无解")这样考虑到了无穷解与无解的情况哦
immortal.lyth
lee***m@gmail.com
cindyliu
916***457@qq.com
#二次方程式 ax**2 + bx + c = 0 #输入a、b、c #输出 x 的解 #x1=(-b+sqrt(b**2-4ac))/2a #x2=(-b-sqrt(b**2-4ac))/2a #导入 cmath(复杂数学运算)模块 import cmath import math #输入a、b、c a = float(input("a的值:")) b = float(input("b的值:")) c = float(input("c的值:")) #计算得到d d = b * b - 4 * a * c print("d的值:{}".format(d)) if d == 0: x = -b / 2 * a print("x的值{}".format(x)); elif d > 0: x1 = (-b + math.sqrt(d)) / (2 * a) x2 = (-b - math.sqrt(d)) / (2 * a) print("x1的值{0},x2的值{1}".format(x1,x2)) else: x1 = (-b + cmath.sqrt(d)) / (2 * a) x2 = (-b - cmath.sqrt(d)) / (2 * a)cindyliu
916***457@qq.com
傻瓜+笨蛋
271***345@qq.com
参考方法:
#coding=utf8 # 二次方程式 ax**2 + bx + c = 0 # 输入a、b、c # 输出 x 的解 # x1=(-b+sqrt(b**2-4ac))/2a # x2=(-b-sqrt(b**2-4ac))/2a import math import unicodedata # 定义函数判断输入数据是否为数字 def is_number(s): try: float(s) return True except ValueError: pass try: unicodedata.digit(s) # digit 把一个合法的数字字符串转换为数字值 return True except (TypeError, ValueError): pass return False a = input('输入 a:') b = input('输入 b:') c = input('输入 c:') if is_number(a) and is_number(b) and is_number(c): a = float(a) b = float(b) c = float(c) if a == 0 and b == 0: print('不是方程式,不需要解!') elif a == 0 and b != 0: x = -c / b print('为一次方程式,x 结果为:%.2f'%(x)) elif a != 0 and b == 0: d = -c / a if d >= 0: x = math.sqrt(d) print('为一次方程式,x 结果为:%.2f' % (x)) else: print('警告:该方程式无解!!!') elif a != 0 and b != 0: # 计算 d = (b**2) - (4*a*c) # print(d, math.sqrt(d)) # 只有>=0的数才能开平方 if d >= 0 : x1 = (-b - math.sqrt(d)) / (2 * a) x2 = (-b + math.sqrt(d)) / (2 * a) print('结果为:x1 = %.2f,x2 = %.2f' % (x1, x2)) else: print('警告:该方程式无解!!!') else: print('error') else: print('请输入数字类型!!!')傻瓜+笨蛋
271***345@qq.com