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循环。

其他(感悟、思考等)

  1. 可以在python中引入数学库,这样便可直接运用三角函数和阶乘的函数,不用再去特意写一个循环去计算数的阶乘。
  2. 对python中的thinker库以及生成窗体有了一些基本的了解,但是有些过于复杂,没有彻底理解,便没有贸然写入程序中,希望在之后的学习中可以多加联系与实践。
  3. 在代码的编写中应该考虑到输入的各种可能性以及可能会犯的错误。

参考资料

python中几种实现阶乘的方法_hellenlee22的博客-CSDN博客_python阶乘

python阶乘函数怎么使用-Python教程-PHP中文网

Python Number(数字) | 菜鸟教程 (runoob.com)

posted @ 2022-04-04 20:13  huiglibn  阅读(132)  评论(0编辑  收藏  举报