iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python双版本计算器详解
  • 565
分享到

Python双版本计算器详解

2024-04-02 19:04:59 565人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

有框计算器 这个计算器我们用到了python自带的Tkinter库 # 导入tkinter库 import tkinter 我们要对窗口进行一些基本操作 # 获取一个窗口

有框计算器

这个计算器我们用到了python自带的Tkinter库


# 导入tkinter库
import tkinter

我们要对窗口进行一些基本操作


# 获取一个窗口
window = tkinter.Tk()
# 设置标题
window.title('计算器')
# 设置窗口大小
window.geometry('200x200')

接着用函数定义一个输入方法

输入方法


# 输入方法
def add(n):
    # 获取到n1文本框的值
    n1 = inp.get()
    # 清空文本框
    inp.delete(0,len(n1))
    # 插入原来的加上新输入参数n
    inp.insert(0,n1+str(n))

再用函数定义一个计算方法

计算方法


# 执行计算方法
def calc():
    n1 = inp.get()  
    inp.delete(0,len(n1))
    # 把文本框的字符串用eval当代码执行一次,再插入到文本框
    inp.insert(0,str(eval(n1)))

完成后还需要把文本框给清除,我们还是用函数

清除文本框方法


# 清空文本框
def clear():
    n1 = inp.get()  
    inp.delete(0,len(n1))

清空文本框后还会留下一个字符,我们需要删除最后一个字符,仍然用函数

删除最后一个字符方法


# 删除最后一个字符
def back():
    n1 = inp.get()  
    inp.delete(len(n1)-1,len(n1))

接着我们计算绝对值

计算绝对值


# 计算绝对值
def ab():
    n1 = inp.get()  
    inp.delete(0,len(n1))
    inp.insert(0,str(eval(n1)*-1))

设置一些文本框作为按钮的一部分

设置文本框


# 设置一个文本框
inp = tkinter.Entry(window, width=25)
# 在第0行,第0个,合并5列
inp.grid(row=0,column=0,columnspan=5)

再制作一些功能按钮

功能按钮


# 删除按钮(窗口,宽度,文本,执行命令).grid(1行,0列)
tkinter.Button(window,width=5, text="C", command=clear).grid(row=1,column=0)
tkinter.Button(window,width=5, text="←", command=back).grid(row=1,column=1)
tkinter.Button(window,width=5, text="+/-", command=ab).grid(row=1,column=2)

再制作运算符按钮

运算符


# 删除按钮(窗口,宽度,文本,背景色,文本颜色,执行命令并传入参数).grid(1行,4列)
tkinter.Button(window,width=5, text="+",bg="#f70",fg="#fff",command=lambda:add("+")).grid(row=1,column=4)
tkinter.Button(window,width=5, text="-", bg="#f70",fg="#fff",command=lambda:add("-")).grid(row=2,column=4)
tkinter.Button(window,width=5, text="×",bg="#f70",fg="#fff",command=lambda:add("*")).grid(row=3,column=4)
tkinter.Button(window,width=5, text="÷",bg="#f70",fg="#fff",command=lambda:add("/")).grid(row=4,column=4)
tkinter.Button(window,width=12,text="0", command=lambda:add("0")).grid(row=5,column=0,columnspan=2)
tkinter.Button(window,width=5,text="=", bg="#f70",fg="#fff",command=calc).grid(row=5,column=4)
tkinter.Button(window,width=5, text=".", command=lambda:add(".")).grid(row=5,column=2)

最后,我们发现还没有 123 456 789 9个按钮,我们就用for循环创建

把代码加到


# 设置一个文本框
inp = tkinter.Entry(window, width=25)
# 在第0行,第0个,合并5列
inp.grid(row=0,column=0,columnspan=5)

的下面

9个按钮


# 设置一个文本框
inp = tkinter.Entry(window, width=25)
# 在第0行,第0个,合并5列
inp.grid(row=0,column=0,columnspan=5)
# 用for循环 创建 123 456 789 9个按钮
for i in range(0,3):
    for j in range(1,4):
      n = j+i*3
      btn=tkinter.Button(window, text=str(j+i*3),width=5, command=lambda n=n:add(n))
      btn.grid(row=i+2,column=j-1)

一个有框的计算器就做好了,完整代码请看文章末尾

命令行计算器

这个计算器的代码很短,很快就能学会

首先获取第一个数与第二个数

获取数


# 通过用户输入获取运算的第一个数
num1 = int(input("输入第一个数字: "))
# 通过用户输入获取运算的第二个数
# 默认是字符串需要用int把字符转换为数组
num2 = int(input("输入第二个数字: "))
# 提示用户输入运算符

我们还得添加while True来保证代码重复执行,否则计算器无法运算多次

在前面加上while True


while True:
	# 通过用户输入获取运算的第一个数
	num1 = int(input("输入第一个数字: "))
	# 通过用户输入获取运算的第二个数
	# 默认是字符串需要用int把字符转换为数组
	num2 = int(input("输入第二个数字: "))
	# 提示用户输入运算符

这样就能重复了

接着获取运算方法

运算方法


print("输入运算:1、相加;2、相减;3、相乘;4、相除")
# 获取用户输入的运算符号
choice = input("输入你的选择(1/2/3/4):")

接着判断加法

判断加法


# 如果是1
if choice == '1':
	print(num1,"+",num2,"=", num1+num2)

减法、乘法、除法和加法差不多,你们可以自己试试


分割
分割

实在不会也可以看看我的

剩下的


# 如果2
	elif choice == '2':
		print(num1,"-",num2,"=", num1-num2) 
	elif choice == '3':
		print(num1,"×",num2,"=", num1*num2) 
	elif choice == '4':
		print(num1,"÷",num2,"=", num1/num2)

再把他们桥接到加法的下面

桥接


while True:
	# 通过用户输入获取运算的第一个数
	num1 = int(input("输入第一个数字: "))
	# 通过用户输入获取运算的第二个数
	# 默认是字符串需要用int把字符转换为数组
	num2 = int(input("输入第二个数字: "))
	# 提示用户输入运算符
	print("输入运算:1、相加;2、相减;3、相乘;4、相除")
	# 获取用户输入的运算符号
	choice = input("输入你的选择(1/2/3/4):")
	# 如果是1
	if choice == '1':
		print(num1,"+",num2,"=", num1+num2)
	# 如果2
	elif choice == '2':
		print(num1,"-",num2,"=", num1-num2) 
	elif choice == '3':
		print(num1,"×",num2,"=", num1*num2) 
	elif choice == '4':
		print(num1,"÷",num2,"=", num1/num2)

算法部分就好了,我们还需要加一个else,否则输出将会出错

else


# 其他都是非法的
else:
	print("非法输入")

最后的最后我们把else加到上面一部分的下面

桥接2


while True:
	# 通过用户输入获取运算的第一个数
	num1 = int(input("输入第一个数字: "))
	# 通过用户输入获取运算的第二个数
	# 默认是字符串需要用int把字符转换为数组
	num2 = int(input("输入第二个数字: "))
	# 提示用户输入运算符
	print("输入运算:1、相加;2、相减;3、相乘;4、相除")
	# 获取用户输入的运算符号
	choice = input("输入你的选择(1/2/3/4):")
	# 如果是1
	if choice == '1':
		print(num1,"+",num2,"=", num1+num2)
	# 如果2
	elif choice == '2':
		print(num1,"-",num2,"=", num1-num2) 
	elif choice == '3':
		print(num1,"×",num2,"=", num1*num2) 
	elif choice == '4':
		print(num1,"÷",num2,"=", num1/num2)
	# 其他都是非法的
	else:
		print("非法输入")

两个计算器都介绍完毕了,接下来是完整代码

完整代码

有框计算器


# 导入tkinter库
import tkinter
# 获取一个窗口
window = tkinter.Tk()
# 设置标题
window.title('计算器')
# 设置窗口大小
window.geometry('200x200')
# 输入方法
def add(n):
    # 获取到n1文本框的值
    n1 = inp.get()
    # 清空文本框
    inp.delete(0,len(n1))
    # 插入原来的加上新输入参数n
    inp.insert(0,n1+str(n))
# 执行计算方法
def calc():
    n1 = inp.get()  
    inp.delete(0,len(n1))
    # 把文本框的字符串用eval当代码执行一次,再插入到文本框
    inp.insert(0,str(eval(n1)))
# 清空文本框
def clear():
    n1 = inp.get()  
    inp.delete(0,len(n1))
# 删除最后一个字符
def back():
    n1 = inp.get()  
    inp.delete(len(n1)-1,len(n1))
# 计算绝对值
def ab():
    n1 = inp.get()  
    inp.delete(0,len(n1))
    inp.insert(0,str(eval(n1)*-1))
# 设置一个文本框
inp = tkinter.Entry(window, width=25)
# 在第0行,第0个,合并5列
inp.grid(row=0,column=0,columnspan=5)
# 用for循环 创建 123 456 789 9个按钮
for i in range(0,3):
    for j in range(1,4):
      n = j+i*3
      btn=tkinter.Button(window, text=str(j+i*3),width=5, command=lambda n=n:add(n))
      btn.grid(row=i+2,column=j-1)
# 删除按钮(窗口,宽度,文本,执行命令).grid(1行,0列)
tkinter.Button(window,width=5, text="C", command=clear).grid(row=1,column=0)
tkinter.Button(window,width=5, text="←", command=back).grid(row=1,column=1)
tkinter.Button(window,width=5, text="+/-", command=ab).grid(row=1,column=2)
# 删除按钮(窗口,宽度,文本,背景色,文本颜色,执行命令并传入参数).grid(1行,4列)
tkinter.Button(window,width=5, text="+",bg="#f70",fg="#fff",command=lambda:add("+")).grid(row=1,column=4)
tkinter.Button(window,width=5, text="-", bg="#f70",fg="#fff",command=lambda:add("-")).grid(row=2,column=4)
tkinter.Button(window,width=5, text="×",bg="#f70",fg="#fff",command=lambda:add("*")).grid(row=3,column=4)
tkinter.Button(window,width=5, text="÷",bg="#f70",fg="#fff",command=lambda:add("/")).grid(row=4,column=4)
tkinter.Button(window,width=12,text="0", command=lambda:add("0")).grid(row=5,column=0,columnspan=2)
tkinter.Button(window,width=5,text="=", bg="#f70",fg="#fff",command=calc).grid(row=5,column=4)
tkinter.Button(window,width=5, text=".", command=lambda:add(".")).grid(row=5,column=2)
# 进入消息循环
window.mainloop()

命令行计算器


while True:
	# 通过用户输入获取运算的第一个数
	num1 = int(input("输入第一个数字: "))
	# 通过用户输入获取运算的第二个数
	# 默认是字符串需要用int把字符转换为数组
	num2 = int(input("输入第二个数字: "))
	# 提示用户输入运算符
	print("输入运算:1、相加;2、相减;3、相乘;4、相除")
	# 获取用户输入的运算符号
	choice = input("输入你的选择(1/2/3/4):")
	# 如果是1
	if choice == '1':
		print(num1,"+",num2,"=", num1+num2)
	# 如果2
	elif choice == '2':
		print(num1,"-",num2,"=", num1-num2) 
	elif choice == '3':
		print(num1,"×",num2,"=", num1*num2) 
	elif choice == '4':
		print(num1,"÷",num2,"=", num1/num2)
	# 其他都是非法的
	else:
		print("非法输入")

到此这篇关于Python双版本计算器详解的文章就介绍到这了,希望对大家有帮助,更多相关python内容请搜索编程网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持编程网!

--结束END--

本文标题: Python双版本计算器详解

本文链接: https://www.lsjlt.com/news/123957.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python双版本计算器详解
    有框计算器 这个计算器我们用到了Python自带的Tkinter库 # 导入tkinter库 import tkinter 我们要对窗口进行一些基本操作 # 获取一个窗口...
    99+
    2024-04-02
  • windows双版本python安装双版
    有时候我们需要在windows系统上面安装双版本的python,但是时间一长就忘了pip是为了pyhon2还是python3安装的了,别人我不知道,反正我是这样的,所以写了个pip安装的技巧; pip2 和 pip3设置Python 安装包...
    99+
    2023-01-31
    版本 windows python
  • CENTOS 安装python双版本(2
    CentOS6使用Python2.6.6作为系统默认的python,几个关键的系统实用程序都是以它作为开发语言的,例如yum,如果对默认的Python解释器进行升级将使得这是程序无法使用。所有关键是要把其他版本的Python安装的在/usr...
    99+
    2023-01-31
    版本 CENTOS python
  • python plt 绘图详解(plt.版本)
    文章目录 一.plt介绍二.安装与导入三.使用说明1. 使用plt.plot与plt.show绘制并显示图像(1)曲线颜色(color 简写为 c):(2)点型(标记marker):(3)线型...
    99+
    2023-09-09
    python 开发语言
  • 【双目视觉】 SGBM算法应用(Python版)
    文章目录 流程图相机标定立体匹配效果1.原图像2.深度图3.代码链接 流程图 相机标定 参考链接:【开源 |教程 | 双目测距】双目相机的标定_哔哩哔哩_bilibili 自...
    99+
    2023-10-08
    python 算法 opencv 人工智能 numpy
  • Python计算双重差分模型DID及其对应P值使用详解
    目录1. DID(Differences-in-Differences)定义2. DID模型形式3. OLS多项式拟合1. DID(Differences-in-Difference...
    99+
    2024-04-02
  • Vue3diff算法之双端diff算法详解
    目录双端Diff算法双端比较的原理简单Diff的不足双端Diff介绍Diff流程第一次diff第二次diff第三次diff第四次diff双端Diff的优势非理想情况的处理方式添加新元...
    99+
    2024-04-02
  • GoJava算法之比较版本号方法详解
    目录比较版本号方法一:字符串切割(Java)方法二:双指针(Go)比较版本号 给你两个版本号 version1 和 version2 ,请你比较它们。 版本号由一个或多个修订号组成,...
    99+
    2022-11-13
    Go Java算法比较版本号 Go Java版本号比较
  • Python - 简易版计算器(附完整代码)
    文章目录 1. 实现的功能2. 录入数据及运算符处理函数3. 检查输入的运算符规范性函数4. 录入运算符号处理函数5. 输入的第二个数的处理函数6. 完整代码6. 拓展 1. 实现的功能...
    99+
    2023-10-07
    python 数据库
  • Python NumPy教程之二元计算详解
    二元运算符作用于位,进行逐位运算。二元运算只是组合两个值以创建新值的规则。 numpy.bitwise_and(): 此函数用于计算两个数组元素的按位与。 此函数计算输入数组中整数的...
    99+
    2024-04-02
  • Python演化计算基准函数详解
    目录基准函数定义代码实现调用方法总结基准函数是测试演化计算算法性能的函数集,由于大部分基准函数集都是C/C++编写,Python编写的基准函数比较少,因此本文实现了13个常用基准函数...
    99+
    2024-04-02
  • python计算器
    功能说明:使用python编写一个计算器,实现简单的加减乘除功能。程序的逻辑很简单,取出括号,计算里面的乘除加减,结果替换原括号内容,再循环直到最终结果。难点在于正则匹配字符和计算细节上,怎么很好协调配合并正确获得结果。逻辑图:程序目录:m...
    99+
    2023-01-31
    计算器 python
  • Python数据结构与算法的双端队列详解
    目录什么是双端队列​​用Python实现双端队列运用双端队列构建回文检测器总结什么是双端队列​ 双端队列是与队列类似的有序集合。它有一前、一后两端,元素在其中保持自己的位置。与队列不...
    99+
    2024-04-02
  • Ubuntu安装指定Python版本详解,理论上各版本通用
    此方法理论上讲适用于所有Ubuntu版本(可能太老的不行)本文章中写的是18.04的,之前我在16.04,20.04上均安装成功 文章目录 下载Python安装Python(方法一:默认...
    99+
    2023-09-03
    ubuntu python linux
  • python 计算t分布的双侧置信区间
    如下所示: interval=stats.t.interval(a,b,mean,std) t分布的置信区 间 a:置信水平 b:检验量的自由度 mean:样本均值 std:样...
    99+
    2024-04-02
  • win7显示计算机副本不是正版解决方案
    当一些朋友打开电脑时,他们看到win这一点显示在系统的右下方windows如果副本不是正版,如果电脑副本不是正版,如何解决?因为很多朋友不知道如何解决电脑副本不是正版的问题?因此,本期将教你解决这个问题win7显示电脑副本不是正版解决方案。...
    99+
    2023-07-18
  • python 基于 tkinter 做个学生版的计算器
    目录导语正文总结导语 九月初家里的熊孩子终于开始上学了! 半个月过去了,小孩子每周都会带着一堆的数学作业回来,哈哈哈哈~真好,在家做作业就没时间打扰我写代码了。 很赞,鹅鹅鹅饿鹅鹅...
    99+
    2024-04-02
  • Git版本控制服务器详解
    目录一、Git 简介1.Git 特点2.版本控制器3.Git 工作流程4.Git 的几个核心概念二、基于 Linux 部署 Git 服务器1.Git 使用2.验证三、使用 GitHu...
    99+
    2024-04-02
  • 详解Java双轴快速排序算法
    目录一、前言二、回顾单轴快排三、双轴快排分析3.1、总体情况分析3.2、k交换过程3.3、收尾工作四、双轴快排代码一、前言 首选,双轴快排也是一种快排的优化方案,在JDK的Array...
    99+
    2024-04-02
  • python解析器--版本--IDE环境
    --**********************************************************************************************************************...
    99+
    2023-01-31
    版本 环境 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作