实验报告模板如下:
学号 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.在完成实验报告的同时,也是一个学习的过程。在编写计算器代码时,遇到不会的地方,总是会去网上搜索相关知识点。