目录

前言

一、算法实现

二、TK 图形化界面

三、一元二次方程计算器 - 完整代码

参考资料


前言

一元二次方程想必大家都不陌生。在中学时,我们学过求根公式:

当 b² - 4ac 大于零时,方程有两个解;等于零时有一个解;小于零时则无解。

那么就把数学公式变成代码!我们说干就干。


一、算法实现

首先导入要用到的数学库 math

import math

知识点:连续输入多个 float 型数字

a,b,c = map(float,input("对于方程a^2x+bx+c=0, \n请输入a,b,c(空格隔开):").split())
# Tips: 可以通过.split(',') 将输入的分隔符改为逗号

通过求根公式解方程

k = b*b-4*a*c# 知识点:if 判断语句的使用
if k < 0 :print('方程无解')# 注意,逻辑'等于'是两个等号,一个等号代表赋值
elif k == 0 :x = -b/(2*a)# 知识点:通过 %.2f 使输出的数保留两位小数print('方程的解为:x1=x2=%.2f' % x)else :x1 = (-b+math.sqrt(k))/(2*a)x2 = (-b-math.sqrt(k))/(2*a)print('\n方程的解为: x1=%.2f, x2=%.2f' % (x1,x2))

运行结果展示:

算法部分就完成了。但是,运行要依靠命令行输入数字,对普通用户还是不太友好。

接下来,我们给这个计算器加上 GUI 界面:


二、TK 图形化界面

Tkinter 是 Python 的标准 GUI 库,且内置在了 Python 的安装包中。也就是说,我们只需输入这么一行:

import tkinter as tk

就可以开始 GUI 编程啦~ 接下来,我们先搭一个简单的计算器界面

创建一个窗口,我们输入:

window = tk.Tk() # 创建窗口window.title('计算器') # 窗口的标题window.geometry('800x400') # 窗口的大小(也可以不指定)window.mainloop() # 窗口运行起来,要放在结尾哦

一个基本的窗口就搭建起来了~

在窗口上显示一行字:

k = tk.Label(window,text='请输入一个数字:',font=('Arial',12)) # 文字label
k.grid() # 固定文字的位置

再增加一个输入框:

x = tk.Entry(window) # 输入框
x.grid()

再放一个按钮:

# 先定义一个点击按钮时触发的函数
def cal():a = float(x.get()) # 从输入框中读取一个 float 变量b = a + 1
# 定义一个按钮
b1 = tk.Button(window,text='计算',command=cal)
b1.grid()

当然,我们还需要一个显示计算结果的地方:

def cal():a = float(x.get()) # 从输入框中读取一个 float 变量b = a + 1c.set(b) # 注意,在这个函数里插了一行
c = tk.StringVar() # 字符串变量
# 把计算结果显示出来
l = tk.Label(window,textvariable=c,font=('Arial',12))
l.grid()

这时候我们输入一个数,点击“计算”,就能得到这个数+1的数啦~

一个简单的计算“+1”的计算器就建好了。

但是,这个这几个文字和框竖着排成了一列,有些不太规整。

# 把上面几行用于排版的代码改一下:
k.grid(row=0,column=0,sticky='w')
x.grid(row=1,column=0)
b1.grid(row=1,column=1,padx=20)
l.grid(row=3,column=0,sticky='w')


三、一元二次方程计算器 - 完整代码

在第二章,我们基本搭建了一个界面。接下来,我们将第一章中的算法打包进去

先放运行结果:

接下来是完整代码

import tkinter as tk
import mathwindow = tk.Tk() # 创建窗口
window.title('一元二次方程计算器') # 窗口的标题
# window.geometry('800x400') # 窗口的大小(也可以不指定)# 一些界面元素
# grid 是一个格点,决定元素显示哪里
# columnspan 横跨多列格点,rowspan 同理
# padx pady ipadx ipady 调整分别调整外边距和内边距
# sticky = E 靠右 W 靠左k = tk.Label(window,text='请输入一元二次方程的参数:',font=('Arial',12)) # 文字label
k.grid(row=0,column=0,columnspan=3,sticky='w',padx=10,pady=10)x02 = tk.Entry(window) # 输入框
x02.grid(row=1,column=0,padx=10)p1 = tk.Label(window,text=' x² + ',font=('Arial',12))
p1.grid(row=1,column=1)x01 = tk.Entry(window)
x01.grid(row=1,column=2)p2 = tk.Label(window,text=' x + ',font=('Arial',12))
p2.grid(row=1,column=3)x00 = tk.Entry(window)
x00.grid(row=1,column=4)p3 = tk.Label(window,text=' = 0',font=('Arial',12))
p3.grid(row=1,column=5)# 一元二次方程计算函数(点击按钮后执行)
def cal():a = float(x02.get())b = float(x01.get())c = float(x00.get())k = b*b-4*a*cg = -c/bif a == 0:resu.set('方程的解为: x = %.2f' % g)if k < 0 :resu.set('方程无解')elif k == 0 :x = -b/(2*a)resu.set('方程的解为: x1 = x2 = %.2f' % x)else :x1 = (-b+math.sqrt(k))/(2*a)x2 = (-b-math.sqrt(k))/(2*a)resu.set('方程的解为: x1 = %.2f   x2 = %.2f' % (x1,x2))# 按钮
b1 = tk.Button(window,text='计算',width=10,command=cal)
b1.grid(row=1,column=6,padx=20)# 结果显示
resu = tk.StringVar() # 字符串变量
l = tk.Label(window,textvariable=resu,font=('Arial',12))
l.grid(row=3,column=0,sticky='w',columnspan=3,padx=10)window.mainloop() # 窗口运行起来,要放在结尾哦

参考资料

【Python】Tkinter教程_木子欢儿的博客-CSDN博客

Python Tkinter Grid布局管理器详解 - 箬笠蓑衣 - 博客园 (cnblogs.com)

如何设置 Tkinter 文本输入控件的高度和宽度 | D栈 - Delft Stack

用 Python 搭建解一元二次方程的计算器相关推荐

  1. Python:解一元二次方程(带分数和根号结果!)

    Python:解一元二次方程(带分数和根号结果!) 利用Python解一元二次方程 完善方程的系数 定义函数开方后是否为整数(在试了n次后终于搞定如何判断开方为整数类型) 定义函数取整开方后的数 判断 ...

  2. 用python编程解一元二次方程

    请定义一个函数quadratic(a, b, c),接收3个参数,返回一元二次方程: ax2 + bx + c = 0的两个解. 提示:计算平方根可以调用math.sqrt()函数 # -*- cod ...

  3. 用python语言解一元二次方程

  4. python怎么算一元二次方程_python如何解一元二次方程

    本文收集整理关于python如何解一元二次方程的相关议题,使用内容导航快速到达. 内容导航: Q1:python 使用try except解一元二次方程问题 123456789101112131415 ...

  5. 用python写一个解一元二次方程的类

    第一步 明确需要的变量 要解一元二次方程,肯定先把它化成一般式:ax^2+bx+c=0,我们需要用到的参数是a,b,c还有一个判别式"▲" ,可以随意给个名字,我这里给的g. 第二 ...

  6. Python——解一元二次方程

    Python的第一个练习--解一元二次方程&条件语句 1.float ()函数用于将整数和字符串转换成浮点数. 2.int()函数也可以解整数方程,但是当不是整数的是,就会报错. print( ...

  7. python解一元二次方程步骤-Python实现求解一元二次方程的方法示例

    Python实现求解一元二次方程的方法示例 本文实例讲述了Python实现求解一元二次方程的方法.分享给大家供大家参考,具体如下: 1. 引入math包 2. 定义返回的对象 3. 判断b*b-4ac ...

  8. python解一元二次方程

    解一元二次方程ax^2+bx+c=0 刚开始碰到这个问题,习惯性地想要用迭代的方式来做,居然忘记了解方程的公式... 思路: 公式法解方程即可,先计算delta=b^2-4ac 若delta<0 ...

  9. Java黑皮书课后题第3章:*3.1(代数:解一元二次方程)可以使用下面的公式求一元二次方程ax2+bx+c=0,编写程序提示用户输入a b c的值,并显示基于判断式的结果

    *3.1(代数:解一元二次方程)可以使用下面的公式求一元二次方程ax2+bx+c=0,编写程序提示用户输入a b c的值,并显示基于判断式的结果 题目 题目描述 运行示例 破题 代码 题目 题目描述 ...

  10. 一元三次方程重根判别式_许兴华——关于复数集中解一元二次方程的问题

    在学习复数时,最近有个别比较好学的同学提出一个问题: "对于复数系数一元二次方程,是否可以用求根公式求解呢?" --回答是肯定的! 关于复数集中解一元二次方程的问题.其实,在复数集 ...

最新文章

  1. C++——String类超详细介绍
  2. Python,你应该小心的逗号!一步错步步错
  3. SAP MM 物料主数据MRP2 视图Rounding Value字段
  4. 脑机融合技术的哲学审思
  5. ubuntu预装脚本
  6. lvs和keepalives
  7. python中的is
  8. 减少HTTP请求的方法
  9. 第六次 Scrum Meeting
  10. 1 Linux系统性能测试与监测工具汇总
  11. Android Json解析工具类
  12. Vue 中播放帧动画(抽离方法)
  13. 语音助手的涅槃关头,我们应该完全抛弃屏幕还是选择“语音+图形界面”?
  14. 小学听力测试英语软件,小学英语听力测试
  15. Kotlin协程之launch
  16. import * as用法
  17. centsos7网络连接激活失败_宽带连接时出现711错误的解决方法 | 小马激活官网
  18. 自然数、实数、整数、有理数的符号表示
  19. 中央财经大学创新创业中心主任尚超:大数据技术在防范虚假发票中的应用
  20. 向身边优秀的人学习,让自己变得优秀

热门文章

  1. 本特利3500软件组态指导
  2. 零基础一周学会PIC单片机视频教程
  3. 计算机网络强制100M,网络连通性故障分析与排除二例
  4. 计算机解码原理图,diy制作改进的CS4398解码 DAC PCB和原理图纸
  5. VS连接VSS代码管理器失败问题
  6. 编译原理用C语言编写递归下降分析程序,编译原理递归下降分析器(C语言).pdf
  7. 计算机端最好用的词典——GoldenDict
  8. 华硕笔记本电池0%充不进电_华硕笔记本电池0%充不进电
  9. html怎么做出相框的效果,纯CSS实现的相框效果
  10. 盘点常用的IDC综合业务、财务及用户管理平台