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合适的提示词也能很快得到解答。

posted @ 2025-04-09 13:40  汪文涵  阅读(23)  评论(0)    收藏  举报