20244319 2024-2025-2 《Python程序设计》实验二报告
课程:《Python程序设计》
班级: 2443
姓名: 梁悦
学号:20244319
实验教师:王志强
实验日期:2025年3月26日
必修/选修: 公选课
一、实验内容
1.设计并完成一个完整的计算机应用程序,完成加、减、乘、除、log等运算,功能多多益善;
2.考核基本语法、判定语句、循环语句、逻辑运算等知识点;
3.使用Python语言实现具体的操作运算,并完成程序调试和运行,代码托管到码云。
二、实验过程及结果
(一)设计并完成一个完整的计算机应用程序,完成加、减、乘、除等运算
完整代码如下:
import math
from stringprep import b1_setdef jia(num1,num2):return num1+num2
def jian(num1,num2):return num1-num2
def cheng(num1,num2):return num1*num2
def chu(num1,num2):if num2==0:print("除数不能为0哦,亲爱的")return 0return num1/num2
def logab(a,b):return math.log(a,b)Queen=int(input("你要进行什么运算?(1)实数(2)复数\n"))if Queen ==1:flag = Truewhile flag:num1=int(input("请输入一个实数:"))num2=int(input("请输入另一个实数:"))choice = input("请输入运算符(+、-、*、/、log):")if choice=="+":print("num1",choice,"num2=",jia(num1,num2))elif choice=="-":print("num1",choice,"num2=",jian(num1,num2))elif choice=="*":print("num1",choice,"num2=",cheng(num1,num2))elif choice=="/":print("num1",choice,"num2=",chu(num1,num2))elif choice=="log":print("log以",num2,"为底",num1,"的对数=",logab(num1,num2))else:print("亲爱的,你好像输入错运算符咯~")key = input("是否继续? Y/N:")if key=="Y":flag = Trueelse:flag = Falseelif Queen ==2:flag = Truewhile flag:num1 = complex(input("请输入一个复数:"))num2 = complex(input("请输入另一个复数:"))choice = input("请输入运算符(+、-、*、/):")if choice == "+":print("num1", choice, "num2=", jia(num1, num2))elif choice == "-":print("num1", choice, "num2=", jian(num1, num2))elif choice == "*":print("num1", choice, "num2=", cheng(num1, num2))elif choice == "/":print("num1", choice, "num2=", chu(num1, num2))else:print("亲爱的,你好像输入错运算符咯~")key = input("是否继续? Y/N:")if key == "Y":flag = Trueelse:flag = False
(二)考核基本语法、判定语句、循环语句、逻辑运算等知识点
1.判定语句(如if key=="Y"语句)
2.循环语句(if-elif-else语句)
3.逻辑运算(and、or、not语句)
(三)使用Python语言实现具体的操作运算,并完成程序调试和运行,代码托管到码云
1.基础运算函数准备:
2.设计实数部分计算器:
运行结果截图:
3.设计复数部分计算器:
运行结果截图:
4.增加实数对数运算功能
运行结果截图:
5.代码托管到码云
托管成功截图:
三、实验过程中遇到的问题和解决过程
-
问题1:不清楚Python中怎么调用数学库
-
问题1解决方案:百度搜索+积累语法
-
问题2:重复性代码过多
-
问题2解决方案:增加分类合并部分代码
如可改为:
flag = Truewhile flag:if input("请问:需要复数(1)还是整数(2)运算?\n")=="1":num1 = complex(input("请输入一个数:"))num2 = complex(input("请输入另一个数:"))else:num1 = int(input("请输入一个数:"))num2 = int(input("请输入另一个数:"))choice = input("请输入运算符(+-*/ log):")if choice == "+":print("num1 ",choice, " num2 = ", Csum(num1, num2))elif choice =="-":print("num1 ",choice, " num2 = ", Csub(num1, num2))elif choice == "*":print("num1 ",choice, " num2 = ", Cmulti(num1, num2))elif choice == "/":print("num1 ",choice, " num2 = ", CDiv(num1, num2)))elif choice == "log":print("log以",num2,"为底",num1, "的对数 = ", logab(num1, num2))conti = input("是否继续?Y/N\n")if conti == "Y" or conti == "y":flag = Trueelse:flag = False
其他(感悟、思考等)
我因为dbug没能跟上老师进度,所以计算器程序代码的后半段是自己编写的,但是最后的代码以及运行结果和老师的差不多,开心开心(有点小小的成就感嘻嘻)
参考资料
- 《零基础学Python》(2018 明日科技编著)