方法阐述,前提铺垫
实现了一元二次方程的求解,并且包含了用户输入的一切情况,将求解一元二次方法的方法的放在一个模块中以便于在应用程序中更好的调用。用户输入二次方程可求解,输入一次方程的形式会求解一次方程并给出解,输入汉字等非数字和空可给出提示。本篇只是测试方法。【小主用的python版本是python3.7,编译器是pycharm.电脑是Windows操作系统。】
功能实现模块:附上以下代码:
1、方法模块
# -*- coding: utf-8 -*-#
#-------------------------------------------------------------------------------
# Name: testClass
# Description:
# Author: 魔法师的魔法书
# Date: 2019/12/14
#-------------------------------------------------------------------------------
import math
class appClassT:
#def __init__(self,a,b,c):
# self.a = a
# self.b = b
# self.c = c
#computer( a, b, c)是一元二次方程的实现主方法, isFloat(x)主要是尝试是否可以字符串转化成float型数据
#computer( a, b, c)有一个含有三个元素组成的一个列表的返回值,列表的第三个元素存储数据处理的判断结果
def computer( a, b, c):
a = str(a)
b = str(b)
c = str(c)
if not (a and b and c):
jie = [0, 0, 'none']#输入了空
return jie
a = appClassT.isFloat(a)
b = appClassT.isFloat(b)
c = appClassT.isFloat(c)
if a=='False' or b=='False'or c=='False':
jie = [0, 0, 'error']#非法输入了不能转化为float的数据
return jie
if a != 0:
# if b==False or c==False:
# jie = [0, 0, 'error']
# return jie
delta = b ** 2 - 4 * a * c
if delta < 0:#虚根求解
rel = str(-b / (2 * a))
imag = str(math.sqrt(-delta) / 2) + "i"
x1 = rel + "-" + imag
x2 = rel + "+" + imag
elif delta == 0:
s = -b / (2 * a)
x1 = s
x2 = s
else:#实根求解
root = math.sqrt(delta)
x1 = (-b + root) / (2 * a)
x2 = (-b - root) / (2 * a)
x1 = str(x1)
x2 = str(x2)
print(x1)
jie = [x1, x2, 'two']
return jie
elif a == 0 and b and c:
if b == 0:
jie = [0, 0, 'error']
return jie
else:
jie = -c / b
jie = [jie, 0, 'one']
return jie
else:
jie = [0, 0, 'error']
return jie
def isFloat(x):#数据类型转化
try:
x = float(x)
return x
except:
return 'False'
2、测试模块
# -*- coding: utf-8 -*-#
#-------------------------------------------------------------------------------
# Name: app
# Description:
# Author: 魔法师的魔法书
# Date: 2019/12/14
#-------------------------------------------------------------------------------
from test.def_toapp.app.testClass import appClassT
def main()
#一元二次方程方法测试
a=1,b=1,c=1
a1=0,b1=1,c1=1
a2='',b2=1,c2=1
list0=[]
list1=[]
list2=[]
list0=appClassT.computer(a,b,c)
list1=appClassT.computer(a1,b1,c1)
list2=appClassT.computer(a2,b2,c2)
print(list0)
print(list1)
print(list3[2])
if __name__ == '__main__':
main()