20214318姚家豪 《python程序设计》实验二报告

课程:《Python程序设计》
班级: 2143
姓名: 姚家豪
学号:20214318
实验教师:王志强
实验日期:2022年4月5日
必修/选修: 公选课

## 1.实验内容

  • 设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。

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


## 2. 实验过程及结果
      制作普通计算器和复数计算器

from datetime import *
import numpy as np
print("Besti-2目计算器!你值得拥有")
flag = True
result = 0
while flag == True:
    choice = input("请选择你想要的计算器类型:0为普通计算器、1为复数计算器,2为行列式\n,3为阶乘")

    if choice == "0":
        op = input("请输入需要做的操作(+、-、*、/、%、//,^,输入0代表退出):\n")
        if op == "0":
            break

        a = int(input("请输入操作数a\n"))
        b = int(input("请输入操作数b\n"))
        if op == "+":
            result = a + b
        elif op == "-":
            result = a - b
        elif op == "*":
            result = a * b
        elif op == "/":
            result = a / b
        elif op == "%":
            result = a % b
        elif op == "//":
            result = a // b  #返回商的整数部分,向下取整
        elif op == "^":
            result = a ** b  #乘方
        else:
            print("输入有误,请重新输入\n")
    elif choice == "1":
        op = input("请输入需要做的操作(+、-、*、/,输入0代表退出):\n")
        if op == "0":
            break
        a = complex(input("请输入第一个复数:\n"))
        # python中复数是a+bj
        b = complex(input("请输入第二个复数:\n"))
        if op == "+":
            result = a + b
        elif op == "-":
            result = a - b
        elif op == "*":
            result = a * b
        elif op == "/":
            result = a / b
        else:
            print("输入有误,请重新输入\n")
    elif choice == "2":
        A = []
        n = int(input("几阶行列式?"))
        for x in range(n):
            row = []
            for y in range(n):
                row.append(int(input("A {} {}      ".format(x+1,y+1))))
            A.append(row)
        a = np.array(A)
        print ("行列式的值为: {:.3f}".format(np.linalg.det(a)))

    elif choice == "3":
        op = int(input("请输入一个自然数:\n"))
        a = 1
        for i in range(1,op+1):
            a = a * i
    print(a)
if choice != 3:
    print(a, op, b, " = ", result, "\n")

在课上老师所讲的几个功能之上增加了乘方,行列式的计算,阶乘的计算。

其中以行列式的计算最为复杂

首先在需要在网上找到行列式的计算方法,我所选用的是一种引用sumpy库的编码方式

NumPy 中文

 

 利用额外引入的py库,我们能免去许多麻烦。

 

关于乘方,用一个for循环就得以解决。

 

 ## 3. 实验过程中遇到的问题和解决过程

1,不引入库的行列式的计算实在是极其复杂。

解决办法:引入sumpy库

2,对于阶乘而言,只需要有一个a的输入,不需要b

解决办法:将阶乘的运算独立放在基础运算,复数运算,行列式计算之外。

##其他:

多多动手,抄代码抄多了就懂了(bushi)

 

posted @ 2022-04-05 17:47  脑子不好使先生  阅读(55)  评论(0编辑  收藏  举报