20213426 2021-2022-2 《Python程序设计》实验二报告
课程:《Python程序设计》
班级: 朱诗瑶
姓名: 2134
学号:20213426
实验教师:王志强
实验日期:2022年3月31日
必修/选修: 公选课
1.实验内容
-
设计并完成一个完整的应用程序,完成加、减、乘、除、取余、乘方、阶乘、计算面积、计算最小公倍数、计算三角函数等运算。
- 考核基本语法、判定语句、循环语句、逻辑运算等知识点。
2.实验过程及结果
- 2.1程序代码
print("一个普普通通的计算器[]~( ̄▽ ̄)~*") import math #引入数学库,方便计算三角函数和阶乘 flag = True while flag == True: choice = input("请选择你想要的计算器类型:普通计算器 0、复数计算器 1、退出 2\n") if choice == "1": #复数计算 a = complex(input("请输入复数1\n")) b = complex(input("请输入复数2\n")) op = input("请输入需要做的操作(+、-、*、/,输入0代表退出):\n") if op == "0": break elif op == "-": result = a - b elif op == "*": result = a * b elif op == "/": result = a / b elif op == "+": result = a + b else: print("输入有误,请重新输入。\n") continue print(a, op, b, "=", result) elif choice == "0": #整数计算 a = int(input("请输入操作数1:\n")) op = input("请输入需要做的操作(+、-、*、/、%、^(乘方)、z(最小公倍数)、!(阶乘)、s(圆的面积)、sin、cos、tan,输入0代表退出):\n") if op == "0": break #——————————————单个数的计算———(三角函数的输入值的单位是弧度)————————————————————————————————————————————————————— elif op == "sin": print("正弦值为 %.2f" % math.sin(a)) elif op == "cos": print("余弦值为 %.2f" % math.cos(a)) elif op == "tan": print("正切值为 %.2f" % math.tan(a)) elif op == "s": #计算以a为半径的圆的面积 result = 3.142 * (a*a) print("圆的面积为 %.2f" % result) elif op == "!": #计算a的阶乘 if a < 0: print("负数没有阶乘。") #负数没有阶乘 break else: result = math.factorial(a) #引入factorial()函数 print("阶乘为 {}" .format(result)) #———————————两个数的计算—————————————————————————————————————————————————————————————————————————————————————— elif op == "+" or "-" or "*" or "/" or "%" or "^" or "z": b = int(input("请输入操作数2:\n")) if op == "+": result = a + b elif op == "-": result = a - b elif op == "*": result = a * b elif op == "/": if b == 0: print("错误。\n")#除数不能为0 break else: result = a / b elif op == "^": result = pow(a, b) #计算a的b次方 elif op == "%": result = a % b # 取余 elif op == "z": #计算a和b的最小公倍数 result = a while True: if result % a == 0 and result % b == 0: print(result) break result += 1 print(a, op, b, "=", result) else: print("输入有误,请重新输入。\n") continue else: break
- 2.2 程序运行
- (1)复数的计算
- (2)乘方计算
- (3)计算两个整数的最小公倍数
- (4)计算某个数的阶乘
- (5)计算以某个数为半径的圆的面积
- (6)计算sin值(三角函数的输入值的单位是弧度)
- (7)计算tan值
- (8)计算cos值
- 2.3 上传源代码到码云
3.实验过程中遇到的问题和解决过程
- 问题1:程序运行时发现负数没有阶乘以及0不能做除数。
- 问题1解决方案:退出程序,在阶乘和除的代码那里加了一个小的if循环。
其他(感悟、思考等)
- 可以在python中引入数学库,这样便可直接运用三角函数和阶乘的函数,不用再去特意写一个循环去计算数的阶乘。
- 对python中的thinker库以及生成窗体有了一些基本的了解,但是有些过于复杂,没有彻底理解,便没有贸然写入程序中,希望在之后的学习中可以多加联系与实践。
- 在代码的编写中应该考虑到输入的各种可能性以及可能会犯的错误。
参考资料
python中几种实现阶乘的方法_hellenlee22的博客-CSDN博客_python阶乘