课程:《Python程序设计》
班级:2024
姓名:于宗源
学号:20202418
实验教师:王志强
实验日期:2022年4月5日
必修/选修:公选课
设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。
考核基本语法、判定语句、循环语句、逻辑运算等知识点
我在清明假期之间自学了通过利用tkinter库提供的可视化页面,利用tkinter中存在的Label、grid、Button、Messagebox等相关组件构成简易计算器,过程如下:
为确保代码的美观和可读性,建立了如下功能的计算函数,函数可以完成相应的计算功能,并在对应的位置展现。
主页面如下。我通过grid方法将应用分成了六行两列的网格。分别由提示信息、输入框、运算按钮和结果显示文本组成。
为了更加方便,我设置了输入框,这样的话就可以不需要用户通过按按钮使用了,直接通过键盘输入更加方便。
计算器支持复数运算(j表示复数)和普通的加减乘除取余等运算。默认数字1做被加减乘除取余数。数字2为加减乘除取余数
问题1:上一次运算的结果不会消失,而是被这一次的运算结果覆盖,影响美观。
问题1解决方案:百度之后知道了tk中的变量字符串StringVar()这个东西,通过将结果设置成字符串变量,然后在函数中仅修改字符串的值而不是直接显示结果,最后整一个专门用来显示结果字符串变量的标签就可以解决上一次计算结果标签在这一次计算仍存在导致不美观的问题了。
问题2:在捕获错误时,面对如下错误:1、输入转浮点数错误,2、输入转复数错误,3、两个都不是(用户乱输入)。我们不难发现三个的错误类型一样,都是类型转换错误,用try——except不知如何捕获这样的情况。
问题2解决方案:在except中嵌套try——except就可以解决问题了:
try:
将输入框内容转化成浮点数存在a和b变量中
except:
try: 将输入框内容转化成复数存在a和b变量中 except: 报错,识别不出内容
面对困难不要放弃,用心去想肯定能去解决。比如在我想利用try——except语句来识别用户到底是输入的数字、复数还是随便乱输的,我发现用try-except-except不太行,因为他们的错误类型都是Vauleerror,然后我就不知道该怎么办了,然后我想了好久好久突然想到不如先try-except,然后再except中嵌套一个try-except,虽然可能看起来很呆,也大概不是最好的方法,但是也确实解决了我的问题。所以就目前而言遇到困难不要害怕,想去解决肯定是有方法可以去解决的,虽然效率不高、路子不正,但却是也是靠自己解决出来的问题。
Python之Tkinter使用详解
Python GUI编程(Tkinter)