利用Chatgpt开发一款加减乘除计算器(Python代码实现)

上次使用 Chatgpt 写爬虫,虽然写出来的代码很多需要修改后才能运行,但Chatgpt提供的思路和框架都是没问题。

这次让 Chatgpt 写一写GUI程序,也就是你常看到的桌面图形程序。

由于第一次测试,就来个简单点的,用Python写用来加减乘除的计算器。

提问:请用Python写一个计算器GUI程序

(代码过长,就不完全展示了)

它告诉我,可以使用Python的tkinter库来实现简单的GUI,这确实是最快捷的方法。

代码执行出来是一个很简答的计算器程序,没有什么UI设计可言。

用起来也没什么毛病,但似乎外观上应该更好看点。

iPhone手机的计算器APP是集美貌、简洁、方便、功效于一体的计算器代表作。

于是我问:帮我优化下这个计算器的UI界面 类似iphone计算器风格。

ChatGPT:

这次代码居然没有完整展现出来,Chatgpt生成到一半自动断了,也不知道什么原因。

我又问它:请写完后半部分。

ChatGPT:

最后它补充道

这段代码实现了以下功能:

1、创建计算器 GUI 的主要界面,包括数字按钮和文本框;
2、对数字按钮和运算符按钮的点击事件进行响应,完成对方程的修改、计算和清空等操作;
3、实现了基本的错误处理功能。

你可以将这段代码保存为 calculator.py,并在命令行中运行它,即可启动这个计算器 GUI 程序。

经过优化后的代码,UI确实好看多了,类似iPhone计算器的风格,但美感上还差很多,功能也比较简单。

附上完整代码(来自Chatgpt):

import tkinter as tk
from tkinter import font

class Calculator:
    def __init__(self, master):
        self.master = master
        master.title("Calculator")
        master.geometry("350x560")
        master.resizable(width=False, height=False)

        # 设置按钮和文本框字体
        self.button_font = font.Font(size=20)
        self.equation_font = font.Font(size=30)

        # 创建显示方程的文本框
        self.equation = tk.Entry(master, width=12, font=self.equation_font, borderwidth=0, justify=tk.RIGHT)
        self.equation.grid(row=0, column=0, columnspan=4, padx=10, pady=20, ipady=15)

        # 创建数字按钮
        self.create_button("C", 1, 0, bg="white", fg="black", width=4, height=2)
        self.create_button("±", 1, 1, bg="white", fg="black", width=4, height=2)
        self.create_button("%", 1, 2, bg="white", fg="black", width=4, height=2)
        self.create_button("÷", 1, 3, bg="#FF9500", fg="white", width=4, height=2)

        self.create_button("7", 2, 0, bg="#E4E4E4", fg="black")
        self.create_button("8", 2, 1, bg="#E4E4E4", fg="black")
        self.create_button("9", 2, 2, bg="#E4E4E4", fg="black")
        self.create_button("×", 2, 3, bg="#FF9500", fg="white", width=4, height=2)

        self.create_button("4", 3, 0, bg="#E4E4E4", fg="black")
        self.create_button("5", 3, 1, bg="#E4E4E4", fg="black")
        self.create_button("6", 3, 2, bg="#E4E4E4", fg="black")
        self.create_button("-", 3, 3, bg="#FF9500", fg="white", width=4, height=2)

        self.create_button("1", 4, 0, bg="#E4E4E4", fg="black")
        self.create_button("2", 4, 1, bg="#E4E4E4", fg="black")
        self.create_button("3", 4, 2, bg="#E4E4E4", fg="black")
        self.create_button("+", 4, 3, bg="#FF9500", fg="white", width=4, height=2)

        self.create_button("0", 5, 0, bg="#E4E4E4", fg="black", width=8)
        self.create_button(".", 5, 2, bg="#E4E4E4", fg="black")
        self.create_button("=", 5, 3, bg="#FF9500", fg="white", width=4, height=2)

    def create_button(self, text, row, column, bg="#F0F0F0", fg="black", width=2, height=1):
        # 创建按钮
        button = tk.Button(self.master, text=text, bg=bg, fg=fg, width=width, height=height, font=self.button_font,
                           borderwidth=0, command=lambda: self.button_click(text))
        button.grid(row=row, column=column, padx=5, pady=5, ipady=5, sticky="NSEW")

    def button_click(self, text):
        if text == "C":
            self.equation.delete(0, tk.END)
        elif text == "±":
            equation = self.equation.get()
            if equation.startswith("-"):
                self.equation.delete(0)
                self.equation.insert(0, equation[1:])
            elif equation:
                self.equation.insert(0, "-")
        elif text == "%":
            equation = self.equation.get()
            try:
                result = float(equation) / 100
                self.equation.delete(0, tk.END)
                self.equation.insert(0, result)
            except ValueError:
                pass
        elif text in ["+", "-", "×", "÷"]:
            if self.equation.get() and not self.equation.get().endswith(("+", "-", "×", "÷")):
                self.equation.insert(tk.END, text)
        elif text == ".":
            if self.equation.get() and "." not in self.equation.get():
                self.equation.insert(tk.END, ".")
            elif not self.equation.get():
                self.equation.insert(tk.END, "0.")
        elif text == "=":
            equation = self.equation.get()
            try:
                result = eval(equation)
                self.equation.delete(0, tk.END)
                self.equation.insert(0, result)
            except (SyntaxError, ZeroDivisionError):
                self.equation.delete(0, tk.END)
                self.equation.insert(0, "Error")

        else:
            self.equation.insert(tk.END, text)

# 创建主窗口
root = tk.Tk()

# 创建计算器 GUI
calculator = Calculator(root)

# 进入主事件循环
root.mainloop()

这段代码还有很多值得修改的地方,如果你有兴趣可以试试。

到此这篇关于利用Chatgpt开发一款加减乘除计算器(Python代码实现)的文章就介绍到这了,更多相关Python Chatgpt计算器内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 使用python编写简单计算器

    ​本文实例为大家分享了python编写简单计算器的具体代码,供大家参考,具体内容如下 做一个计算器,这是我们想要的效果. 1.准备工作 导入time.tqdm.math库 from tqdm import* from time import* from math import* 2.开始 添加一个重复循环并添加变量s while True:     #清屏     print('\033c')     while True:         #如果用法输入的是str类型将打印输入错误,再次循环

  • 利用Python实现简易计算器的示例代码

    目录 实现流程 代码实现 定义函数 输入值 判断运算 全部代码展示 运行展示 最近学习了字符串,运算符,条件语句,循环语句,我在想可以用我最近学的东西做什么? 看到运算我就想到了可以做一个简易的计算器. 实现流程 1.定义函数 2.请用户选择运算方法 3.请用户输入要运算的两个数 4.运算出结果 代码实现 定义加减乘除四种函数,在后续的运算中调用这四个函数输出结果. 定义加减乘除四种运算的函数 定义函数要用def 首先定义加法函数add在里面传入参数x,y   返回值X加y 定义subtract

  • 手把手教你在Python里使用ChatGPT

    目录 前言 知识点 实现 代码 后话 前言 近来chatGPT挺火的,也试玩了一下,确实挺有意思.这里记录一下在Python中如何去使用chatGPT. 本篇文章的实现100%基于 chatGPT,我是搬运工无疑了!!! 本片文章比较简单. 知识点 pip install openai 看看 chatGPT的表现: 使用python编写一段发送网络请求的代码 python如何md5 也有抽风的表现: 小明妈妈大小明20岁,20年后小明妈妈大小明多少岁? 一个蛋糕切成8块我吃不完,切成4块刚刚好?

  • 使用ChatGPT来自动化Python任务

    目录 1.概述 2.内容 2.1 使用ChatGPT来绘制线性回归 2.2 使用Python给微信发信息 2.3 使用Python发送电子邮件 2.4 使用Python开发一个爬虫程序 3.总结 1.概述 最近,比较火热的ChatGPT很受欢迎.今天,笔者为大家来介绍一下ChatGPT能做哪些事情. 2.内容 ChatGPT是一款由OpenAI开发的专门从事对话的AI聊天机器人.它的目标是让AI系统更加自然的与之交互,但它也可以在我们编写代码的时候提供一些帮助. 2.1 使用ChatGPT来绘制

  • python实现简单的计算器功能

    本文实例为大家分享了python实现简单计算器的具体代码,供大家参考,具体内容如下 今天学习到python中界面设计部分,常用的几种图形化界面库有:Jython.wxPython和tkinter. 主要介绍tkinter模块,tkinter模块(tk接口)是Python的标准tk GUI工具包的接口.tk和tkinter可以在大多数的UNIX平台下使用,同样可以应用在Windows和Macintosh系统里.Tk8.0的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中. 下面使用tki

  • Python+ChatGPT实现5分钟快速上手编程

    目录 1.chatGPT是个啥 2.chatGPT怎么注册 3.chatGPT怎么用 4.小结 最近一段时间chatGPT火爆出圈!无论是在互联网行业,还是其他各行业都赚足了话题. 俗话说:“外行看笑话,内行看门道”,今天从chatGPT个人体验感受以及如何用的角度来分享一下. 1.chatGPT是个啥 chatGPT是最近新出来的玩意?并不是!在国内,chatGPT最早是在2022年11月就由OpenAI于推出的.只是去年底火了一把,后力不足又遇春节,热度草草就结束了. 先讲一下,OpenAI

  • 详解如何在ChatGPT内构建一个Python解释器

    目录 下面是初始化ChatGPT的命令: 总结 引用:Art Kulakov <How to Build a Python Interpreter Inside ChatGPT> 这个灵感来自于一个类似的故事,在ChatGPT里面建立一个虚拟机(Building A Virtual Machine inside ChatGPT).给我留下了深刻的印象,并决定尝试类似的东西,但这次不是用Linux命令行工具,而是让ChatGPT成为我们的Python解释器. 下面是初始化ChatGPT的命令:

  • Python实现有趣的亲戚关系计算器

    目录 介绍 需求 数据定义 算法实现 分析 算法主要函数一:transformTitleToKey 算法主要函数二:FilteHelper 算法主要函数三:dataValueByKeys 输出与效果 一些细节与已知问题 每年的春节,都会有一些自己几乎没印象但父母就是很熟的亲戚,关系凌乱到你自己都说不清. 今年趁着春节在家没事情干,正好之前知道有中国亲戚关系计算器,想着自己实现一下,特此记录. 介绍 由于本人能力有限,只完成了基本功能.... 需求 计算亲戚关系链得出我应该怎么称呼的结果 数据定义

  • 利用ImageAI库只需几行python代码实现目标检测

    什么是目标检测 目标检测关注图像中特定的物体目标,需要同时解决解决定位(localization) + 识别(Recognition).相比分类,检测给出的是对图片前景和背景的理解,我们需要从背景中分离出感兴趣的目标,并确定这一目标的描述(类别和位置),因此检测模型的输出是一个列表,列表的每一项使用一个数组给出检出目标的类别和位置(常用矩形检测框的坐标表示). 通俗的说,Object Detection的目的是在目标图中将目标用一个框框出来,并且识别出这个框中的是啥,而且最好的话是能够将图片的所

  • 用php简单实现加减乘除计算器

    用php实现加减乘除计算器.代码很简单哦! 复制代码 代码如下: <?php header("content-type:text/html;charset=utf-8"); session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitiona

  • 让Python代码更快运行的5种方法

    不论什么语言,我们都需要注意性能优化问题,提高执行效率.选择了脚本语言就要忍受其速度,这句话在某种程度上说明了Python作为脚本语言的不足之处,那就是执行效率和性能不够亮.尽管Python从未如C和Java一般快速,但是不少Python项目都处于开发语言领先位置. Python很简单易用,但大多数人使用Python都知道在处理密集型cpu工作时,它的数量级依然低于C.Java和JavaScript.但不少第三方不愿赘述Python的优点,而是决定自内而外提高其性能.如果你想让Python在同一

  • python开发一款翻译工具

    最近,某水果手机厂在万众期待中开了一场没有发布万众期待的手机产品的发布会,发布了除手机外的其他一些产品,也包括最新的水果14系统.几天后,更新了系统的吃瓜群众经过把玩突然发现新系统里一个超有意思的功能--翻译,比如这种: 奇怪的翻译知识增加了! 相比常见的翻译工具,同声翻译工具更具有实用价值,想想不精通其他语言就能和歪果朋友无障碍交流的场景,真是一件美事,不如自己动手实现个工具备用!一个同声翻译工具,逻辑大概可以是先识别,而后翻译,翻译能否成功,识别的准确率是个关键因素.为了降低难度,我决定分两

  • 教你如何用python开发一款数字推盘小游戏

    今年年初,新一季的<最强大脑>开播了,第一集选拔的时候大家做了一个数字游戏,名叫<数字华容道>,当时何猷君以二十几秒的成绩夺得该项目的冠军,看了这个游戏之后我决定要写一个<数字华容道>的程序,过去了半年,我终于记起了这件事,今天就来实现. 数字推盘游戏(n-puzzle)是一种智力游戏,常见的类型有十五数字推盘游戏和八数字推盘游戏等.十五数字推盘游戏的板上会有十五个方块和一个大小相当于一个方块的空位(供方块移动之用),当15个数字依次排序并且最后一个格子为空位即代表挑战

  • 用python开发一款操作MySQL的小工具

    项目地址 https://github.com/lishukan/directsql 安装 pip3 install directsql 导入 directsql 目前只提供三个外部类 __all__=["SqlGenerator","MysqlConnection","MysqlPool"] 导入方式 from directsql.sqlgenerator import SqlGenerator #该类用于生成sql语句 #下面是一个池化连接对

  • 20行Python代码实现一款永久免费PDF编辑工具的实现

    PDF(Portable Document Format),中文名称便携文档格式是我们经常会接触到的一种文件格式,文献.文档...很多都是PDF格式.它以格式稳定的优势,使得我们在打印.分享.传输过程中能够最优的保持原有色彩和格式. PDF是以PostScript语言图像模型为基础的一种文档格式,它在格式的稳定性方面虽然具有很大优势.但是,在可编辑性方面却为使用者引入了另外一个困扰. 例如,在文档的分割.合并.剪切.转换.编辑等方面PDF就有些捉襟见肘了. Adobe Reader.福昕阅读器.

  • 2020年10款优秀的Python第三方库,看看有你中意的吗?

    相对于numpy.TensorFlow.pandas这些已经经过多年维护.迭代,对于大多数Python开发者耳熟能详的库不同. 今天要给大家介绍的是诞生于2020年的新鲜Python库,而且,本文介绍的这10个Python库一直都受到非常好的维护. 废话不多说,下面开始本文的正式内容! 1. Typer 或许,你并非经常编写 CLI 应用程序,但是当你编写时,有可能会遇到很多障碍. 继FastAPI的巨大成功之后,tiangolo用同样的原则为我们带来了Typer[1]:一个新的库,它能让你利用

  • 20行Python代码实现一款永久免费PDF编辑工具

    目录 PyPDF2 删除PDF页 合并PDF 旋转 添加水印 加密 pdfminer PDF转TxT 总结 PDF是我们经常会接触到的一种文件格式,文献.文档...很多都是PDF格式.它以格式稳定的优势,使得我们在打印.分享.传输过程中能够最优的保持原有色彩和格式. PDF是以PostScript语言图像模型为基础的一种文档格式,它在格式的稳定性方面虽然具有很大优势.但是,在可编辑性方面却为使用者引入了另外一个困扰. 例如,在文档的分割.合并.剪切.转换.编辑等方面PDF就有些捉襟见肘了. Ad

  • 如何利用AngularJS打造一款简单Web应用

    目前不同类型的Web开发人员都在广泛使用AngularJS,这套卓越的框架也充分证明了自身满足各类不同需求的能力.作为一名Web开发人员,无论大家是刚刚入门的新手还是已经拥有丰富的实践经验,选择一款优秀的框架都是必要的工作前提,而AngularJS正是这样一套理想的解决方案.在使用AnguarJS的过程中,大家可以同时学习到更多与应用程序开发相关的知识以及如何构建起更出色.更具吸引力的应用成果.如果大家希望在应用程序的创建工作中采取各类最佳实践,那么AngularJS也能够带来极大的助益.总而言

随机推荐