20214318姚家豪 《python程式設計》實驗二報告
阿新 • • 發佈:2022-04-05
課程:《Python程式設計》
班級: 2143
姓名: 姚家豪
學號:20214318
實驗教師:王志強
實驗日期:2022年4月5日
必修/選修: 公選課
## 1.實驗內容
-
設計並完成一個完整的應用程式,完成加減乘除模等運算,功能多多益善。
- 考核基本語法、判定語句、迴圈語句、邏輯運算等知識點
## 2. 實驗過程及結果
製作普通計算器和複數計算器
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庫的編碼方式
利用額外引入的py庫,我們能免去許多麻煩。
關於乘方,用一個for迴圈就得以解決。
## 3. 實驗過程中遇到的問題和解決過程
1,不引入庫的行列式的計算實在是極其複雜。
解決辦法:引入sumpy庫
2,對於階乘而言,只需要有一個a的輸入,不需要b
解決辦法:將階乘的運算獨立放在基礎運算,複數運算,行列式計算之外。
##其他:
多多動手,抄程式碼抄多了就懂了(bushi)