1. 程式人生 > 其它 >20214318姚家豪 《python程式設計》實驗二報告

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)