20241415 2024-2025-2 《Python程序设计》实验二报告
20241415 2024-2025-2 《Python程序设计》实验二报告
课程:《Python程序设计》
班级: 2414
姓名: 赵邵宁
学号:20241415
实验教师:王志强
实验日期:2025年3月26日
必修/选修: 公选课
1.实验内容
(1)设计并完成一个完整的应用程序,完成加、减、乘、除、取对数与模等运算,功能多多益善。
(2)考核基本语法、判定语句、循环语句、逻辑运算等知识点。
2. 实验过程及结果
(1)根据实验的要求,可以先设计对整数的加减乘除取对数的功能,运用课上所学的函数知识:![]()
同时提示用户输入数据和计算方式,运用分支结构:![]()
(2)接着可以考虑将复数的运算加入计算器中,此时就需要用分支结构提醒用户区分运算的是整数还是负数:![]()
同时注意:python中复数的类型为complex,且输入的时候虚部是 j 而不是我们习惯使用的 i
(3)在此基础上我们可以进一步丰富计算器的功能,引入整数的取对数运算、三角函数运算和乘方运算:![]()
注意:对数运算和三角函数运算需要提前引入数学库(import math)
(4)接着,我们需要考虑多次使用计算器的情况,因此,可以先设置一个无限循环:![]()
在每次运算完后再提示用户是否还要继续使用计算器:![]()
(5)最后我们可以在代码中加入个性化的部分,如:![]()
(6)综上,整个计算器程序的代码为:
以下是将你提供的Python代码转化为Markdown格式的内容:
import math
print("""
欢迎使用功能强大,应有尽有的计算器!
版权:ZSN
开发时间:2025.3.26
考试的时候不能用计算器哦~
""")
def Csum(num1, num2):
return num1 + num2
def Csub(num1, num2):
return num1 - num2
def Cmulti(num1, num2):
return num1 * num2
def Cdiv(num1, num2):
if num2 == 0:
print("除数不能为0")
return 0
return num1 / num2
def Crem(num1, num2):
if num2 == 0:
print("取余运算中除数不能为0")
return 0
return num1 % num2
def logab(a, b):
return math.log(a, b)
def sin_cal(num):
return math.sin(num)
def cos_cal(num):
return math.cos(num)
def tan_cal(num):
if math.cos(num) == 0:
print("正切函数分母不能为0")
return 0
return math.tan(num)
def power_cal(num1, num2):
return num1 ** num2
flag = True
while flag:
if input("请问需要复数(1)还是整数(2)运算?") == "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 = ", Cmulti(num1, num2))
elif choice == "/":
print("num1", choice, "num2 = ", Cdiv(num1, num2))
elif choice == "%":
print("num1", choice, "num2 = ", Crem(num1, num2))
elif choice == "**":
print("num1", choice, "num2 = ", power_cal(num1, num2))
conti = input("是否继续?Y/N:")
if conti == "Y" or conti == "y":
flag = True
else:
flag = False
else:
num1 = int(input("请输入一个数:"))
num2 = int(input("请输入另一个数:"))
choice = input("请输入运算符(+-*/log%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 = ", Cmulti(num1, num2))
elif choice == "/":
print("num1", choice, "num2 = ", Cdiv(num1, num2))
elif choice == "log":
print("log以", num1, "为底", num2, "的对数= ", logab(num2, num1))
elif choice == "%":
print("num1", choice, "num2 = ", Crem(num1, num2))
elif choice == "sin":
print("sin(", num1, ") = ", sin_cal(num1))
elif choice == "cos":
print("cos(", num1, ") = ", cos_cal(num1))
elif choice == "tan":
print("tan(", num1, ") = ", tan_cal(num1))
elif choice == "**":
print("num1", choice, "num2 = ", power_cal(num1, num2))
conti = input("是否继续?Y/N:")
if conti == "Y" or conti == "y":
flag = True
else:
flag = False
(7)实验结果如下:![]()

(8)最后将代码上传至Gitee

https://gitee.com/zhaoshaoning/python.git
3. 实验过程中遇到的问题和解决过程
- 问题1:除法和tan运算时有时候会报错
- 问题1解决方案:检查发现除法和tan的运算对数据有要求,除数不能为零,正切分母不能为0,需要在分支中加入if语句判断是否满足运算条件
![]()
![]()











浙公网安备 33010602011771号