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编程从入门到实践》

posted @ 2025-03-30 15:19  小鱼爱大葱  阅读(30)  评论(0)    收藏  举报