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解决方案:查阅资料后知道了

## 其他(感悟、思考等)  
刚开始编写计算机代码的时候思路比较混乱,不知道逻辑是怎么样的,后来经过自己的思考,想出了一种比较符合日常生活用的计算器的逻辑。编写的代码借鉴了上课时“给弟弟妹妹做四则运算”的代码,加上一些网上查阅的其他功能的代码,完成了一个简单的计算器。希望自己在有空时能再加入一些其他的功能,完善自己的计算器。
posted @ 2022-04-05 21:15    阅读(24)  评论(0编辑  收藏  举报