50行python代码写个计算器教程
计算器.gif 计算器简易版.gif 极简版本 计算器.gif
发布日期:2021-06-29 17:34:10
浏览次数:2
分类:技术文章
本文共 3488 字,大约阅读时间需要 11 分钟。
案例展示
你能学到
-
input 用户输入
-
print输出
-
tkinter图形界面
-
python运算符号
基础知识准备
运算符号
数字运算,求和我们使用了加号 (+)运算符,除此外,还有 减号 (-), 乘号 (*), 除号 (/), 地板除 (//) 或 取余 (%)。
input输入
在python中咱们用input
来获取用输入的内容,
int
函数把字符串转换为字符 输出
我们在python3中用print
方法输出
tkinter图形界面
Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。
由于 Tkinter 是内置到 python 的安装包中、只要安装好 Python 之后就能 import Tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinter 还是能应付自如。基础版本
案例展示
# 打印标题print("简易计算器")# 通过用户输入获取运算的第一个数num1 = int(input("输入第一个数字: "))# 通过用户输入获取运算的第二个数# 默认是字符串需要用int把字符转换为数组num2 = int(input("输入第二个数字: "))# 提示用户输入运算符print("输入运算:1、相加;2、相减;3、相乘;4、相除")# 获取用户输入的运算符号choice = input("输入你的选择(1/2/3/4):")# 如果是1if choice == '1': print(num1,"+",num2,"=", num1+num2)# 如果2elif 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("非法输入")
特别注意:
-
input提示输入的时候,用户需要在电脑键盘输入数字
-
我们通过用int方法把输入的数字转换为真正的数字(默认是像数字的字符)
-
根据choice的不同来选择输出不同的内容
-
在程序的世界 除用
/
,乘 用*
来表示
极简版本
# 获取用户输入的运算式如:5+5str = input("请输入你的运算式:")# eval函数把字符串当代码执行# print 打印输出执行的结果print(eval(str))
注意:
-
input获取的内容为文本
-
eval 可以把任意的字符串当做python执行
如果需要程序一直都运行我们只需要把代码放入while循环就可
while True: str = input("请输入你的运算式:") print(eval(str))
注意:
-
True 的T 字母是大写
-
str与print函数前面有四个空格,或者一个Tab缩进
计算器(有界面)
# 导入tkineter库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()
注意
-
eval
把字符串当python代码执行 -
len()
方法计算字符串长度 -
inp.get()
获取到文本框的值 -
inp.delete(start,end)
删除文本框的字符从start个删除到end个 -
inp.insert(start,str)
插入文本框字符 从start插入str字符
- EOF -
推荐阅读 点击标题可跳转
都来到这了,拜托拜托点个赞
转载地址:https://cpython.blog.csdn.net/article/details/111878520 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月15日 01时42分47秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
mysql用户口令中含有特殊字符@的情况下,如何正确链接数据库
2019-04-29
SpringFox接口文档API DOC
2019-04-29
netty优化策略
2019-04-29
架构师知识体系全景图
2019-04-29
guava中EventBus(事件总线)源码分析与使用
2019-04-29
程序员成神之路文章目录
2019-04-29
SASS软件的成熟度模型总结
2019-04-29
一次搞定redis使用
2019-04-29
最全架构设计实践方法论: 微服务
2019-04-29
Linux下简单几步安装AI开发环境-ROS(超有意思)
2019-04-29
linux入门--磁盘管理之分区、格式化与挂载
2019-04-29
开发必备:HTTP 及 TLS
2019-04-29
如何设计自己的第一个加密交易机器人?
2019-04-29
TKDE 2020 | 综述:基于知识图谱的推荐系统
2019-04-29
休息时间!哪些业余活动能提升开发人员的技能?
2019-04-29
事关人类生存?为什么要探寻AI系统的可解释性?
2019-04-29
安全工程师必知:常见Java漏洞有哪些?
2019-04-29
在后台的python:众多程序员无法攻克的难题
2019-04-29
国会大厦骚乱,与一家极不可靠的面部识别公司……
2019-04-29
电动汽车的“专属危险”:网络威胁问题不容小觑
2019-04-29