20213401實驗二《Python程式設計》實驗報告
阿新 • • 發佈:2022-04-04
實驗報告模板如下:
# 學號 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) - ...
課程:《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.乘法
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) - ...