当前位置: 首页 > news >正文

python 计算器 casio_Python编程之计算器/字符及界面

caa4911dab147733752dcfee569aa338.png

界面方式:

#coding=utf-8

#by : linhut

from Tkinter import * #导入Tkinter所有组件

def clear():

display.set('')

def dele():

display.set(str(display.get()[:-1])) #取最后一位前面的,转数字

def call(m):

content = display.get()+m #display.get()获得当前内容

display.set(content) #display.set() 显示内容

# 得到 '2+3'

def calee():

if '=' in display.get(): #判断当前内容是否进行过计算

con = display.get().split('=')[-1]

else:

con = display.get()

try:

res =eval(con) #eval字符可计算

display.set(con + '=\n' + str(res))

#得到 2+3=5

except:

display.set('Error')

clear()

def main():

root = Tk() # 创建顶层窗口

root.title('Linhut计算器')

root.geometry() #设置界面大小

global display #创建一个全局变量

display=StringVar() #用来得到和设置显示的内容

label = Label(root,relief='sunken',borderwidth=3,anchor=SE)

#relief设置边框样式,borderwidth设置边框的宽度,anchor设置pack分配的位置

label.config(bg='grey',width=25,height=3)

label['textvariable'] = display

#textvariable显示display变量的内容

label.grid(row=0,column=0,columnspan = 4)

#columnspan设置用几列来显示该组件

Button(root,text='C',fg = 'Green',width=3,command=lambda:clear()).grid(row=1,column=0)

Button(root,text='DEL',width=3,command=lambda:dele()).grid(row=1,column=1)

Button(root,text='/', width=3, command=lambda: call('/')).grid(row=1, column=2)

Button(root,text='*', width=3, command=lambda: call('*')).grid(row=1, column=3)

Button(root,text='-', width=3, command=lambda: call('-')).grid(row=2, column=3)

Button(root,text='+', width=3, command=lambda: call('+')).grid(row=3, column=3)

Button(root,text='%', width=3, command=lambda: call('%')).grid(row=4, column=3)

Button(root,text='.', width=3, command=lambda: call('.')).grid(row=5, column=1)

Button(root,text='1', width=3, command=lambda: call('1')).grid(row=4, column=0)

Button(root,text='2', width=3, command=lambda: call('2')).grid(row=4, column=1)

Button(root,text='3', width=3, command=lambda: call('3')).grid(row=4, column=2)

Button(root,text='4', width=3, command=lambda: call('4')).grid(row=3, column=0)

Button(root,text='5', width=3, command=lambda: call('5')).grid(row=3, column=1)

Button(root,text='6', width=3, command=lambda: call('6')).grid(row=3, column=2)

Button(root,text='7', width=3, command=lambda: call('7')).grid(row=2, column=0)

Button(root,text='8', width=3, command=lambda: call('8')).grid(row=2, column=1)

Button(root,text='9', width=3, command=lambda: call('9')).grid(row=2, column=2)

Button(root,text='0', width=3, command=lambda: call('0')).grid(row=5, column=0)

Button(root,text='=', width=3, command=lambda: calee()).grid(row=5, column=2,rowspan=3)

root.mainloop() # 显示界面

if __name__ == '__main__':

main()

字符方式:

#coding=utf-8

#by : linhut

def jia(x,y):

return (x+y)

def jian(x,y):

return (x-y)

def cheng(x,y):

return (x*y)

def chu(x,y):

return (x/y)

func_dict = {'+':jia,'-':jian,'*':cheng,'/':chu}

oper_set = {'+','-','*','/'}

#运算符集合

#一行来输入,并且完成单项运算就OK

#2 * 3

#2+3

result = 0

while True:

mystr = input('请输入你要做的操作:')

mystr_set = set(mystr.strip())

#去掉空格 变成集合

oper = (mystr_set&oper_set).pop()

#取出运算符

num1 = int(mystr.split(oper)[0])

num2 = int(mystr.split(oper)[1])

result = func_dict[oper](num1,num2)

print('结果是:',result)

mylist = [1,2,-3]

def getsum(mylist):

mysum = 0

for var in mylist:

mysum += var

return mysum

def jiajian(*arg):

res = 0

for var in arg:

res += var

#就一步

def chengchu(oper,*arg):

res = 0

if oper == '*':

for var in arg:

res *= arg

if oper == '/':

for var in arg:

res /= arg


http://www.taodudu.cc/news/show-8328467.html

相关文章:

  • EasyRecovery Photo16 数据恢复软件2024最新免费破解版
  • 仓库库存管理难点在哪?有哪些仓库库存管理软件?
  • 【解决Win XP无法访问Windows7文件】
  • 【windows7开机假死怎么办】
  • ghost装机教程 7 8 XP 11
  • 64位Windows7系统重装过程全记录!
  • XP系统安装win7旗舰版系统图文教程
  • C语言指针初阶(2),初试结构体
  • HDOJ 7328 Snake —— 2023“钉耙编程”中国大学生算法设计超级联赛(5)(2023杭电多校第五场)
  • 数据结构 | 顺序表SeqList【内附众多生活小案例~】
  • HIT2018计算机系统大作业 程序人生-Hello’s P2P
  • 【哈尔滨工业大学计算机系统大作业】程序人生-Hello’s P2P
  • CS大作业 程序人生 Hello's p2p
  • 串行存在检测(英語:,缩写SPD)是一种访问内存模块有关信息的标准化方式
  • 计算机无法维修技术鉴定,计算机维修中级维修工职业技能鉴定理论试卷.pdf
  • 常见WEB开发安全漏洞、原因分析及解决之道
  • SQL注入攻击的种类
  • Web安全漏洞(续)
  • Web开发常见的几个漏洞解决方法 ---SQL注入
  • Web开发常见的几个漏洞解决方法 (转)
  • 常见WEB开发安全漏洞 原因分析及解决
  • SQL注入攻击的种类和防范手段有哪些?
  • web漏洞原理 (需要每周更新此篇文章)
  • 安全测试:SQL注入攻防
  • 安全漏洞扫描,风险原因分析及解决方案
  • 防御和检查SQL注入攻击的手段
  • 分布式预约挂号平台(五) | 郑医宝の医院设置接口实现 swagger2测试增删改查 ~ 锁定解锁 ~ 发送签名秘钥
  • [附源码]计算机毕业设计Python预约挂号app(程序+源码+LW文档)
  • 小程序运营攻略《一》:基础知识
  • 微信小程序到底有哪此功能?