20242327 实验二《Python程序设计》实验报告
20242327 2024-2025-2 《Python程序设计》实验2报告
课程:《Python程序设计》
班级: 2423
姓名: 梁瑞丽
学号: 20242327
实验教师:王志强
实验日期:2025年3月26日
必修/选修: 公选课
1.实验内容
-
设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。
-
考核基本语法、判定语句、循环语句、逻辑运算等知识点。
2. 实验过程及结果
(1)设计程序,代码如下:
import math
print("""
❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤
您是否还在为满页的口算题而头疼?
您是否还在担心明天的作业怎么办?
鸭梨牌计算器
你值得拥有~
发布时间:2025年3月26日
版本号: 内测版
❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤
""")
def Csum(num1, num2):
return num1 + num2
def Csub(num1, num2):
return num1 - num2
def Cmuliti(num1, num2):
return num1 * num2
def Cdiv(num1, num2):
if num2 == 0:
print("除数不为0")
return 0
return num1 / num2
def logab(num1, num2):
if num1<=0 or num2 <=0:
print("指数和对数都应该大于0哟~~~")
return math.log(num1, num2)
def yushu(num1,num2):
if num2 == 0:
print("除数不为0")
return 0
return num1 % num2
def mi(num1, num2):
return num1 ** num2
def sqrt(num1):
if num1 < 0:
print("被开方的数必须是正数哦~~")
return None
return math.sqrt(num1)
def sin(num1):
return math.sin(math.radians(num1))
def cos(num1):
return math.cos(math.radians(num1))
def tan(num1):
return math.tan(math.radians(num1))
flag = True
while flag:
if input ("请问:需要复数(1)还是整数(2)运算\n")=="1":
num1 = complex(input("请输入一个复数:"))
num2 = complex(input("请输入另一个复数:"))
choice = input("请输入运算符(+,-,*,/)")
if choice == "+":
print("num1", choice, "num2 =", Csum(num1, num2))
elif choice == "-":
print("num1", choice, "num2 =", Csub(num1, num2))
elif choice == "*":
print("num1", choice, "num2 =", Cmuliti(num1, num2))
elif choice == "/":
print("num1", choice, "num2 =", Cdiv(num1, num2))
else:
num1 = int(input("请输入一个数:"))
num2 = int(input("请输入另一个数:"))
choice = input("请输入运算符(+,-,*,/,log,%,**,sqrt,sin,cos,tan):")
if choice == "+":
print("num1", choice, "num2 =", Csum(num1, num2))
elif choice == "-":
print("num1", choice, "num2 =", Csub(num1, num2))
elif choice == "*":
print("num1", choice, "num2 =", Cmuliti(num1, num2))
elif choice == "/":
print("num1", choice, "num2 =", Cdiv(num1, num2))
elif choice == "log":
print("log以",num2,"为底", num1,"的对数=", logab(num1, num2))
elif choice == "%":
print("num1", choice, "num2 =", yushu(num1, num2))
elif choice == "**":
print("num1", choice, "num2 =", mi(num1, num2))
elif choice == "sqrt":
print("num1","的平方根是" , sqrt(num1))
elif choice == "sin":
print("num1","的sin是" , sin(num1))
elif choice == "cos":
print("num1","的cos是" , cos(num1))
elif choice == "tan":
print("num1","的tan是" , tan(num1))
conti =input("是否继续?Y/N")
if conti == "Y"or conti =="y":
flag = True
else:
flag = False
(2)代码功能检测:
设计的计算器主要包括复数和整数运算两部分,考虑到复数无法完成某些整数可以进行的运算,将程序分为两个分支,通过计算前询问用户需要的运算从而一定程度上避免某些错误(比如用户想要计算某个复数的开方或者三角函数等)。
另外,代码可以进行的运算包括加减乘除,对数运算,幂运算,开方,三角函数等,在结束一次运算后会询问用户是否想要进行下一次运算,以下是部分代码功能的实现:


(3)将程序提交并推送



(4)程序中判定语句、循环语句部分
- 判断语句部分:
if input ("请问:需要复数(1)还是整数(2)运算\n")=="1":
python语言相对于c的判断更加简洁,在一条命令中完成了询问用户,接收用户指令以及判断的功能,但同样可能因为疏忽造成错误,需要多加练习。
- 循环语句部分:
flag = True
while flag:
#省略部分代码
conti =input("是否继续?Y/N")
if conti == "Y"or conti =="y":
flag = True
else:
flag = False:
在这部分中,通过设计“死循环”来达到由用户决定是否继续的效果。
3. 实验过程中遇到的问题和解决过程
- 问题1:测试程序的过程中,在进行复数运算时,程序频繁报错
- 问题1解决方案:询问智能助手,它指出我的程序没有错误,进一步请它给出程序范例,发现复数的形式是a+bj而不是a+bi,修正这一个输入错误后,复数运算的过程就不会报错,程序可以正常运行。
- 问题2:在增添程序功能时,对三角函数所需要的数学库如何引用不清楚(c语言可以直接在程序开头添加“include<math.h>”)
- 问题2解决方案:Kimi提到“import math”,作用类似与c,联想之前的课程似乎也用过这个命令,添加添加后,程序可以正常运行。
其他(感悟、思考等)
Python的学习不会一蹴而成,只有勤加练习多多实践才会取得进步。另外,程序只有经过多多修改才能越来越全面。
参考资料
- 《Python编程从入门到实践》

浙公网安备 33010602011771号