20242416 实验二 《Python程序设计》实验报告
20242416 2024-2025-2 《Python程序设计》实验第二次报告
课程:《Python程序设计》
班级: 2424
姓名: 汪文涵
学号:20242416
实验教师:王志强
实验日期:2025年3月26日
必修/选修: 公选课
1.实验内容
设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。
考核基本语法、判定语句、循环语句、逻辑运算等知识点。
(一)
代码具体功能如下:
(1)完成加减乘除对数指数以及求正弦余弦正切的运算;
(2)当用户输入错误时提示输入错误并要求重新输入;
(3)计算完毕后询问用户是否继续计算。
(二)
代码解析:
(1)定义多种运算函数,主函数中直接调用即可

(2)根据不同运算选择,使用分支语句分别输出

(3)询问是否继续运算

(三)
完整代码如下
import math
def csum(num1, num2):
return num1 + num2
def csud(num1, num2):
return num1 - num2
def cmul(num1, num2):
return num1 * num2
def cdev(num1, num2):
if num2 == 0:
print("除数不能为0")
return 0
return num1 / num2
def csin(num1):
return math.sin(math.radians(num1))
def ccos(num1):
return math.cos(math.radians(num1))
def ctan(num1):
return math.tan(math.radians(num1))
def clog(num1, num2):
if num1 <= 0:
print("对数的真数必须大于0")
return 0
if num2 <= 0 or num2 == 1:
print("对数的底数必须大于0且不等于1")
return 0
return math.log(num1, num2)
def cexp(num1, num2):
if num2 < 0:
print("指数的底数不能为负数")
return 0
return num1 ** num2
while True:
print("请选择运算类型:1. 加法 2. 减法 3. 乘法 4. 除法 5. 正弦 6. 余弦 7. 正切 8. 对数 9. 指数")
choice = input("请输入选择的运算类型序号:")
if choice in ["1", "2", "3", "4"]:
num1 = float(input("请输入第一个数:"))
num2 = float(input("请输入第二个数:"))
if choice == "1":
print("num1 + num2 =", csum(num1, num2))
elif choice == "2":
print("num1 - num2 =", csud(num1, num2))
elif choice == "3":
print("num1 * num2 =", cmul(num1, num2))
elif choice == "4":
print("num1 / num2 =", cdev(num1, num2))
elif choice in ["5", "6", "7"]:
num1 = float(input("请输入角度值:"))
if choice == "5":
print("sin(num1) =", csin(num1))
elif choice == "6":
print("cos(num1) =", ccos(num1))
elif choice == "7":
print("tan(num1) =", ctan(num1))
elif choice == "8":
num1 = float(input("请输入对数的真数:"))
num2 = float(input("请输入对数的底数:"))
result = clog(num1, num2)
if result != 0:
print("log(num2)(num1) =", result)
elif choice == "9":
num1 = float(input("请输入指数的底数:"))
num2 = float(input("请输入指数的指数值:"))
result = cexp(num1, num2)
if result != 0:
print("num1^num2 =", result)
else:
print("无效的输入,请重新输入!")
conti = input("是否继续?y/n:")
if conti.lower() != "y":
break
2. 实验过程及结果
调试过程

发现运算结果有问题,但因为并未报错猜测是未将角度转化成弧度
修正后得到正确结果
实验结果

将代码托管到码云

3. 实验过程中遇到的问题和解决过程
- 问题1:不清楚如何调用math函数来计算正弦、余弦、正切值和对数,不知道如何求幂
- 问题1解决方案:询问AI后得到解决
- 问题2:输入角度后发现三角函数值一直不对,推测可能是没有将其转化为弧度
- 问题2解决方案:思考发现问题后,询问AI得到将角度转化成弧度的方法即使用math.radians函数
其他(感悟、思考等)
通过这次计算器的实验逐步掌握并熟练创建子函数、循环控制语句、判断语句以及各类算法的表达等等运用,在遇到困难时给AI合适的提示词也能很快得到解答。
浙公网安备 33010602011771号