基于python编程的一元二次方程的求解(未考虑虚数情况)

基于python编程的一元二次方程的求解

写在前面的话:
我是单纯感兴趣才开始自学python的,听的是中国大学MOOC(慕课)网的哈尔滨工业大学车万翔老师的授课《高级语言程序设计(Python)CAP》,网址分享给大家:
https://www.icourse163.org/learn/HIT1001616002tid=1003006007#/learn/announce。
所以说呢我也是作为一个python的初学者,也可以称作是“小白”来写这篇博客的。希望能给需要帮助的同学朋友们一点解惑。

程序流程图:

写代码最开始就是要画一个程序流程图,保证思维的严谨也便于编程。在求解一元二次方程,我所根据的流程图如下:
基于python编程的一元二次方程的求解(未考虑虚数情况)_第1张图片

话不多说直接上代码

 #!/usr/bin/python3
 #利用条件、循环语句实现一元二次方程的反复求解
import math
caculate = 1;
while(caculate):
    caculate = 0;
    # 输入一元二次方程三个参数值a,b,c
    a = float(input('请输入a的值 a = '));
    b = float(input('请输入b的值 b = '));
    c = float(input('请输入c的值 c = '));
    # 计算deta = b*b-4*a*c
    deta = b**2-4*a*c;
    # 根据a是否为0判断方程是否为一元二次方程
    if a != 0:# a != 0 为一元二次方程
        # 根据deta大小说明方程根的情况
        if deta > 0:# deta > 0 :方程有两个不同实根
            s1 = (-b + math.sqrt(deta)) / (2 * a);
            s2 = (-b - math.sqrt(deta)) / (2 * a);
            print("方程有两个不同实根:""\n s1 = ", s1, "\n s2 = ", s2);
        if deta == 0:# deta = 0 :方程有两个相同实根
            print("方程有两个相同实根:s1 = s2 =",s1);
        if deta < 0:# deta < 0 :方程无实根
            print("方程无实根!请检查后重新输入");
    else:# a == 0 为一次方程
          s = -c / b;
          print("方程为一次方程,其根:s = ",s);
    # 判断是否进入下一次计算
    ch = input('enter the next caculate?(Y/N):');
    if ch == 'n'or ch == 'N'print("计算已结束!");
        break  # 跳出循环不进入下一次计算
    elif ch == 'Y'or ch == 'y':
        caculate = 1;
        print("请再次输入a,b,c的值:");
    else:
        print("输入错误请重新输入:");
        ch = input('enter the next caculate?(Y/N)');
        while True:
            if ch != 'n' and ch != 'N'and ch != 'Y' and ch != 'y':
            # 输入的值不在集合{N,Y,n,y}内
                print("输入错误请重新输入:");
                ch = input('enter the next caculate?(Y/N)');
            else:
                if ch == 'n' or ch == 'N':
                    print("计算已结束!");
                    break; # 跳出当前循环
                else :
                    print("请再次输入a,b,c的值:");
                    caculate = 1;
                    break; # 跳出当前循环

运行结果截图展示

接下来我将本代码的运行结果大致分为如下四种情况,截图展示给大家,如果不够欢迎大家补充:
运算完毕直接退出
基于python编程的一元二次方程的求解(未考虑虚数情况)_第2张图片
运算完毕进行下一次运算
基于python编程的一元二次方程的求解(未考虑虚数情况)_第3张图片
输入有误重新输入计算
基于python编程的一元二次方程的求解(未考虑虚数情况)_第4张图片
输入有误退出计算
基于python编程的一元二次方程的求解(未考虑虚数情况)_第5张图片

编译器版本

我采用的编译器是pycharm 2018.2.2版本。下载地址:https://www.jetbrains.com/pycharm/download/安装说明:https://blog.csdn.net/u014044812/article/details/78727496

不足

整体来看,代码的不足还有未考虑虚根的情况,还有就是整个代码不够简化,还有优化的空间。
.

致谢

最后感谢我的学弟林楚洁和我的“老板”李璐对我在编程方面的指导,从而完成代码的编写。


你可能感兴趣的:(简单代码编写)