Python教程

20213413 实验二《Python程序设计》实验报告

本文主要是介绍20213413 实验二《Python程序设计》实验报告,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!


# 20213413 2021-2022-2 《Python程序设计》实验二报告

课程:《Python程序设计》
班级: 2134
姓名: 王佳慧
学号:20213413
实验教师:王志强
实验日期:2022年4月6日
必修/选修: 公选课

## 1.实验内容
1.1实验代码

print("励志做一个朴实无华有内涵的小计算器( ̄︶ ̄)↗ ")
import  math
flag=True
while flag ==True:
    choice = input("请选择计算机类型:1为复数计算器,2为普通计算器")
    if choice == "1":  #复数计算器
        a = complex(input("请输入第一个复数:\n"))
        b = complex(input("请输入第二个复数:\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 =="2":  #普通计算器
     a = int(input("请输入操作数1\n"))
     op = input("请输入需要做的操作(+,-,*,/,^,!,%,,sin,cos,tan,\n输入2表示十进制转二进制,\n输入8表示十进制转八进制,\n输入16表示十进制转十六进制,\n输入0表示退出):\n")
     if op == "0":
         break
     elif op == "sin":
         print("a的正弦值为 %.4f" % math.sin(a))
     elif op == "cos":
         print("a的余弦值为 %.4f" % math.cos(a))
     elif op == "tan":
         print("a的正切值为 %.4f" % math.tan(a))
     elif op == "!":
         if a < 0:
             print("错误,负数没有阶乘")
             break
         else:
             result = math.factorial(a)
             print("a的阶乘为 {}".format(result))
     elif op == "z":
         result = 3.1415926 * (a * a)
         print("以a为半径的圆面积为 %.2f" % result)
#——————————————————————————————进制转换——————————————————————————————————————————————————
     elif op == "2":
         print("a从十进制转二进制为:", bin(a))
     elif op == "8":
         print("a从十进制转八进制为:", oct(a))
     elif op == "16":
         print("a从十进制转十六进制为:", hex(a))

     elif op == "+" or "-" or "*" or "/" or "%" or "^^":
         b = int(input("请输入操作数2:\n"))
         if op == "+":
             result = a + b
             print(a, op, b, "=", result)
         elif op == "-":
             result = a - b
             print(a, op, b, "=", result)
         elif op == "*":
             result = a * b
             print(a, op, b, "=", result)
         elif op == "/":
             result = a / b
             print(a, op, b, "=", result)
         elif op == "%":
             result = a % b
             print(a, op, b, "=", result)
         elif op == "**":
             result = a ** b
             print(a, op, b, "=", result)
     else:
         print("错误,请重新输入\n")
         continue
    result = 0

1.2代码运行测试

1.2.1 复数运算

 

 

1.2.2求一个数的三角函数

 

 1.2.3 将十进制转为二进制、八进制、十六进制

二进制——bin

八进制——otc

十六进制——hex

 

 1.2.4阶乘

 

 

1.2.5已知半径求相应圆的面积

 

 

1.2.6简单的整数运算

 

 1.2.7求余

 

 1.2.8 乘方

 

1.3 代码托管到 gitee

 

 


## 2. 实验过程及结果
本次实验是基于在老师课堂上跟着做的简易计算器改进的。

2.1 确定计算器可以实现的基础功能:

2.1.1 复数的加减乘除

2.1.2 实数的加减乘除、阶乘、乘方、求余、三角函数,进制转换,求圆的面积

2.1.3 确定代码顺序,查阅资料,询问同学后,确定先写较为简单的复数运算,再写整数的,整数中先赋一个变量,当选择两数之间的运算的时候再赋第二个变量。

2.1.4 写代码过程中,有关于上课没有讲到的进制转换、求面积等通过百度搜索、询问同学等方式解决。


## 3. 实验过程中遇到的问题和解决过程
- 问题1:运用复数计算器时一直报错
- 问题1解决方案:询问同学得知在运用complex时复数表示为"1+2j",而不是"1+2i"。改变输入方式即可正常运行。
- 问题2:出现不知道什么意思的错误提醒

- 问题2解决方案:百度搜索后发现字符串两边不能有空格。


- 问题3:经常出现“意外缩进”

- 问题3解决方案:在编写if/while/for 语句时要注意开头时不能随便空格。


##4 感悟、思考:

4.1在写代码完成一项任务之前,一定要计划好需要做的任务,最好列下清单,如果边做边想,不仅进度慢,还很容易忽略掉各种语句之间的结构,最终还要从头再来。

4.2要学会举一反三,在写转换进制的代码时,是看到转化为二进制使用到了Python中自己的函数来计算,即 bin()函数,所以继续搜索到,oct()函数可以将十进制数转换成八进制数,hex()函数可以将十进制数转换成十六进制数。

4.3要多询问,多看代码以及理解每个语法的含义,然后在运用到自己的代码中,才算学会。

## 参考资料

-  [《Java程序设计与数据结构教程(第二版)》](https://book.douban.com/subject/26851579/)

-  [《Java程序设计与数据结构教程(第二版)》学习指导](http://www.cnblogs.com/rocedu/p/5182332.html)
-  ...

这篇关于20213413 实验二《Python程序设计》实验报告的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!