20213408 实验二《Python程序设计》实验报告
# 学号 2021-2022-2 《Python程序设计》实验x报告
课程:《Python程序设计》
班级: 2134
姓名: 冯旷霖
学号:20213408
实验教师:王志强
实验日期:2022年3月31日
必修/选修: 公选课
## 1.实验内容
编写程序,完成计算机算法,除基本运算功能外,增加其他功能,并保存到码云。
## 2. 实验过程及结果
2.1 过程
import math
print("besti科学计算器")
flag=True
while flag==True:
op=input("请输入需要做的操作(+、-、*、/、%、a的b次方根、sin、cos、tan、十转二进制、十转八进制、十转十六进制、与、或、非、输入0代表退出):")
if op=="0":
break
if op=="+":
choice=input("请选择你要计算的类型(1表示实数类型;2表示虚数类型;3表示实数加虚数类型):\n")
if choice=="1":
a=int(input("请输入第一个实数a\n"))
b=int(input("请输入第二个实数b\n"))
elif choice=="2":
a=complex(input("请输入第一个虚数a\n"))
b=complex(input("请输入第二个虚数b\n"))
else:
a=int(input("请输入实数a\n"))
b=complex(input("请输入虚数b\n"))
result=a+b
print(str(a)+op+str(b)+ "=",result,"\n")
elif op=="-":
choice=input("请选择你要计算的类型(1表示实数类型;2表示虚数类型;3表示实数加虚数类型):\n")
if choice=="1":
a=int(input("请输入第一个实数a\n"))
b=int(input("请输入第二个实数b\n"))
elif choice=="2":
a=complex(input("请输入第一个虚数a\n"))
b=complex(input("请输入第二个虚数b\n"))
else:
a=int(input("请输入实数a\n"))
b=complex(input("请输入虚数b\n"))
result=a+b
print(str(a)+op+str(b)+ "=",result,"\n")
elif op=="*":
choice=input("请选择你要计算的类型(1表示实数类型;2表示虚数类型;3表示实数加虚数类型):\n")
if choice=="1":
a=int(input("请输入第一个实数a\n"))
b=int(input("请输入第二个实数b\n"))
elif choice=="2":
a=complex(input("请输入第一个虚数a\n"))
b=complex(input("请输入第二个虚数b\n"))
else:
a=int(input("请输入实数a\n"))
b=complex(input("请输入虚数b\n"))
result=a+b
print(str(a)+op+str(b)+ "=",result,"\n")
elif op=="/":
choice=input("请选择你要计算的类型(1表示实数类型;2表示虚数类型;3表示实数加虚数类型):\n")
if choice=="1":
a=int(input("请输入第一个实数a\n"))
b=int(input("请输入第二个实数b\n"))
elif choice=="2":
a=complex(input("请输入第一个虚数a\n"))
b=complex(input("请输入第二个虚数b\n"))
else:
a=int(input("请输入实数a\n"))
b=complex(input("请输入虚数b\n"))
result=a+b
print(str(a)+op+str(b)+ "=",result,"\n")
elif op=="%":
choice=input("请选择你要计算的类型(1表示实数类型;2表示虚数类型;3表示实数加虚数类型):\n")
if choice=="1":
a=int(input("请输入第一个实数a\n"))
b=int(input("请输入第二个实数b\n"))
elif choice=="2":
a=complex(input("请输入第一个虚数a\n"))
b=complex(input("请输入第二个虚数b\n"))
else:
a=int(input("请输入实数a\n"))
b=complex(input("请输入虚数b\n"))
result=a+b
print(str(a)+op+str(b)+ "=",result,"\n")
elif op=="a的b次方根":
a=int(input("请输入第一个实数a\n"))
b=int(input("请输入第二个实数b\n"))
result=pow(a,b)
print(str(a)+"的"+str(b)+"次方根"+"=",result,"\n")
elif op=="sin":
a=int(input("请输入实数a\n"))
result=math.sin(a*3.1415927/180)
print("sin"+str(a)+"=",result,"\n")
elif op=="cos":
a=int(input("请输入实数a\n"))
result=math.cos(a*3.1415927/180)
print("cos"+str(a)+"=",result,"\n")
elif op=="tan":
a=int(input("请输入实数a\n"))
result=math.tan(a*3.1415927/180)
print("tan"+str(a)+"=",result,"\n")
elif op=="十转二进制":
a=int(input("请输入实数a\n"))
result=bin(a)
print(str(a)+"的二进制"+"=",result,"\n")
elif op=="十转八进制":
a=int(input("请输入实数a\n"))
result=oct(a)
print(str(a)+"的八进制"+"=",result,"\n")
elif op=="十转十六进制":
a=int(input("请输入实数a\n"))
result=hex(a)
print(str(a)+"的十六进制"+"=",result,"\n")
elif op=="与":
choice=input("请选择你要计算的类型(1表示实数类型;2表示虚数类型):\n")
if choice=="1":
a=int(input("请输入第一个实数a\n"))
b=int(input("请输入第二个实数b\n"))
else:
a=complex(input("请输入第一个虚数a\n"))
b=complex(input("请输入第二个虚数b\n"))
if a==b:
result=a
print(str(a)+"和"+str(b)+"的与电路"+"=",result,"\n")
else:
result=0
print(str(a)+"和"+str(b)+"的与电路"+"=",result,"\n")
elif op=="或":
choice=input("请选择你要计算的类型(1表示实数类型;2表示虚数类型):\n")
if choice=="1":
a=int(input("请输入第一个实数a\n"))
b=int(input("请输入第二个实数b\n"))
else:
a=complex(input("请输入第一个虚数a\n"))
b=complex(input("请输入第二个虚数b\n"))
if a==b:
result=a
print(str(a)+"和"+str(b)+"的或电路"+"=",result,"\n")
else:
result=1
print(str(a)+"和"+str(b)+"的或电路"+"=",result,"\n")
elif op=="非":
choice=input("请选择你要计算的类型(1表示实数类型;2表示虚数类型):\n")
if choice=="1":
a=int(input("请输入第一个实数a\n"))
b=int(input("请输入第二个实数b\n"))
else:
a=complex(input("请输入第一个虚数a\n"))
b=complex(input("请输入第二个虚数b\n"))
if a==b:
result=0
print(str(a)+"的非电路"+"=",result,"\n")
else:
result=1
print(str(a)+"的非电路"+"=",result,"\n")
else:
print("输入有误,请重新输入\n")
continue
2.2 结果
2.3 代码保存到码云
## 3. 实验过程中遇到的问题和解决过程
- 问题1:用i输入复数的时候报错
- 问题1解决方案:查阅资料后知道了复数输入只能用j
- 问题2:不知道十进制转二进制、八进制、十六进制的代码语句
- 问题2解决方案:查阅资料后知道了
## 其他(感悟、思考等)
刚开始编写计算机代码的时候思路比较混乱,不知道逻辑是怎么样的,后来经过自己的思考,想出了一种比较符合日常生活用的计算器的逻辑。编写的代码借鉴了上课时“给弟弟妹妹做四则运算”的代码,加上一些网上查阅的其他功能的代码,完成了一个简单的计算器。希望自己在有空时能再加入一些其他的功能,完善自己的计算器。