20242401 2024-2025-2 《Python程序设计》实验二报告

课程:《Python程序设计》
班级: 2424
姓名: 韦秉辰
学号:20242401
实验教师:王志强
实验日期:2025年3月26日
必修/选修: 公选课

一、实验内容

  • 设计并完成一个计算器的应用程序,包含基础的整数的加减乘除模运算,同时还要能完成如浮点数、复数的运算以及开方、指数、对数、上三角函数运算等等。

  • 考核基本语法、判定语句、循环语句、逻辑运算等知识点。

二、 实验过程及结果

(一)思考过程:

  1. 运算不局限于四则运算和整数运算,加上三角函数和log、pow、sqrt等多种运算形式,将复数加入运算。
  2. 复数无法用三角函数等进行运算,当用户输入时要直接结束本次运算。

(二)代码实现:

import math

def SIN(num1):
    return math.sin(num1)
def COS(num1):
    return math.cos(num1)
def TAN(num1):
    return math.tan(num1)
def LOG(num1,num2):
    return math.log(num1,num2)
def SQRT(num1):
    return math.sqrt(num1)
def POW(num1,num2):
    return math.pow(num1,num2)
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
flag = True
while flag:
    choice = input("请输入运算符(+-*/ sin cos tan log pow sqrt):")
    choice1 =input("请问:需要复数(1)还是整数(2)运算?")
    if choice1 == "1":
        if choice != ['sin','cos','tan','log','pow','sqrt']:
            if choice == "+":
                num1 = complex(input("请输入一个数"))
                num2 = complex(input("请输入另一个数"))
                print("num1 ", choice, " num2 = ",Csum(num1 , num2))
            elif choice == "*":
                num1 = complex(input("请输入一个数"))
                num2 = complex(input("请输入另一个数"))
                print("num1 ", choice, " num2 = ",Cmulti(num1, num2))
            elif choice == "/":
                num1 = complex(input("请输入一个数"))
                num2 = complex(input("请输入另一个数"))
                print("num1 ", choice, " num2 = ",CDiv(num1, num2))
            elif choice == "-":
                num1 = complex(input("请输入一个数"))
                num2 = complex(input("请输入另一个数"))
                print("num1 ", choice, " num2 = ",Csub(num1, num2))
        else:
            print("请重新输入")
            continue
    else:
        if choice == "+":
            num1 = int(input("请输入一个数:"))
            num2 = int (input("请输入另一个数:"))
            print("num1 ", choice, " num2 = ",Csum(num1, num2))
        if choice == "*":
            num1 = int(input("请输入一个数:"))
            num2 = int (input("请输入另一个数:"))
            print("num1 ", choice, " num2 = ",Cmulti(num1, num2))
        if choice == "/":
            num1 = int(input("请输入一个数:"))
            num2 = int(input("请输入另一个数:"))
            print("num1 ", choice, " num2 = ",CDiv(num1, num2))
        if choice == "-":
            num1 = int(input("请输入一个数:"))
            num2 = int(input("请输入另一个数:"))
            print("num1 ", choice, " num2 = ",Csub(num1, num2))
        if choice == "sin":
            num1 = int(input("请输入一个数:"))
            print(choice,"num1 = ",SIN(num1))
        if choice == "cos":
            num1 = int(input("请输入一个数:"))
            print(choice,"num1 = ",COS(num1))
        if choice == "tan":
            num1 = int(input("请输入一个数:"))
            print(choice,"num1 = ",TAN(num1))
        if choice == "log":
            num1 = int(input("请输入一个数:"))
            num2 = int(input("请输入另一个数:"))
            print("log以","num1为底,","num2 = ",LOG(num1,num2))
        if choice == "pow":
            num1 = int(input("请输入一个数:"))
            num2 = int(input("请输入另一个数:"))
            print("运算结果为:",POW(num1,num2))
        if choice == "sqrt":
            num1 = int(input("请输入一个数:"))
            print("运算结果为:",SQRT(num1))

    conti = input("是否继续?Y/N")
    if conti =="Y" or conti == "y":
        flag = True
    else:
        flag = False


(三)运行结果:

1.复数运算:

2.整数运算:

三、实验过程中遇到的问题和解决过程

  • 问题1:复数无法进行三角函数运算,一开始测试时无运算结果。
  • 问题1解决方案:当所选运算不是四则运算,选择复数运算时,直接用continue跳过此次运算,询问下一次运算是否进行。

四、其他(感悟、思考等)

markdown格式很好用,如果不记得语法格式,可以用Typora写完之后再复制到博客上。

参考资料

posted @ 2025-04-08 21:54  我不是韦神  阅读(11)  评论(0)    收藏  举报