猫史档案馆


【Python作品分享】一元二次方程计算器可画二次函数

用户:scpppppppscppppppp查看:0 回复:1 评论:0 创建时间:2023-08-25T13:46:28


【作品展示】

center_image

 

【作品介绍】

1.可以计算一元二次方程的根但是只能输入一元二次方程一般式中的a,b,c

2.可以变成二次函数表达式

3.计算韦达定理

4.画函数图像

5,知道y求x,知道x求y的值

还有由于本人才玩python一星期所以代码很烂

 

【作品源代码】

import numpy as np
import matplotlib.pyplot as plt
import math
#输入一元二次表达式ax²+bx+c=0的a值b值c值
print('这是一个二元一次函数的计算器现请输入一元二次的一般式中的a值,b值,c值')
wwww = 1
while (wwww == 1):
        a = float(input('请输入a值'))
        b=float(input('请输入b值'))
        c=float(input('请输入c值'))
        #d为那个三角形delaet,**是乘方
        d=b**2-4*a*c
        #判断deleat的取值是大于0,还是等于0.还是小于0
        if d>0:
        #方程的两个根的计算math.sprt是调用math函数库的算书平方根    
            e = (-b+math.sqrt(d))/(2*a)
            f = (-b-math.sqrt(d))/(2*a)
            print('√1=1  √2=1.414  √3=1.732  √4=2  √5=2.236  √6=2.449  √7=2.656  √8=2.828  √9=3  √10=3.162')
        #计算伟达定理,也就是x1乘x2和x1+x2的快速值
            print('此方程有两个根',e,f)
            h=c/a
            l=-b/a
            print('此方程的x1*x2=',h,'此方程的x1+x2=',l)
        elif d==0:
            g=(-b/(2*a))
            print('此方程有一个根',g)
        else:
            print('此方程无实数根')
        #计算一元二次函数表达式的公式
        v=-b/2*a
        n=(4*a*c-b**2)/(4*a)
        #输出结果
        print('此方程的二次函数表达式为y=',a,'×(x','-(',v,')',')**2','+(',n,')')
        print('顶点坐标为(',v,',',n,')')
        print('此方程的delaet为:', d)
        #am是判断采用x的y或者知道y求x的值
        #cm是输入x的值
        #ll是y的值
        #tt是输入y的值
        #mn是之后c的值
        #mb是之后的deleat值
        #ee.rr是之后y对应的x值
        am = int(input("知道x求对应的y值请按6,知道y的值求x请按7。如果想获得函数图像按除6或7的任意整数"))
        if am==6:
            cm=float(input('请输入x的值'))
            ll=a*(cm**2)+b*cm+c
            print('x轴对应的y值为',ll)
        elif am==7:
            tt=float(input('请输入y的值'))
            mn=c-tt
            mb=b**2-4*a*mn
            if mb>0:
                ee=(-b+math.sqrt(mb))/(2*a)
                rr=(-b-math.sqrt(mb))/(2*a)
                print('y轴对应的x值为',ee,rr)
            elif mb==0:
                mc=(-b)/(2*a)
                print('y轴对应的x值为',mc)
            else :
                print('没有对应的x值')
        else :
            werty=int(input('如果想获得函数图像请输入50'))
            if werty==50:
                def plot_quadratic_function(a, b, c):
                    x = np.linspace(-10, 10, 400)
                    y = a * x**2 + b * x + c

                    plt.plot(x, y)
                    plt.xlabel('x')
                    plt.ylabel('y')
                    plt.title('Quadratic Function')

                    ax = plt.gca()
                    ax.set_aspect(1)  # 设置横纵坐标比例相等
                    ax.set_xticks(np.arange(-10, 11, 1))
                    ax.set_yticks(np.arange(min(y)-20, max(y)+20, 1))
                    plt.grid(True)
                    plt.show()
                plot_quadratic_function(a, b, c)

        
        
        
            

            
        print('输入等于10的整数退出,如果想继续计算输入除10的任意整数')
        erfg=int(input())
        if erfg==10:
            break
        print('下一道题')
print('感谢您的使用创作人高鼎翔')

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
Error418Error418

这里给一下建议

1   math.sqrt(a)可以直接用a**0.5代替,本来可以开方

2   判断一下a是不是0

3   def应该提上来到程序最前面

 

点赞0


评论