20182213 实验二《Python程序设计》实验报告

学号 2019-2020-2 《Python程序设计》实验x报告

课程:《Python程序设计》
班级: 1822
学号:20182213
实验教师:王志强
实验日期:2020年4月11日
必修/选修: 公选课

1.实验内容

设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。

考核基本语法、判定语句、循环语句、逻辑运算等知识点

2. 实验过程及结果

本次实验我选择制作了一个计算器,使用方式是只需要输入一串运算表达式,计算器就能自动得出运算结果具体步骤如下所示:

  • 首先我们采用数据结构作为辅助定义两个类,一个为结点类,另一个为栈类
  • 在栈类中我们定义判断栈是否为空的方法,压栈弹栈方法,和打印栈中所有元素方法
  • 我们再定义一个计算器的类文件,在此我们初始化两个实例栈类对象,一个用来存储数字栈,另一个用来存储链栈。
  • 在计算器类中我们给不同运算符赋予不同优先级,方便其进行优先级不同的运算,从而可以将带括号的运算也能够得出正确的答案。
  • 定义比较不同优先级的方法
  • 设置判断函数,如果是数字直接入栈,如果是运算符则将其与栈顶运算符进行比较,如果优先级高于栈顶运算符,则直接压栈,如果比栈顶运算符优先级低,则进行弹栈操作,并进行运算。如此往复,直到栈内元素为空时,运算完成。
    运行结果



    断点调试

    代码截图:

码云链接:
https://gitee.com/python_programming/python_2020_programming/commit/5814dc0713a7c4553cf92f93091edb42a01dda6a

3. 实验过程中遇到的问题和解决过程

  • 问题1:无法输入小数和多位数
  • 问题1解决方案:加入一个判断位数的计数器,计算小数点位置即可

参考资料

  • [《Python编程从入门到精通》]
posted @ 2020-04-19 23:00  Mellivorac  阅读(175)  评论(0编辑  收藏