这篇教程Python双版本计算器详解写得很实用,希望能帮到您。 有框计算器这个计算器我们用到了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):") 接着判断加法 判断加法# 如果是1if 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加到上面一部分的下面 桥接2while 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内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章,希望大家以后多多支持51zixue.net! python基础之文件操作和异常处理 opencv模板匹配相同位置去除重复的框 |