1. 程式人生 > 其它 >20213401實驗二《Python程式設計》實驗報告

20213401實驗二《Python程式設計》實驗報告

實驗報告模板如下:  # 學號 2021-2022-2 《Python程式設計》實驗x報告
課程:《Python程式設計》 班級: 2134 姓名: 王尊陽 學號:20213401 實驗教師:王志強 實驗日期:2022年3月31日 必修/選修: 公選課
## 1.實驗內容 此處填寫實驗的具體內容; 設計並完成一個完整的計算器應用 ## 2. 實驗過程及結果 此處填寫實驗的過程及結果 2.1程式碼: from cmath import cos,sin import msvcrt import os def addition(x,y):     return x+y; def subtraction(x,y):     return x-y; def multiplication(x,y):     return x*y; def division(x,y):     return x/y; def power(x,y):     return x**y; def remainder(x,y):     return x%y; def quptient(x,y):     return x//y; flag =True Pi=3.1415926 while flag == True:     print("Welcome user to use the caculator")     choice1=int(input("請輸入您要計算的型別:實數計算請輸入1;虛數計算請輸入2:"))     if choice1==2:         print('''您可進行的操作有:         1.加         2.減         3.乘         4.除''')         choice = int(input("請輸入您想進行的操作:"))         a=int(input("請輸入第一個虛數的實部:"))         b=int(input("請輸入第一個虛數的虛部:"))         c=int(input("請輸入第二個虛數的實部:"))         d=int(input("請輸入第二個虛數的虛部:"))         complex1=complex(a,b)         complex2=complex(c,d)         if choice==1:             print(complex1,"+",complex2,"=",addition(complex1,complex2));         elif choice==2:             print(complex1,"-",complex2,"=",subtraction(complex1,complex2));         elif choice==3:             print(complex1,"*",complex2,"=",multiplication(complex1,complex2));         elif choice==4:             print(complex1,"/",complex2,"=",division(complex1,complex2));         else:             print("您的輸入有誤,請重新輸入")             continue     if choice1==1:         print('''您可進行的操作有:         1.加         2.減         3.乘         4.除         5.餘數         6.次方或開方         7.商         8.sin         9.cos         10.階乘         11.十進位制轉為二\八\十六進位制         ''')         choice = float(input("請輸入您想進行的操作:"))         num1=float(input("請您輸入第一個數:"))         num2=float(input("請您輸入第二個數:"))         if choice==1:             print(num1,"+",num2,"=",addition(num1,num2));         elif choice==2:             print(num1,"-",num2,"=",subtraction(num1,num2));         elif choice==3:             print(num1,"*",num2,"=",multiplication(num1,num2));         elif choice==4:             print(num1,"/",num2,"=",division(num1,num2));         elif choice==5:             print(num1,"%",num2,"=",remainder(num1,num2));         elif choice==6:             print(num1,"**",num2,"=",power(num1,num2));         elif choice==7:             print(num1,"//",num2,"=",quptient(num1,num2));         elif choice==8:             num1=num1/180*Pi             num2=num2/180*Pi             print("sin(num1)的值為:",sin(num1),"sin(num2)的值為",sin(num2))         elif choice==9:             num1=num1/180*Pi             num2=num2/180*Pi             print("cos(num1)的值為:",cos(num1),"cos(num2)的值為",cos(num2))         elif choice==10:             a=num1             b=num2             while num1>1:                 num1-=1                 a=a*num1             while num2>1:                 num2-=1                 b=b*num2             print("num1的階乘為:",a)             print("num2的階乘為:",b)         elif choice==11:             print("num1十進位制數為:", int(num1))             print("num1轉換為二進位制為:", bin(int(num1)))             print("num1轉換為八進位制為:", oct(int(num1)))             print("num1轉換為十六進位制為:", hex(int(num1)))             print("num2十進位制數為:", int(num2))             print("num2轉換為二進位制為:", bin(int(num2)))             print("num2轉換為八進位制為:", oct(int(num2)))             print("num2轉換為十六進位制為:", hex(int(num2)))         else:             print("您的輸入有誤,請重新輸入")             continue     print("按d退出\按a繼續:")     while True:         if ord(msvcrt.getch()) in [68,100]:             os.system("cls")         elif ord(msvcrt.getch()) in [65,97]:             break  2.2結果測試:   (1)實數計算器 1.加法    
2.減法 3.乘法

 

4.除法 5.餘數  

6.次方或者開方 7.商 8.sin/cos 9.階乘 10.進位制轉化   2.3碼雲

 




## 3. 實驗過程中遇到的問題和解決過程 - 問題1:sin/cos老是輸出數值不對 - 問題1解決方案:首先呢,因為Pi的定義不全,所以與標準值有誤差也無所謂。其次呢,度數一定要轉化成弧度制 - 問題2:程式老是報錯,卻沒有程式碼本身錯誤 - 問題2解決方案:因為此計算機程式碼用到了大量迴圈、條件語句,所以一定要注意縮排格式,重新梳理了一遍邏輯關係,調整了縮排。
## 其他(感悟、思考等) 1.想要為我的計算器做一個封皮、按鈕,但是所需要的庫以及使用方法沒法熟練運用,導致只能完成初始版本。希望在以後的學習中,可以多加了解皮面、按鈕的製作。 2.計算器不只是加減乘除,還有許多的功能,要講這些全都實現,需要下一定的功夫,要學會用debug除錯找錯誤,不斷改進。 3.在完成實驗報告的同時,也是一個學習的過程。在編寫計算器程式碼時,遇到不會的地方,總是會去網上搜索相關知識點。
## 參考資料
-  [《Java程式設計與資料結構教程(第二版)》](https://book.douban.com/subject/26851579/)
-  [《Java程式設計與資料結構教程(第二版)》學習指導](http://www.cnblogs.com/rocedu/p/5182332.html) -  ...